⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test-m2pa.c

📁 OpenSS7 This the fourth public release of the OpenSS7 Master Package. See README in the release for
💻 C
📖 第 1 页 / 共 5 页
字号:
	return (result);}static intstop_tt(void){	struct itimerval setting = { {0, 0}, {0, 0} };	int result = __RESULT_SUCCESS;	if (setitimer(ITIMER_REAL, &setting, NULL))		return __RESULT_FAILURE;	if (stop_signals() != __RESULT_SUCCESS)		result = __RESULT_FAILURE;	timer_timeout = 0;	return (result);}static long beg_time = 0;#if TEST_X400static int event = 0;static int expand = 0;static int oldmsg = 0;static int cntmsg = 0;static int oldisb = 0;static int oldret = 0;static int cntret = 0;#endif				/* TEST_X400 */#if TEST_M2PA/* *  M2PA Message Definitions */#define M2PA_PPI		5#define M2PA_MESSAGE_CLASS	11#define M2PA_VERSION		1#define M2PA_MTYPE_DATA		1#define M2PA_MTYPE_STATUS	2#define M2PA_MTYPE_PROVING	3#define M2PA_MTYPE_ACK		4#define M2PA_DATA_MESSAGE	\	__constant_htonl((M2PA_VERSION<<24)|(M2PA_MESSAGE_CLASS<<8)|M2PA_MTYPE_DATA)#define M2PA_STATUS_MESSAGE	\	__constant_htonl((M2PA_VERSION<<24)|(M2PA_MESSAGE_CLASS<<8)|M2PA_MTYPE_STATUS)#define M2PA_PROVING_MESSAGE	\	__constant_htonl((M2PA_VERSION<<24)|(M2PA_MESSAGE_CLASS<<8)|M2PA_MTYPE_PROVING)#define M2PA_ACK_MESSAGE	\	__constant_htonl((M2PA_VERSION<<24)|(M2PA_MESSAGE_CLASS<<8)|M2PA_MTYPE_ACK)#define M2PA_STATUS_STREAM	0#define M2PA_DATA_STREAM	1#define M2PA_STATUS_ALIGNMENT			(__constant_htonl(1))#define M2PA_STATUS_PROVING_NORMAL		(__constant_htonl(2))#define M2PA_STATUS_PROVING_EMERGENCY		(__constant_htonl(3))#define M2PA_STATUS_IN_SERVICE			(__constant_htonl(4))#define M2PA_STATUS_PROCESSOR_OUTAGE		(__constant_htonl(5))#define M2PA_STATUS_PROCESSOR_OUTAGE_ENDED	(__constant_htonl(6))#define M2PA_STATUS_BUSY			(__constant_htonl(7))#define M2PA_STATUS_BUSY_ENDED			(__constant_htonl(8))#define M2PA_STATUS_OUT_OF_SERVICE		(__constant_htonl(9))#define M2PA_STATUS_NONE			(__constant_htonl(10))#define M2PA_STATUS_INVALID			(__constant_htonl(11))/* *  Addresses */#if 1#ifndef SCTP_VERSION_2addr_t addrs[4];#else				/* SCTP_VERSION_2 */struct sockaddr_in addrs[4][3];#endif				/* SCTP_VERSION_2 */#elsestruct sockaddr_in addrs[4];#endifint anums[4] = { 3, 3, 3, 3 };#define TEST_PORT_NUMBER 18000unsigned short ports[4] = { TEST_PORT_NUMBER, TEST_PORT_NUMBER+1, TEST_PORT_NUMBER+2, TEST_PORT_NUMBER+3 };const char *addr_strings[4] = { "127.0.0.1", "127.0.0.2", "127.0.0.3", "127.0.0.4" };/* *  Options */N_qos_sel_data_sctp_t qos_data = {	.n_qos_type = N_QOS_SEL_DATA_SCTP,	.ppi = 10,	.sid = 0,	.ssn = 0,	.tsn = 0,	.more = 0,};N_qos_sel_conn_sctp_t qos_conn = {	.n_qos_type = N_QOS_SEL_CONN_SCTP,	.i_streams = 1,	.o_streams = 1,};N_qos_sel_info_sctp_t qos_info = {	.n_qos_type = N_QOS_SEL_INFO_SCTP,	.i_streams = 1,	.o_streams = 1,	.ppi = 10,	.sid = 0,	.max_inits = 12,	.max_retrans = 12,	.ck_life = -1,	.ck_inc = -1,	.hmac = -1,	.throttle = -1,	.max_sack = 0,	.rto_ini = 0,	.rto_min = 0,	.rto_max = 0,	.rtx_path = 0,	.hb_itvl = 200,	.options = 0,};#endif				/* TEST_M2PA */char *errno_string(long err){	switch (err) {	case 0:		return ("ok");	case EPERM:		return ("[EPERM]");	case ENOENT:		return ("[ENOENT]");	case ESRCH:		return ("[ESRCH]");	case EINTR:		return ("[EINTR]");	case EIO:		return ("[EIO]");	case ENXIO:		return ("[ENXIO]");	case E2BIG:		return ("[E2BIG]");	case ENOEXEC:		return ("[ENOEXEC]");	case EBADF:		return ("[EBADF]");	case ECHILD:		return ("[ECHILD]");	case EAGAIN:		return ("[EAGAIN]");	case ENOMEM:		return ("[ENOMEM]");	case EACCES:		return ("[EACCES]");	case EFAULT:		return ("[EFAULT]");	case ENOTBLK:		return ("[ENOTBLK]");	case EBUSY:		return ("[EBUSY]");	case EEXIST:		return ("[EEXIST]");	case EXDEV:		return ("[EXDEV]");	case ENODEV:		return ("[ENODEV]");	case ENOTDIR:		return ("[ENOTDIR]");	case EISDIR:		return ("[EISDIR]");	case EINVAL:		return ("[EINVAL]");	case ENFILE:		return ("[ENFILE]");	case EMFILE:		return ("[EMFILE]");	case ENOTTY:		return ("[ENOTTY]");	case ETXTBSY:		return ("[ETXTBSY]");	case EFBIG:		return ("[EFBIG]");	case ENOSPC:		return ("[ENOSPC]");	case ESPIPE:		return ("[ESPIPE]");	case EROFS:		return ("[EROFS]");	case EMLINK:		return ("[EMLINK]");	case EPIPE:		return ("[EPIPE]");	case EDOM:		return ("[EDOM]");	case ERANGE:		return ("[ERANGE]");	case EDEADLK:		return ("[EDEADLK]");	case ENAMETOOLONG:		return ("[ENAMETOOLONG]");	case ENOLCK:		return ("[ENOLCK]");	case ENOSYS:		return ("[ENOSYS]");	case ENOTEMPTY:		return ("[ENOTEMPTY]");	case ELOOP:		return ("[ELOOP]");	case ENOMSG:		return ("[ENOMSG]");	case EIDRM:		return ("[EIDRM]");	case ECHRNG:		return ("[ECHRNG]");	case EL2NSYNC:		return ("[EL2NSYNC]");	case EL3HLT:		return ("[EL3HLT]");	case EL3RST:		return ("[EL3RST]");	case ELNRNG:		return ("[ELNRNG]");	case EUNATCH:		return ("[EUNATCH]");	case ENOCSI:		return ("[ENOCSI]");	case EL2HLT:		return ("[EL2HLT]");	case EBADE:		return ("[EBADE]");	case EBADR:		return ("[EBADR]");	case EXFULL:		return ("[EXFULL]");	case ENOANO:		return ("[ENOANO]");	case EBADRQC:		return ("[EBADRQC]");	case EBADSLT:		return ("[EBADSLT]");	case EBFONT:		return ("[EBFONT]");	case ENOSTR:		return ("[ENOSTR]");	case ENODATA:		return ("[ENODATA]");	case ETIME:		return ("[ETIME]");	case ENOSR:		return ("[ENOSR]");	case ENONET:		return ("[ENONET]");	case ENOPKG:		return ("[ENOPKG]");	case EREMOTE:		return ("[EREMOTE]");	case ENOLINK:		return ("[ENOLINK]");	case EADV:		return ("[EADV]");	case ESRMNT:		return ("[ESRMNT]");	case ECOMM:		return ("[ECOMM]");	case EPROTO:		return ("[EPROTO]");	case EMULTIHOP:		return ("[EMULTIHOP]");	case EDOTDOT:		return ("[EDOTDOT]");	case EBADMSG:		return ("[EBADMSG]");	case EOVERFLOW:		return ("[EOVERFLOW]");	case ENOTUNIQ:		return ("[ENOTUNIQ]");	case EBADFD:		return ("[EBADFD]");	case EREMCHG:		return ("[EREMCHG]");	case ELIBACC:		return ("[ELIBACC]");	case ELIBBAD:		return ("[ELIBBAD]");	case ELIBSCN:		return ("[ELIBSCN]");	case ELIBMAX:		return ("[ELIBMAX]");	case ELIBEXEC:		return ("[ELIBEXEC]");	case EILSEQ:		return ("[EILSEQ]");	case ERESTART:		return ("[ERESTART]");	case ESTRPIPE:		return ("[ESTRPIPE]");	case EUSERS:		return ("[EUSERS]");	case ENOTSOCK:		return ("[ENOTSOCK]");	case EDESTADDRREQ:		return ("[EDESTADDRREQ]");	case EMSGSIZE:		return ("[EMSGSIZE]");	case EPROTOTYPE:		return ("[EPROTOTYPE]");	case ENOPROTOOPT:		return ("[ENOPROTOOPT]");	case EPROTONOSUPPORT:		return ("[EPROTONOSUPPORT]");	case ESOCKTNOSUPPORT:		return ("[ESOCKTNOSUPPORT]");	case EOPNOTSUPP:		return ("[EOPNOTSUPP]");	case EPFNOSUPPORT:		return ("[EPFNOSUPPORT]");	case EAFNOSUPPORT:		return ("[EAFNOSUPPORT]");	case EADDRINUSE:		return ("[EADDRINUSE]");	case EADDRNOTAVAIL:		return ("[EADDRNOTAVAIL]");	case ENETDOWN:		return ("[ENETDOWN]");	case ENETUNREACH:		return ("[ENETUNREACH]");	case ENETRESET:		return ("[ENETRESET]");	case ECONNABORTED:		return ("[ECONNABORTED]");	case ECONNRESET:		return ("[ECONNRESET]");	case ENOBUFS:		return ("[ENOBUFS]");	case EISCONN:		return ("[EISCONN]");	case ENOTCONN:		return ("[ENOTCONN]");	case ESHUTDOWN:		return ("[ESHUTDOWN]");	case ETOOMANYREFS:		return ("[ETOOMANYREFS]");	case ETIMEDOUT:		return ("[ETIMEDOUT]");	case ECONNREFUSED:		return ("[ECONNREFUSED]");	case EHOSTDOWN:		return ("[EHOSTDOWN]");	case EHOSTUNREACH:		return ("[EHOSTUNREACH]");	case EALREADY:		return ("[EALREADY]");	case EINPROGRESS:		return ("[EINPROGRESS]");	case ESTALE:		return ("[ESTALE]");	case EUCLEAN:		return ("[EUCLEAN]");	case ENOTNAM:		return ("[ENOTNAM]");	case ENAVAIL:		return ("[ENAVAIL]");	case EISNAM:		return ("[EISNAM]");	case EREMOTEIO:		return ("[EREMOTEIO]");	case EDQUOT:		return ("[EDQUOT]");	case ENOMEDIUM:		return ("[ENOMEDIUM]");	case EMEDIUMTYPE:		return ("[EMEDIUMTYPE]");	default:	{		static char buf[32];		snprintf(buf, sizeof(buf), "[%ld]", (long) err);		return buf;	}	}}#if TEST_M2UAchar *terrno_string(t_uscalar_t terr, t_scalar_t uerr){	switch (terr) {	case TBADADDR:		return ("[TBADADDR]");	case TBADOPT:		return ("[TBADOPT]");	case TACCES:		return ("[TACCES]");	case TBADF:		return ("[TBADF]");	case TNOADDR:		return ("[TNOADDR]");	case TOUTSTATE:		return ("[TOUTSTATE]");	case TBADSEQ:		return ("[TBADSEQ]");	case TSYSERR:		return errno_string(uerr);	case TLOOK:		return ("[TLOOK]");	case TBADDATA:		return ("[TBADDATA]");	case TBUFOVFLW:		return ("[TBUFOVFLW]");	case TFLOW:		return ("[TFLOW]");	case TNODATA:		return ("[TNODATA]");	case TNODIS:		return ("[TNODIS]");	case TNOUDERR:		return ("[TNOUDERR]");	case TBADFLAG:		return ("[TBADFLAG]");	case TNOREL:		return ("[TNOREL]");	case TNOTSUPPORT:		return ("[TNOTSUPPORT]");	case TSTATECHNG:		return ("[TSTATECHNG]");	case TNOSTRUCTYPE:		return ("[TNOSTRUCTYPE]");	case TBADNAME:		return ("[TBADNAME]");	case TBADQLEN:		return ("[TBADQLEN]");	case TADDRBUSY:		return ("[TADDRBUSY]");	case TINDOUT:		return ("[TINDOUT]");	case TPROVMISMATCH:		return ("[TPROVMISMATCH]");	case TRESQLEN:		return ("[TRESQLEN]");	case TRESADDR:		return ("[TRESADDR]");	case TQFULL:		return ("[TQFULL]");	case TPROTO:		return ("[TPROTO]");	default:	{		static char buf[32];		snprintf(buf, sizeof(buf), "[%lu]", (ulong) terr);		return buf;	}	}}#endif				/* TEST_M2UA */#if TEST_M2PAchar *nerrno_string(ulong nerr, long uerr){	switch (nerr) {	case NBADADDR:		return ("[NBADADDR]");	case NBADOPT:		return ("[NBADOPT]");	case NACCESS:		return ("[NACCESS]");	case NNOADDR:		return ("[NNOADDR]");	case NOUTSTATE:		return ("[NOUTSTATE]");	case NBADSEQ:		return ("[NBADSEQ]");	case NSYSERR:		return errno_string(uerr);	case NBADDATA:		return ("[NBADDATA]");	case NBADFLAG:		return ("[NBADFLAG]");	case NNOTSUPPORT:		return ("[NNOTSUPPORT]");	case NBOUND:		return ("[NBOUND]");	case NBADQOSPARAM:		return ("[NBADQOSPARAM]");	case NBADQOSTYPE:		return ("[NBADQOSTYPE]");	case NBADTOKEN:		return ("[NBADTOKEN]");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -