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

📄 debug.c

📁 一个可用的dns服务器源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
			} else if (dlen == 7) {				fprintf(file,"\tinternet address = %s",					inet_ntoa(inaddr));				fprintf(file,", protocol = %d", cp[4]);				fprintf(file,", port = %d\n",					(cp[5] << 8) + cp[6]);				cp += dlen;			}			break;		default:			fprintf(file,"\taddress, class = %d, len = %d\n",			    class, dlen);			cp += dlen;		}		break;	case T_CNAME:		fprintf(file,"\tcanonical name = ");		goto doname;	case T_MG:		fprintf(file,"\tmail group member = ");		goto doname;	case T_MB:		fprintf(file,"\tmail box = ");		goto doname;	case T_MR:		fprintf(file,"\tmailbox rename = ");		goto doname;	case T_MX:		fprintf(file,"\tpreference = %u",_getshort((u_char*)cp));		cp += INT16SZ;		fprintf(file,", mail exchanger = ");		goto doname;	case T_NAPTR: 		fprintf(file, "\torder = %u",_getshort((u_char*)cp));		cp += INT16SZ;		fprintf(file,", preference = %u\n", _getshort((u_char*)cp));		cp += INT16SZ;		/* Flags */		n = *cp++;		fprintf(file,"\tflags = \"%.*s\"\n", (int)n, cp);		cp += n;		/* Service */		n = *cp++;		fprintf(file,"\tservices = \"%.*s\"\n", (int)n, cp);		cp += n;		/* Regexp */		n = *cp++;		fprintf(file,"\trule = \"%.*s\"\n", (int)n, cp);		cp += n;		/* Replacement */		fprintf(file,"\treplacement = ");                cp = Print_cdname(cp, msg, eom, file);		if (cp == NULL) {			fprintf(file, "(replacement truncated?)\n");			return (NULL);			/* compression error */		}                (void) putc('\n', file);		break;	case T_SRV: 		fprintf(file, "\tpriority = %u",_getshort((u_char*)cp));		cp += INT16SZ;		fprintf(file,", weight = %u", _getshort((u_char*)cp));		cp += INT16SZ;		fprintf(file,", port= %u\n", _getshort((u_char*)cp));		cp += INT16SZ;		fprintf(file,"\thost = ");		goto doname;        case T_PX:                fprintf(file,"\tpreference = %u",_getshort((u_char*)cp));                cp += INT16SZ;                fprintf(file,", RFC 822 = ");                cp = Print_cdname(cp, msg, eom, file);		if (cp == NULL) {			fprintf(file, "(name truncated?)\n");			return (NULL);			/* compression error */		}                fprintf(file,"\nX.400 = ");                cp = Print_cdname(cp, msg, eom, file);		if (cp == NULL) {			fprintf(file, "(name truncated?)\n");			return (NULL);			/* compression error */		}                (void) putc('\n', file);                break;	case T_RT:		fprintf(file,"\tpreference = %u",_getshort((u_char*)cp));		cp += INT16SZ;		fprintf(file,", router = ");		goto doname;	case T_AFSDB:		fprintf(file,"\tsubtype = %d",_getshort((u_char*)cp));		cp += INT16SZ;		fprintf(file,", DCE/AFS server = ");		goto doname;	case T_NS:		fprintf(file,"\tnameserver = ");#ifdef GUI                doing_nameserver = TRUE;#endif		goto doname;	case T_PTR:		fprintf(file,"\tname = ");doname:		cp = Print_cdname(cp, msg, eom, file);#ifdef GUI                doing_nameserver = FALSE;#endif		if (cp == NULL) {			fprintf(file, "(name truncated?)\n");			return (NULL);			/* compression error */		}		(void) putc('\n', file);		break;	case T_HINFO:		cp2 = cp + dlen;		if (n = *cp++) {			fprintf(file,"\tCPU = %.*s", n, cp);			cp += n;		}		if ((cp < cp2) && (n = *cp++)) {			fprintf(file,"\tOS = %.*s\n", n, cp);			cp += n;		} else fprintf(file, "\n*** Warning *** OS-type missing\n");		break;	case T_ISDN:		cp2 = cp + dlen;		if (n = *cp++) {			fprintf(file,"\tISDN = \"%.*s", n, cp);			cp += n;		}		if ((cp < cp2) && (n = *cp++)) {			fprintf(file,"-%.*s\"\n", n, cp);			cp += n;		} else fprintf(file,"\"\n");		break;	case T_SOA:		if (!debug)		    (void) putc('\n', file);		fprintf(file,"\torigin = ");		cp = Print_cdname(cp, msg, eom, file);		if (cp == NULL) {			fprintf(file, "(name truncated?)\n");			return (NULL);			/* compression error */		}		fprintf(file,"\n\tmail addr = ");		cp = Print_cdname(cp, msg, eom, file);		if (cp == NULL) {			fprintf(file, "(name truncated?)\n");			return (NULL);			/* compression error */		}		fprintf(file,"\n\tserial = %lu", _getlong((u_char*)cp));		cp += INT32SZ;		ttl = _getlong((u_char*)cp);		fprintf(file,"\n\trefresh = %lu (%s)", ttl, p_time(ttl));		cp += INT32SZ;		ttl = _getlong((u_char*)cp);		fprintf(file,"\n\tretry   = %lu (%s)", ttl, p_time(ttl));		cp += INT32SZ;		ttl = _getlong((u_char*)cp);		fprintf(file,"\n\texpire  = %lu (%s)", ttl, p_time(ttl));		cp += INT32SZ;		ttl = _getlong((u_char*)cp);		fprintf(file,		    "\n\tminimum ttl = %lu (%s)\n", ttl, p_time(ttl));		cp += INT32SZ;		break;	case T_MINFO:		if (!debug)		    (void) putc('\n', file);		fprintf(file,"\trequests = ");		cp = Print_cdname(cp, msg, eom, file);		if (cp == NULL) {			fprintf(file, "(name truncated?)\n");			return (NULL);			/* compression error */		}		fprintf(file,"\n\terrors = ");		cp = Print_cdname(cp, msg, eom, file);		if (cp == NULL) {			fprintf(file, "(name truncated?)\n");			return (NULL);			/* compression error */		}		(void) putc('\n', file);		break;	case T_RP:		if (!debug)		    (void) putc('\n', file);		fprintf(file,"\tmailbox = ");		cp = Print_cdname(cp, msg, eom, file);		if (cp == NULL) {			fprintf(file, "(name truncated?)\n");			return (NULL);			/* compression error */		}		fprintf(file,"\n\ttext = ");		cp = Print_cdname(cp, msg, eom, file);		if (cp == NULL) {			fprintf(file, "(name truncated?)\n");			return (NULL);			/* compression error */		}		(void) putc('\n', file);		break;	case T_TXT:		(void) fputs("\ttext = ", file);		cp2 = cp1 + dlen;		while (cp < cp2) {			(void) putc('"', file);			if (n = (unsigned char) *cp++) {				for (c = n; c > 0 && cp < cp2; c--) {					if ((*cp == '\n') || (*cp == '"') || (*cp == '\\'))						(void) putc('\\', file);					(void) putc(*cp++, file);				}			}			(void) putc('"', file);			if (cp < cp2)				(void) putc(' ', file);		}		(void) putc('\n', file);  		break;	case T_X25:		(void) fputs("\tX25 = \"", file);		cp2 = cp1 + dlen;		while (cp < cp2) {			if (n = (unsigned char) *cp++) {				for (c = n; c > 0 && cp < cp2; c--)					if (*cp == '\n') {					    (void) putc('\\', file);					    (void) putc(*cp++, file);					} else					    (void) putc(*cp++, file);			}		}		(void) fputs("\"\n", file);  		break;	case T_NSAP:		fprintf(file, "\tnsap = %s\n", inet_nsap_ntoa(dlen, cp, NULL));		cp += dlen;  		break;	case T_AAAA: {		char t[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"];		fprintf(file, "\tIPv6 address = %s\n",			inet_ntop(AF_INET6, cp, t, sizeof t));		cp += IN6ADDRSZ;		break;	}	case T_UINFO:		fprintf(file,"\tuser info = %s\n", cp);		cp += dlen;		break;	case T_UID:	case T_GID:		if (dlen == 4) {			fprintf(file,"\t%cid = %u\n",type == T_UID ? 'u' : 'g',			    _getlong((u_char*)cp));			cp += INT32SZ;		} else {			fprintf(file,"\t%cid of length %d?\n",			    type == T_UID ? 'u' : 'g', dlen);			cp += dlen;		}		break;	case T_WKS: {		struct protoent *protoPtr;		if (dlen < INT32SZ + 1)			break;		if (!debug)		    (void) putc('\n', file);		bcopy(cp, (char *)&inaddr, INADDRSZ);		cp += INT32SZ;		if ((protoPtr = getprotobynumber(*cp)) != NULL) {		    fprintf(file,"\tinet address = %s, protocol = %s\n\t",			inet_ntoa(inaddr), protoPtr->p_name);		} else {		    fprintf(file,"\tinet address = %s, protocol = %d\n\t",			inet_ntoa(inaddr), *cp);		}		cp++;		n = 0;		while (cp < cp1 + dlen) {			c = *cp++;			do {				struct servent *s; 				if (c & 0200) {					s = getservbyport((int)htons( (u_short) n),					    protoPtr ? protoPtr->p_name : NULL);					if (s != NULL) {					    fprintf(file,"  %s", s->s_name);					} else {					    fprintf(file," #%d", n);					}				} 				c <<= 1;			} while (++n & 07);		}		putc('\n',file);	    }	    break;	case T_NULL:		fprintf(file, "\tNULL (dlen %d)\n", dlen);		cp += dlen;		break;	default:		fprintf(file,"\trecord type %d, interpreted as:\n", type);		/* Let resolver library try to print it */		p_rr(ocp, msg, file);		cp += dlen;	}	if (_res.options & RES_DEBUG && type != T_SOA) {	    fprintf(file,"\tttl = %lu (%s)\n", rrttl, p_time(rrttl));	}	if (cp != cp1 + dlen) {		fprintf(file,			"\n*** Error: record size incorrect (%d != %d)\n\n",			cp - cp1, dlen);		cp = NULL;	}	return (cp);}

⌨️ 快捷键说明

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