📄 test-inet_udp.c
字号:
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 + -