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

📄 test-xnet.c

📁 OpenSS7 This the fourth public release of the OpenSS7 Master Package. See README in the release for
💻 C
📖 第 1 页 / 共 5 页
字号:
		case T_SCTP_DEBUG:			break;		}		break;#endif	}	return ("(unknown value)");}#if 0voidparse_options(int fd, char *opt_ptr, size_t opt_len){	struct t_opthdr *oh;	for (oh = _T_OPT_FIRSTHDR_OFS(opt_ptr, opt_len, 0); oh; oh = _T_OPT_NEXTHDR_OFS(opt_ptr, opt_len, oh, 0)) {		if (oh->len == sizeof(*oh))			continue;		switch (oh->level) {		case T_INET_SCTP:			switch (oh->name) {			case T_SCTP_PPI:				ppi[fd] = *((t_uscalar_t *) T_OPT_DATA(oh));				continue;			case T_SCTP_SID:				sid[fd] = *((t_uscalar_t *) T_OPT_DATA(oh));				continue;			case T_SCTP_SSN:				ssn[fd] = *((t_uscalar_t *) T_OPT_DATA(oh));				continue;			case T_SCTP_TSN:				tsn[fd] = *((t_uscalar_t *) T_OPT_DATA(oh));				continue;			}		}	}}#endifchar *mgmtflag_string(t_uscalar_t flag){	switch (flag) {	case T_NEGOTIATE:		return ("T_NEGOTIATE");	case T_CHECK:		return ("T_CHECK");	case T_DEFAULT:		return ("T_DEFAULT");	case T_SUCCESS:		return ("T_SUCCESS");	case T_FAILURE:		return ("T_FAILURE");	case T_CURRENT:		return ("T_CURRENT");	case T_PARTSUCCESS:		return ("T_PARTSUCCESS");	case T_READONLY:		return ("T_READONLY");	case T_NOTSUPPORT:		return ("T_NOTSUPPORT");	}	return "(unknown flag)";}char *size_string(t_uscalar_t size){	static char buf[128];	switch (size) {	case T_INFINITE:		return ("T_INFINITE");	case T_INVALID:		return ("T_INVALID");	case T_UNSPEC:		return ("T_UNSPEC");	}	snprintf(buf, sizeof(buf), "%lu", (ulong) size);	return buf;}const char *prim_string(t_uscalar_t prim){	switch (prim) {	case T_CONN_REQ:		return ("T_CONN_REQ------");	case T_CONN_RES:		return ("T_CONN_RES------");	case T_DISCON_REQ:		return ("T_DISCON_REQ----");	case T_DATA_REQ:		return ("T_DATA_REQ------");	case T_EXDATA_REQ:		return ("T_EXDATA_REQ----");	case T_INFO_REQ:		return ("T_INFO_REQ------");	case T_BIND_REQ:		return ("T_BIND_REQ------");	case T_UNBIND_REQ:		return ("T_UNBIND_REQ----");	case T_UNITDATA_REQ:		return ("T_UNITDATA_REQ--");	case T_OPTMGMT_REQ:		return ("T_OPTMGMT_REQ---");	case T_ORDREL_REQ:		return ("T_ORDREL_REQ----");	case T_OPTDATA_REQ:		return ("T_OPTDATA_REQ---");	case T_ADDR_REQ:		return ("T_ADDR_REQ------");	case T_CAPABILITY_REQ:		return ("T_CAPABILITY_REQ");	case T_CONN_IND:		return ("T_CONN_IND------");	case T_CONN_CON:		return ("T_CONN_CON------");	case T_DISCON_IND:		return ("T_DISCON_IND----");	case T_DATA_IND:		return ("T_DATA_IND------");	case T_EXDATA_IND:		return ("T_EXDATA_IND----");	case T_INFO_ACK:		return ("T_INFO_ACK------");	case T_BIND_ACK:		return ("T_BIND_ACK------");	case T_ERROR_ACK:		return ("T_ERROR_ACK-----");	case T_OK_ACK:		return ("T_OK_ACK--------");	case T_UNITDATA_IND:		return ("T_UNITDATA_IND--");	case T_UDERROR_IND:		return ("T_UDERROR_IND---");	case T_OPTMGMT_ACK:		return ("T_OPTMGMT_ACK---");	case T_ORDREL_IND:		return ("T_ORDREL_IND----");	case T_OPTDATA_IND:		return ("T_OPTDATA_IND---");	case T_ADDR_ACK:		return ("T_ADDR_ACK------");	case T_CAPABILITY_ACK:		return ("T_CAPABILITY_ACK");	default:		return ("T_????_??? -----");	}}char *t_errno_string(t_scalar_t err, t_scalar_t syserr){	switch (err) {	case 0:		return ("ok");	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(syserr);	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), "[%ld]", (long) err);		return buf;	}	}}char *t_look_string(int look){	switch (look) {	case 0:		return ("(NO EVENT)");	case T_LISTEN:		return ("(T_LISTEN)");	case T_CONNECT:		return ("(T_CONNECT)");	case T_DATA:		return ("(T_DATA)");	case T_EXDATA:		return ("(T_EXDATA)");	case T_DISCONNECT:		return ("(T_DISCONNECT)");	case T_UDERR:		return ("(T_UDERR)");	case T_ORDREL:		return ("(T_ORDREL)");	case T_GODATA:		return ("(T_GODATA)");	case T_GOEXDATA:		return ("(T_GOEXDATA)");	default:	{		static char buf[32];		snprintf(buf, sizeof(buf), "(%d)", look);		return buf;	}	}}voidprint_simple(int child, const char *msgs[]){	dummy = lockf(fileno(stdout), F_LOCK, 0);	fprintf(stdout, msgs[child]);	fflush(stdout);	dummy = lockf(fileno(stdout), F_ULOCK, 0);}voidprint_simple_int(int child, const char *msgs[], int val){	dummy = lockf(fileno(stdout), F_LOCK, 0);	fprintf(stdout, msgs[child], val);	fflush(stdout);	dummy = lockf(fileno(stdout), F_ULOCK, 0);}voidprint_double_int(int child, const char *msgs[], int val, int val2){	dummy = lockf(fileno(stdout), F_LOCK, 0);	fprintf(stdout, msgs[child], val, val2);	fflush(stdout);	dummy = lockf(fileno(stdout), F_ULOCK, 0);}voidprint_triple_int(int child, const char *msgs[], int val, int val2, int val3){	dummy = lockf(fileno(stdout), F_LOCK, 0);	fprintf(stdout, msgs[child], val, val2, val3);	fflush(stdout);	dummy = lockf(fileno(stdout), F_ULOCK, 0);}voidprint_simple_string(int child, const char *msgs[], const char *string){	dummy = lockf(fileno(stdout), F_LOCK, 0);	fprintf(stdout, msgs[child], string);	fflush(stdout);	dummy = lockf(fileno(stdout), F_ULOCK, 0);}voidprint_string_state(int child, const char *msgs[], const char *string){	dummy = lockf(fileno(stdout), F_LOCK, 0);	fprintf(stdout, msgs[child], string, child, state);	fflush(stdout);	dummy = lockf(fileno(stdout), F_ULOCK, 0);}voidprint_triple_string(int child, const char *msgs[], const char *string){	dummy = lockf(fileno(stdout), F_LOCK, 0);	fprintf(stdout, msgs[child], "", child, state);	fprintf(stdout, msgs[child], string, child, state);	fprintf(stdout, msgs[child], "", child, state);	fflush(stdout);	dummy = lockf(fileno(stdout), F_ULOCK, 0);}voidprint_more(int child){	show = 1;}voidprint_less(int child){	static const char *msgs[] = {		"         . %1$6.6s . | <------         .         ------> :                    [%2$d:%3$03d]\n",		"                    : <------         .         ------> | . %1$-6.6s .         [%2$d:%3$03d]\n",		"                    :  | <------         .      ------> : . %1$-6.6s .         [%2$d:%3$03d]\n",		"         . %1$6.6s . : <: <------         .      ------> : . %1$-6.6s .         [%2$d:%3$03d]\n",	};	if (show && verbose > 0)		print_triple_string(child, msgs, "(more)");	show = 0;}voidprint_pipe(int child){	static const char *msgs[] = {		"  pipe()      ----->v  v<------------------------------>v                   \n",		"                    v  v<------------------------------>v<-----     pipe()  \n",		"                    .  .                                .                   \n",	};	if (show && verbose > 3)		print_simple(child, msgs);}voidprint_open(int child, const char *name){	static const char *msgs[] = {		"  open()      ----->v  . %-30.30s .                   \n",		"                    |  v %-30.30s v<-----     open()  \n",		"                    |  v<%-30.30s-.------     open()  \n",		"                    .  . %-30.30s .                   \n",	};	if (show && verbose > 3)		print_simple_string(child, msgs, name);}voidprint_close(int child){	static const char *msgs[] = {		"  close()     ----->X  |                                |                   \n",		"                    .  X                                X<-----    close()  \n",		"                    .  X<-------------------------------.------    close()  \n",		"                    .  .                                .                   \n",	};	if (show && verbose > 3)		print_simple(child, msgs);}voidprint_preamble(int child){	static const char *msgs[] = {		"--------------------+  +----------Preamble--------------+                   \n",		"                    +  +----------Preamble--------------+-------------------\n",		"                    +--+----------Preamble--------------+                   \n",		"--------------------+--+----------Preamble--------------+-------------------\n",	};	if (verbose > 0)		print_simple(child, msgs);}voidprint_failure(int child, const char *string){	static const char *msgs[] = {		"....................|   %-32.32s|                    [%d:%03d]\n",		"                    |   %-32.32s|................... [%d:%03d]\n",		"                    |..|%-32.32s|                    [%d:%03d]\n",		"....................|...%-32.32s|................... [%d:%03d]\n",	};	if (string && strnlen(string, 32) > 0 && verbose > 0)		print_string_state(child, msgs, string);}voidprint_notapplicable(int child){	static const char *msgs[] = {		"X-X-X-X-X-X-X-X-X-X-|  |-X-X-X NOT APPLICABLE -X-X-X-X-X|                    [%d:%03d]\n",		"                    |  |-X-X-X NOT APPLICABLE -X-X-X-X-X|X-X-X-X-X-X-X-X-X-X [%d:%03d]\n",		"                    |X-|-X-X-X NOT APPLICABLE -X-X-X-X-X|                    [%d:%03d]\n",		"X-X-X-X-X-X-X-X-X-X-|X-|-X-X-X NOT APPLICABLE -X-X-X-X-X|X-X-X-X-X-X-X-X-X-X [%d:%03d]\n",	};	if (verbose > 0)		print_double_int(child, msgs, child, state);	print_failure(child, failure_string);}voidprint_skipped(int child){	static const char *msgs[] = {		"::::::::::::::::::::|  |::::::::: SKIPPED ::::::::::::::|                    [%d:%03d]\n",		"                    |  |::::::::: SKIPPED ::::::::::::::|::::::::::::::::::: [%d:%03d]\n",		"                    |::|::::::::: SKIPPED ::::::::::::::|                    [%d:%03d]\n",		"::::::::::::::::::::|::|::::::::: SKIPPED ::::::::::::::|::::::::::::::::::: [%d:%03d]\n",	};	if (verbose > 0)		print_double_int(child, msgs, child, state);	print_failure(child, failure_string);}voidprint_inconclusive(int child){	static const char *msgs[] = {		"????????????????????|  |??????? INCONCLUSIVE ???????????|                    [%d:%03d]\n",		"                    |  |??????? INCONCLUSIVE ???????????|??????????????????? [%d:%03d]\n",		"                    |??|??????? INCONCLUSIVE ???????????|                    [%d:%03d]\n",		"????????????????????|??|??????? INCONCLUSIVE ???????????|??????????????????? [%d:%03d]\n",	};	if (verbose > 0)		print_double_int(child, msgs, child, state);	print_failure(child, failure_string);}voidprint_test(int child){	static const char *msgs[] = {		"--------------------+  +------------Test----------------+                   \n",		"                    +  +------------Test----------------+-------------------\n",		"                    +--+------------Test----------------+                   \n",		"--------------------+--+------------Test----------------+-------------------\n",	};	if (verbose > 0)		print_simple(child, msgs);}voidprint_failed(int child){	static const char *msgs[] = {		"XXXXXXXXXXXXXXXXXXXX|  |XXXXXXXXXX FAILED XXXXXXXXXXXXXX|                    [%d:%03d]\n",		"                    |  |XXXXXXXXXX FAILED XXXXXXXXXXXXXX|XXXXXXXXXXXXXXXXXXX [%d:%03d]\n",		"                    |XX|XXXXXXXXXX FAILED XXXXXXXXXXXXXX|                    [%d:%03d]\n",		"XXXXXXXXXXXXXXXXXXXX|XX|XXXXXXXXXX FAILED XXXXXXXXXXXXXX|XXXXXXXXXXXXXXXXXXX [%d:%03d]\n",	};	if (verbose > 0)		print_double_int(child, msgs, child, state);	print_failure(child, failure_string);}voidprint_script_error(int child){	static const char *msgs[] = {		"####################|  |######## SCRIPT ERROR ##########|                    [%d:%03d]\n",		"                    |  |######## SCRIPT ERROR ##########|################### [%d:%03d]\n",		"                    |##|######## SCRIPT ERROR ##########|                    [%d:%03d]\n",		"####################|##|######## SCRIPT ERROR ##########|################### [%d:%03d]\n",	};	if (verbose > 0)		print_double_int(child, msgs, child, state);	print_failure(child, failure_string);}voidprint_passed(int child){	static const char *msgs[] = {		"********************|  |********** PASSED **************|                    [%d:%03d]\n",		"                    |  |********** PASSED **************|******************* [%d:%03d]\n",		"                    |**|********** PASSED **************|                    [%d:%03d]\n",		"********************|**|********** PASSED **************|******************* [%d:%03d]\n",	};	if (verbose > 2)		print_double_int(child, msgs, child, state);	print_failure(child, failure_string);}voidprint_postamble(int child){	static const char *msgs[] = {		"--------------------+  +----------Postamble-------------+                   \n",		"                    +  +----------Postamble-------------+-------------------\n",		"                    +--+----------Postamble-------------+                   \n",

⌨️ 快捷键说明

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