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

📄 test-inet_udp.c

📁 This a separate release of the OpenSS7 X/Open XTI/TLI library, TLI modules (timod, tirdwr) and the I
💻 C
📖 第 1 页 / 共 5 页
字号:
	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]", err);		return buf;	}	}}char *terrno_string(ulong terr, long 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]", terr);		return buf;	}	}}const char *event_string(int event){	switch (event) {	case __EVENT_NO_MSG:		return ("NO MESSAGE");	case __EVENT_TIMEOUT:		return ("TIMEOUT");	case __EVENT_UNKNOWN:		return ("UNKNOWN");	case __RESULT_DECODE_ERROR:		return ("DECODE ERROR");	case __RESULT_SCRIPT_ERROR:		return ("SCRIPT ERROR");	case __RESULT_INCONCLUSIVE:		return ("INCONCLUSIVE");	case __RESULT_SUCCESS:		return ("SUCCESS");	case __RESULT_FAILURE:		return ("FAILURE");	case __EVENT_CONN_REQ:		return ("T_CONN_REQ");	case __EVENT_CONN_RES:		return ("T_CONN_RES");	case __EVENT_DISCON_REQ:		return ("T_DISCON_REQ");	case __EVENT_DATA_REQ:		return ("T_DATA_REQ");	case __EVENT_EXDATA_REQ:		return ("T_EXDATA_REQ");	case __EVENT_OPTDATA_REQ:		return ("T_OPTDATA_REQ");	case __EVENT_INFO_REQ:		return ("T_INFO_REQ");	case __EVENT_BIND_REQ:		return ("T_BIND_REQ");	case __EVENT_UNBIND_REQ:		return ("T_UNBIND_REQ");	case __EVENT_UNITDATA_REQ:		return ("T_UNITDATA_REQ");	case __EVENT_OPTMGMT_REQ:		return ("T_OPTMGMT_REQ");	case __EVENT_ORDREL_REQ:		return ("T_ORDREL_REQ");	case __EVENT_CONN_IND:		return ("T_CONN_IND");	case __EVENT_CONN_CON:		return ("T_CONN_CON");	case __EVENT_DISCON_IND:		return ("T_DISCON_IND");	case __EVENT_DATA_IND:		return ("T_DATA_IND");	case __EVENT_EXDATA_IND:		return ("T_EXDATA_IND");	case __EVENT_OPTDATA_IND:		return ("T_OPTDATA_IND");	case __EVENT_INFO_ACK:		return ("T_INFO_ACK");	case __EVENT_BIND_ACK:		return ("T_BIND_ACK");	case __EVENT_ERROR_ACK:		return ("T_ERROR_ACK");	case __EVENT_OK_ACK:		return ("T_OK_ACK");	case __EVENT_UNITDATA_IND:		return ("T_UNITDATA_IND");	case __EVENT_UDERROR_IND:		return ("T_UDERROR_IND");	case __EVENT_OPTMGMT_ACK:		return ("T_OPTMGMT_ACK");	case __EVENT_ORDREL_IND:		return ("T_ORDREL_IND");	case __EVENT_ADDR_REQ:		return ("T_ADDR_REQ");	case __EVENT_ADDR_ACK:		return ("T_ADDR_ACK");	case __EVENT_CAPABILITY_REQ:		return ("T_CAPABILITY_REQ");	case __EVENT_CAPABILITY_ACK:		return ("T_CAPABILITY_ACK");	default:		return ("(unexpected");	}}const char *state_string(ulong state){	switch (state) {	case TS_UNBND:		return ("TS_UNBND");	case TS_WACK_BREQ:		return ("TS_WACK_BREQ");	case TS_WACK_UREQ:		return ("TS_WACK_UREQ");	case TS_IDLE:		return ("TS_IDLE");	case TS_WACK_OPTREQ:		return ("TS_WACK_OPTREQ");	case TS_WACK_CREQ:		return ("TS_WACK_CREQ");	case TS_WCON_CREQ:		return ("TS_WCON_CREQ");	case TS_WRES_CIND:		return ("TS_WRES_CIND");	case TS_WACK_CRES:		return ("TS_WACK_CRES");	case TS_DATA_XFER:		return ("TS_DATA_XFER");	case TS_WIND_ORDREL:		return ("TS_WIND_ORDREL");	case TS_WREQ_ORDREL:		return ("TS_WRES_ORDREL");	case TS_WACK_DREQ6:		return ("TS_WACK_DREQ6");	case TS_WACK_DREQ7:		return ("TS_WACK_DREQ7");	case TS_WACK_DREQ9:		return ("TS_WACK_DREQ9");	case TS_WACK_DREQ10:		return ("TS_WACK_DREQ10");	case TS_WACK_DREQ11:		return ("TS_WACK_DREQ11");	default:		return ("(unknown)");	}}voidprint_addr(char *add_ptr, size_t add_len){	struct sockaddr_in *a = (struct sockaddr_in *) add_ptr;	if (add_len) {		if (add_len != sizeof(*a))			printf("Aaarrg! add_len = %d, ", add_len);		printf("%d.%d.%d.%d:%d", (a->sin_addr.s_addr >> 0) & 0xff, (a->sin_addr.s_addr >> 8) & 0xff, (a->sin_addr.s_addr >> 16) & 0xff, (a->sin_addr.s_addr >> 24) & 0xff, ntohs(a->sin_port));	} else		printf("(no address)");	printf("\n");}char *addr_string(char *add_ptr, size_t add_len){	static char buf[128];	size_t len = 0;	struct sockaddr_in *a = (struct sockaddr_in *) add_ptr;	if (add_len) {		if (add_len != sizeof(*a))			len += snprintf(buf + len, sizeof(buf) - len, "Aaarrg! add_len = %d, ", add_len);		len += snprintf(buf + len, sizeof(buf) - len, "%d.%d.%d.%d:%d",				(a->sin_addr.s_addr >> 0) & 0xff, (a->sin_addr.s_addr >> 8) & 0xff, (a->sin_addr.s_addr >> 16) & 0xff, (a->sin_addr.s_addr >> 24) & 0xff, ntohs(a->sin_port));	} else		len += snprintf(buf + len, sizeof(buf) - len, "(no address)");	snprintf(buf + len, sizeof(buf) - len, "\0");	return buf;}char *status_string(struct t_opthdr *oh){	switch (oh->status) {	case 0:		return (NULL);	case T_SUCCESS:		return ("T_SUCCESS");	case T_FAILURE:		return ("T_FAILURE");	case T_PARTSUCCESS:		return ("T_PARTSUCCESS");	case T_READONLY:		return ("T_READONLY");	case T_NOTSUPPORT:		return ("T_NOTSUPPORT");	default:		return ("(unknown status)");	}}char *level_string(struct t_opthdr *oh){	switch (oh->level) {	case XTI_GENERIC:		return ("XTI_GENERIC");	case T_INET_IP:		return ("T_INET_IP");	case T_INET_UDP:		return ("T_INET_UDP");	case T_INET_TCP:		return ("T_INET_TCP");	case T_INET_SCTP:		return ("T_INET_SCTP");	default:		return ("(unknown level)");	}}char *name_string(struct t_opthdr *oh){	if (oh->name == T_ALLOPT)		return ("T_ALLOPT");	switch (oh->level) {	case XTI_GENERIC:		switch (oh->name) {		case XTI_DEBUG:			return ("XTI_DEBUG");		case XTI_LINGER:			return ("XTI_LINGER");		case XTI_RCVBUF:			return ("XTI_RCVBUF");		case XTI_RCVLOWAT:			return ("XTI_RCVLOWAT");		case XTI_SNDBUF:			return ("XTI_SNDBUF");		case XTI_SNDLOWAT:			return ("XTI_SNDLOWAT");		}		break;	case T_INET_IP:		switch (oh->name) {		case T_IP_OPTIONS:			return ("T_IP_OPTIONS");		case T_IP_TOS:			return ("T_IP_TOS");		case T_IP_TTL:			return ("T_IP_TTL");		case T_IP_REUSEADDR:			return ("T_IP_REUSEADDR");		case T_IP_DONTROUTE:			return ("T_IP_DONTROUTE");		case T_IP_BROADCAST:			return ("T_IP_BROADCAST");		case T_IP_ADDR:			return ("T_IP_ADDR");		}		break;	case T_INET_UDP:

⌨️ 快捷键说明

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