📄 lib-libc-net
字号:
****************** 131,135 ****X elseX h_errno = TRY_AGAIN;- X return (NULL);X }--- 129,132 ----****************** 141,159 ****X haveanswer = 0;X while (--ancount >= 0 && cp < eom) {! if ((n = dn_expand((u_char *)answer->buf, (u_char *)eom,! (u_char *)cp, (u_char *)bp, buflen)) < 0)X break;X cp += n;X ans[0] = '\0';! strcpy(&ans[0], bp);X GETSHORT(type, cp);X GETSHORT(class, cp);! cp += sizeof(u_long); /* TTL */X GETSHORT(n, cp);X if (class == C_IN && type == T_PTR) {! if ((n = dn_expand((u_char *)answer->buf,! (u_char *)eom, (u_char *)cp, (u_char *)bp, buflen))! < 0)! {X cp += n;X return (NULL);--- 138,154 ----X haveanswer = 0;X while (--ancount >= 0 && cp < eom) {! n = dn_expand(answer->buf, eom, cp, bp, buflen);! if (n < 0)X break;X cp += n;X ans[0] = '\0';! (void)strcpy(&ans[0], bp);X GETSHORT(type, cp);X GETSHORT(class, cp);! cp += INT32SZ; /* TTL */X GETSHORT(n, cp);X if (class == C_IN && type == T_PTR) {! n = dn_expand(answer->buf, eom, cp, bp, buflen);! if (n < 0) {X cp += n;X return (NULL);****************** 163,167 ****X bp += strlen(bp) + 1;X net_entry.n_addrtype =! class == C_IN ? AF_INET : AF_UNSPEC;X haveanswer++;X }--- 158,162 ----X bp += strlen(bp) + 1;X net_entry.n_addrtype =! (class == C_IN) ? AF_INET : AF_UNSPEC;X haveanswer++;X }****************** 172,176 ****X case BYADDR:X net_entry.n_name = *net_entry.n_aliases;! net_entry.n_net = NULL;X break;X case BYNAME:--- 167,171 ----X case BYADDR:X net_entry.n_name = *net_entry.n_aliases;! net_entry.n_net = 0L;X break;X case BYNAME:****************** 180,190 ****X for (i = 0; i < 4; i++) {X for (st = in, nchar = 0;! *st != '.';! st++, nchar++)X ;X if (nchar != 1 || *in != '0' || flag) {! flag=1;! strncpy(paux1, i == 0 ? in : in - 1,! i == 0 ? nchar : nchar + 1);X pauxt = paux2;X paux2 = strcat(paux1, paux2);--- 175,187 ----X for (i = 0; i < 4; i++) {X for (st = in, nchar = 0;! *st != '.';! st++, nchar++)X ;X if (nchar != 1 || *in != '0' || flag) {! flag = 1;! (void)strncpy(paux1,! (i==0) ? in : in-1,! (i==0) ?nchar : nchar+1);! paux1[(i==0) ? nchar : nchar+1] = '\0';X pauxt = paux2;X paux2 = strcat(paux1, paux2);****************** 236,240 ****X break;X }! anslen = res_query(qbuf, C_IN, T_PTR, (char *)&buf, sizeof(buf));X if (anslen < 0) {X #ifdef DEBUG--- 233,237 ----X break;X }! anslen = res_query(qbuf, C_IN, T_PTR, (u_char *)&buf, sizeof(buf));X if (anslen < 0) {X #ifdef DEBUG****************** 244,248 ****X if (errno == ECONNREFUSED)X return (_getnetbyaddr(net, net_type));! return (_getnetbyaddr(net, net_type));X }X net_entry = getnetanswer(&buf, anslen, BYADDR);--- 241,245 ----X if (errno == ECONNREFUSED)X return (_getnetbyaddr(net, net_type));! return (NULL);X }X net_entry = getnetanswer(&buf, anslen, BYADDR);****************** 270,274 ****X X strcpy(&qbuf[0],net);! anslen = res_search(qbuf, C_IN, T_PTR, (char *)&buf, sizeof(buf));X if (anslen < 0) {X #ifdef DEBUG--- 267,271 ----X X strcpy(&qbuf[0],net);! anslen = res_search(qbuf, C_IN, T_PTR, (u_char *)&buf, sizeof(buf));X if (anslen < 0) {X #ifdef DEBUG*** ../net-2.0b1/herror.c Mon Nov 7 10:54:29 1994--- herror.c Sun Dec 11 23:35:40 1994****************** 68,72 ****X X char *h_errlist[] = {! "Error 0",X "Unknown host", /* 1 HOST_NOT_FOUND */X "Host name lookup failure", /* 2 TRY_AGAIN */--- 68,72 ----X X char *h_errlist[] = {! "Resolver Error 0 (no error)",X "Unknown host", /* 1 HOST_NOT_FOUND */X "Host name lookup failure", /* 2 TRY_AGAIN */****************** 74,78 ****X "No address associated with name", /* 4 NO_ADDRESS */X };! int h_nerr = { sizeof(h_errlist)/sizeof(h_errlist[0]) };X X extern int h_errno;--- 74,78 ----X "No address associated with name", /* 4 NO_ADDRESS */X };! int h_nerr = { sizeof h_errlist / sizeof h_errlist[0] };X X extern int h_errno;****************** 97,102 ****X v++;X }! v->iov_base = (u_int)h_errno < h_nerr ?! h_errlist[h_errno] : "Unknown error";X v->iov_len = strlen(v->iov_base);X v++;--- 97,101 ----X v++;X }! v->iov_base = hstrerror(h_errno);X v->iov_len = strlen(v->iov_base);X v++;****************** 110,115 ****X int err;X {! ! if ((u_int)err < h_nerr)X return (h_errlist[err]);X return ("Unknown resolver error");--- 109,115 ----X int err;X {! if (err < 0)! return ("Resolver internal error");! else if (err < h_nerr)X return (h_errlist[err]);X return ("Unknown resolver error");*** ../net-2.0b1/res_comp.c Mon Nov 7 10:54:47 1994--- res_comp.c Sun Dec 11 21:01:14 1994****************** 58,75 ****X #if defined(LIBC_SCCS) && !defined(lint)X static char sccsid[] = "@(#)res_comp.c 8.1 (Berkeley) 6/4/93";! static char rcsid[] = "=Id: res_comp.c,v 4.9.1.4 1993/11/12 01:23:34 vixie Exp =";X #endif /* LIBC_SCCS and not lint */X X #include <sys/param.h>- #include <arpa/nameser.h>X #include <netinet/in.h>X X #include <stdio.h>X #include <resolv.h>! X #include <unistd.h>X #include <string.h>X ! static int dn_find __P((u_char *, u_char *, u_char **, u_char **));X X /*--- 58,76 ----X #if defined(LIBC_SCCS) && !defined(lint)X static char sccsid[] = "@(#)res_comp.c 8.1 (Berkeley) 6/4/93";! static char rcsid[] = "=Id: res_comp.c,v 4.9.1.13 1994/12/05 18:59:22 vixie Exp =";X #endif /* LIBC_SCCS and not lint */X X #include <sys/param.h>X #include <netinet/in.h>+ #include <arpa/nameser.h>X X #include <stdio.h>X #include <resolv.h>! #include <ctype.h>X #include <unistd.h>X #include <string.h>X ! static int dn_find __P((u_char *exp_dn, u_char *msg,! u_char **dnptrs, u_char **lastdnptr));X X /******************* 80,95 ****X * Return size of compressed name or -1 if there was an error.X */X dn_expand(msg, eomorig, comp_dn, exp_dn, length)X const u_char *msg, *eomorig, *comp_dn;! u_char *exp_dn;X int length;X {! register u_char *cp, *dn;X register int n, c;! u_char *eom;X int len = -1, checked = 0;X X dn = exp_dn;! cp = (u_char *)comp_dn;X eom = exp_dn + length;X /*--- 81,98 ----X * Return size of compressed name or -1 if there was an error.X */+ intX dn_expand(msg, eomorig, comp_dn, exp_dn, length)X const u_char *msg, *eomorig, *comp_dn;! char *exp_dn;X int length;X {! register const u_char *cp;! register char *dn;X register int n, c;! char *eom;X int len = -1, checked = 0;X X dn = exp_dn;! cp = comp_dn;X eom = exp_dn + length;X /******************* 118,122 ****X *dn++ = c;X if (cp >= eomorig) /* out of range */! return(-1);X }X break;--- 121,125 ----X *dn++ = c;X if (cp >= eomorig) /* out of range */! return (-1);X }X break;****************** 125,131 ****X if (len < 0)X len = cp - comp_dn + 1;! cp = (u_char *)msg + (((n & 0x3f) << 8) | (*cp & 0xff));X if (cp < msg || cp >= eomorig) /* out of range */! return(-1);X checked += 2;X /*--- 128,134 ----X if (len < 0)X len = cp - comp_dn + 1;! cp = msg + (((n & 0x3f) << 8) | (*cp & 0xff));X if (cp < msg || cp >= eomorig) /* out of range */! return (-1);X checked += 2;X /******************* 143,146 ****--- 146,152 ----X }X *dn = '\0';+ for (dn = exp_dn; (c = *dn) != '\0'; dn++)+ if (isascii(c) && isspace(c))+ return (-1);X if (len < 0)X len = cp - comp_dn;****************** 160,165 ****X * is NULL, we don't update the list.X */X dn_comp(exp_dn, comp_dn, length, dnptrs, lastdnptr)! const u_char *exp_dn;X u_char *comp_dn, **dnptrs, **lastdnptr;X int length;--- 166,172 ----X * is NULL, we don't update the list.X */+ intX dn_comp(exp_dn, comp_dn, length, dnptrs, lastdnptr)! const char *exp_dn;X u_char *comp_dn, **dnptrs, **lastdnptr;X int length;****************** 173,176 ****--- 180,184 ----X cp = comp_dn;X eob = cp + length;+ lpp = cpp = NULL;X if (dnptrs != NULL) {X if ((msg = *dnptrs++) != NULL) {****************** 238,248 ****X * Skip over a compressed domain name. Return the size or -1.X */X __dn_skipname(comp_dn, eom)X const u_char *comp_dn, *eom;X {! register u_char *cp;X register int n;X ! cp = (u_char *)comp_dn;X while (cp < eom && (n = *cp++)) {X /*--- 246,257 ----X * Skip over a compressed domain name. Return the size or -1.X */+ intX __dn_skipname(comp_dn, eom)X const u_char *comp_dn, *eom;X {! register const u_char *cp;X register int n;X ! cp = comp_dn;X while (cp < eom && (n = *cp++)) {X /******************* 266,269 ****--- 275,287 ----X }X + static int+ mklower(ch)+ register int ch;+ {+ if (isascii(ch) && isupper(ch))+ return (tolower(ch));+ return (ch);+ }+ X /*X * Search for expanded name from a list of previously compressed names.****************** 295,299 ****X if (*dn == '\\')X dn++;! if (*dn++ != *cp++)X goto next;X }--- 313,317 ----X if (*dn == '\\')X dn++;! if (mklower(*dn++) != mklower(*cp++))X goto next;X }****************** 304,312 ****X goto next;X - default: /* illegal type */- return (-1);- X case INDIR_MASK: /* indirection */X cp = msg + (((n & 0x3f) << 8) | *cp);X }X }--- 322,331 ----X goto next;X X case INDIR_MASK: /* indirection */X cp = msg + (((n & 0x3f) << 8) | *cp);+ break;+ + default: /* illegal type */+ return (-1);X }X }****************** 328,332 ****X u_int16_tX _getshort(msgp)! register u_char *msgp;X {X register u_int16_t u;--- 347,351 ----X u_int16_tX _getshort(msgp)! register const u_char *msgp;X {X register u_int16_t u;****************** 338,342 ****X u_int32_tX _getlong(msgp)! register u_char *msgp;X {X register u_int32_t u;--- 357,361 ----X u_int32_tX _getlong(msgp)! register const u_char *msgp;X {X register u_int32_t u;****************** 348,352 ****X voidX #if defined(__STDC__) || defined(__cplusplus)! __putshort(register u_short s, register u_char *msgp)X #elseX __putshort(s, msgp)--- 367,371 ----X voidX #if defined(__STDC__) || defined(__cplusplus)! __putshort(register u_int16_t s, register u_char *msgp) /* must match proto */X #elseX __putshort(s, msgp)*** ../net-2.0b1/res_debug.c Mon Nov 7 10:54:49 1994--- res_debug.c Mon Dec 12 00:07:34 1994****************** 58,62 ****X #if defined(LIBC_SCCS) && !defined(lint)X static char sccsid[] = "@(#)res_debug.c 8.1 (Berkeley) 6/4/93";! static char rcsid[] = "=Id: res_debug.c,v 4.9.1.6 1993/11/12 01:23:34 vixie Exp =";X #endif /* LIBC_SCCS and not lint */X --- 58,62 ----X #if defined(LIBC_SCCS) && !defined(lint)X static char sccsid[] = "@(#)res_debug.c 8.1 (Berkeley) 6/4/93";! static char rcsid[] = "=Id: res_debug.c,v 4.9.1.21 1994/12/11 19:47:17 vixie Exp =";X #endif /* LIBC_SCCS and not lint */X ****************** 70,84 ****X #include <string.h>X ! void __fp_query();! char *__p_class(), *__p_time(), *__p_type();! static char *p_cdname(), *p_fqname(), *p_rr();! static char *p_option __P((u_int32_t));X ! char *_res_opcodes[] = {X "QUERY",X "IQUERY",X "CQUERYM",! "CQUERYU",! "4",X "5",X "6",--- 70,81 ----X #include <string.h>X ! #define DEBUG 1X ! const char *_res_opcodes[] = {X "QUERY",X "IQUERY",X "CQUERYM",! "CQUERYU", /* experimental */! "NOTIFY", /* experimental */X "5",X "6",****************** 94,98 ****X };X ! char *_res_resultcodes[] = {X "NOERROR",X "FORMERR",--- 91,95 ----X };X ! const char *_res_resultcodes[] = {X "NOERROR",X "FORMERR",****************** 115,198 ****X static char retbuf[16];X
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -