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

📄 res_debug.c

📁 bind 9.3结合mysql数据库
💻 C
📖 第 1 页 / 共 3 页
字号:
	{S_ADDT,	"ADDITIONAL",	(char *)0},	{0,             (char *)0,	(char *)0}};const struct res_sym __p_key_syms[] = {	{NS_ALG_MD5RSA,		"RSA",		"RSA KEY with MD5 hash"},	{NS_ALG_DH,		"DH",		"Diffie Hellman"},	{NS_ALG_DSA,		"DSA",		"Digital Signature Algorithm"},	{NS_ALG_EXPIRE_ONLY,	"EXPIREONLY",	"No algorithm"},	{NS_ALG_PRIVATE_OID,	"PRIVATE",	"Algorithm obtained from OID"},	{0,			NULL,		NULL}};const struct res_sym __p_cert_syms[] = {	{cert_t_pkix,	"PKIX",		"PKIX (X.509v3) Certificate"},	{cert_t_spki,	"SPKI",		"SPKI certificate"},	{cert_t_pgp,	"PGP",		"PGP certificate"},	{cert_t_url,	"URL",		"URL Private"},	{cert_t_oid,	"OID",		"OID Private"},	{0,		NULL,		NULL}};/* * Names of RR types and qtypes.  Types and qtypes are the same, except * that T_ANY is a qtype but not a type.  (You can ask for records of type * T_ANY, but you can't have any records of that type in the database.) */const struct res_sym __p_type_syms[] = {	{ns_t_a,	"A",		"address"},	{ns_t_ns,	"NS",		"name server"},	{ns_t_md,	"MD",		"mail destination (deprecated)"},	{ns_t_mf,	"MF",		"mail forwarder (deprecated)"},	{ns_t_cname,	"CNAME",	"canonical name"},	{ns_t_soa,	"SOA",		"start of authority"},	{ns_t_mb,	"MB",		"mailbox"},	{ns_t_mg,	"MG",		"mail group member"},	{ns_t_mr,	"MR",		"mail rename"},	{ns_t_null,	"NULL",		"null"},	{ns_t_wks,	"WKS",		"well-known service (deprecated)"},	{ns_t_ptr,	"PTR",		"domain name pointer"},	{ns_t_hinfo,	"HINFO",	"host information"},	{ns_t_minfo,	"MINFO",	"mailbox information"},	{ns_t_mx,	"MX",		"mail exchanger"},	{ns_t_txt,	"TXT",		"text"},	{ns_t_rp,	"RP",		"responsible person"},	{ns_t_afsdb,	"AFSDB",	"DCE or AFS server"},	{ns_t_x25,	"X25",		"X25 address"},	{ns_t_isdn,	"ISDN",		"ISDN address"},	{ns_t_rt,	"RT",		"router"},	{ns_t_nsap,	"NSAP",		"nsap address"},	{ns_t_nsap_ptr,	"NSAP_PTR",	"domain name pointer"},	{ns_t_sig,	"SIG",		"signature"},	{ns_t_key,	"KEY",		"key"},	{ns_t_px,	"PX",		"mapping information"},	{ns_t_gpos,	"GPOS",		"geographical position (withdrawn)"},	{ns_t_aaaa,	"AAAA",		"IPv6 address"},	{ns_t_loc,	"LOC",		"location"},	{ns_t_nxt,	"NXT",		"next valid name (unimplemented)"},	{ns_t_eid,	"EID",		"endpoint identifier (unimplemented)"},	{ns_t_nimloc,	"NIMLOC",	"NIMROD locator (unimplemented)"},	{ns_t_srv,	"SRV",		"server selection"},	{ns_t_atma,	"ATMA",		"ATM address (unimplemented)"},	{ns_t_tkey,	"TKEY",		"tkey"},	{ns_t_tsig,	"TSIG",		"transaction signature"},	{ns_t_ixfr,	"IXFR",		"incremental zone transfer"},	{ns_t_axfr,	"AXFR",		"zone transfer"},	{ns_t_zxfr,	"ZXFR",		"compressed zone transfer"},	{ns_t_mailb,	"MAILB",	"mailbox-related data (deprecated)"},	{ns_t_maila,	"MAILA",	"mail agent (deprecated)"},	{ns_t_naptr,	"NAPTR",	"URN Naming Authority"},	{ns_t_kx,	"KX",		"Key Exchange"},	{ns_t_cert,	"CERT",		"Certificate"},	{ns_t_a6,	"A6",		"IPv6 Address"},	{ns_t_dname,	"DNAME",	"dname"},	{ns_t_sink,	"SINK",		"Kitchen Sink (experimental)"},	{ns_t_opt,	"OPT",		"EDNS Options"},	{ns_t_any,	"ANY",		"\"any\""},	{0, 		NULL,		NULL}};/* * Names of DNS rcodes. */const struct res_sym __p_rcode_syms[] = {	{ns_r_noerror,	"NOERROR",		"no error"},	{ns_r_formerr,	"FORMERR",		"format error"},	{ns_r_servfail,	"SERVFAIL",		"server failed"},	{ns_r_nxdomain,	"NXDOMAIN",		"no such domain name"},	{ns_r_notimpl,	"NOTIMP",		"not implemented"},	{ns_r_refused,	"REFUSED",		"refused"},	{ns_r_yxdomain,	"YXDOMAIN",		"domain name exists"},	{ns_r_yxrrset,	"YXRRSET",		"rrset exists"},	{ns_r_nxrrset,	"NXRRSET",		"rrset doesn't exist"},	{ns_r_notauth,	"NOTAUTH",		"not authoritative"},	{ns_r_notzone,	"NOTZONE",		"Not in zone"},	{ns_r_max,	"",			""},	{ns_r_badsig,	"BADSIG",		"bad signature"},	{ns_r_badkey,	"BADKEY",		"bad key"},	{ns_r_badtime,	"BADTIME",		"bad time"},	{0, 		NULL,			NULL}};intsym_ston(const struct res_sym *syms, const char *name, int *success) {	for ((void)NULL; syms->name != 0; syms++) {		if (strcasecmp (name, syms->name) == 0) {			if (success)				*success = 1;			return (syms->number);		}	}	if (success)		*success = 0;	return (syms->number);		/* The default value. */}const char *sym_ntos(const struct res_sym *syms, int number, int *success) {	static char unname[20];	for ((void)NULL; syms->name != 0; syms++) {		if (number == syms->number) {			if (success)				*success = 1;			return (syms->name);		}	}	sprintf(unname, "%d", number);		/* XXX nonreentrant */	if (success)		*success = 0;	return (unname);}const char *sym_ntop(const struct res_sym *syms, int number, int *success) {	static char unname[20];	for ((void)NULL; syms->name != 0; syms++) {		if (number == syms->number) {			if (success)				*success = 1;			return (syms->humanname);		}	}	sprintf(unname, "%d", number);		/* XXX nonreentrant */	if (success)		*success = 0;	return (unname);}/* * Return a string for the type. */const char *p_type(int type) {	int success;	const char *result;	static char typebuf[20];	result = sym_ntos(__p_type_syms, type, &success);	if (success)		return (result);	if (type < 0 || type > 0xffff)		return ("BADTYPE");	sprintf(typebuf, "TYPE%d", type);	return (typebuf);}/* * Return a string for the type. */const char *p_section(int section, int opcode) {	const struct res_sym *symbols;	switch (opcode) {	case ns_o_update:		symbols = __p_update_section_syms;		break;	default:		symbols = __p_default_section_syms;		break;	}	return (sym_ntos(symbols, section, (int *)0));}/* * Return a mnemonic for class. */const char *p_class(int class) {	int success;	const char *result;	static char classbuf[20];	result = sym_ntos(__p_class_syms, class, &success);	if (success)		return (result);	if (class < 0 || class > 0xffff)		return ("BADCLASS");	sprintf(classbuf, "CLASS%d", class);	return (classbuf);}/* * Return a mnemonic for an option */const char *p_option(u_long option) {	static char nbuf[40];	switch (option) {	case RES_INIT:		return "init";	case RES_DEBUG:		return "debug";	case RES_AAONLY:	return "aaonly(unimpl)";	case RES_USEVC:		return "usevc";	case RES_PRIMARY:	return "primry(unimpl)";	case RES_IGNTC:		return "igntc";	case RES_RECURSE:	return "recurs";	case RES_DEFNAMES:	return "defnam";	case RES_STAYOPEN:	return "styopn";	case RES_DNSRCH:	return "dnsrch";	case RES_INSECURE1:	return "insecure1";	case RES_INSECURE2:	return "insecure2";	case RES_NOALIASES:	return "noaliases";	case RES_USE_INET6:	return "inet6";#ifdef RES_USE_EDNS0	/* KAME extension */	case RES_USE_EDNS0:	return "edns0";#endif#ifdef RES_USE_DNAME	case RES_USE_DNAME:	return "dname";#endif#ifdef RES_USE_DNSSEC	case RES_USE_DNSSEC:	return "dnssec";#endif#ifdef RES_NOTLDQUERY	case RES_NOTLDQUERY:	return "no-tld-query";#endif#ifdef RES_NO_NIBBLE2	case RES_NO_NIBBLE2:	return "no-nibble2";#endif				/* XXX nonreentrant */	default:		sprintf(nbuf, "?0x%lx?", (u_long)option);				return (nbuf);	}}/* * Return a mnemonic for a time to live. */const char *p_time(u_int32_t value) {	static char nbuf[40];		/* XXX nonreentrant */	if (ns_format_ttl(value, nbuf, sizeof nbuf) < 0)		sprintf(nbuf, "%u", value);	return (nbuf);}/* * Return a string for the rcode. */const char *p_rcode(int rcode) {	return (sym_ntos(__p_rcode_syms, rcode, (int *)0));}/* * Return a string for a res_sockaddr_union. */const char *p_sockun(union res_sockaddr_union u, char *buf, size_t size) {	char ret[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:123.123.123.123"];	switch (u.sin.sin_family) {	case AF_INET:		inet_ntop(AF_INET, &u.sin.sin_addr, ret, sizeof ret);		break;#ifdef HAS_INET6_STRUCTS	case AF_INET6:		inet_ntop(AF_INET6, &u.sin6.sin6_addr, ret, sizeof ret);		break;#endif	default:		sprintf(ret, "[af%d]", u.sin.sin_family);		break;	}	if (size > 0U) {		strncpy(buf, ret, size - 1);		buf[size - 1] = '0';	}	return (buf);}/* * routines to convert between on-the-wire RR format and zone file format. * Does not contain conversion to/from decimal degrees; divide or multiply * by 60*60*1000 for that. */static unsigned int poweroften[10] = {1, 10, 100, 1000, 10000, 100000,				      1000000,10000000,100000000,1000000000};/* takes an XeY precision/size value, returns a string representation. */static const char *precsize_ntoa(prec)	u_int8_t prec;{	static char retbuf[sizeof "90000000.00"];	/* XXX nonreentrant */	unsigned long val;	int mantissa, exponent;	mantissa = (int)((prec >> 4) & 0x0f) % 10;	exponent = (int)((prec >> 0) & 0x0f) % 10;	val = mantissa * poweroften[exponent];	(void) sprintf(retbuf, "%lu.%.2lu", val/100, val%100);	return (retbuf);}/* converts ascii size/precision X * 10**Y(cm) to 0xXY.  moves pointer. */static u_int8_tprecsize_aton(const char **strptr) {	unsigned int mval = 0, cmval = 0;	u_int8_t retval = 0;	const char *cp;	int exponent;	int mantissa;	cp = *strptr;	while (isdigit((unsigned char)*cp))		mval = mval * 10 + (*cp++ - '0');	if (*cp == '.') {		/* centimeters */		cp++;		if (isdigit((unsigned char)*cp)) {			cmval = (*cp++ - '0') * 10;			if (isdigit((unsigned char)*cp)) {				cmval += (*cp++ - '0');			}		}	}	cmval = (mval * 100) + cmval;	for (exponent = 0; exponent < 9; exponent++)		if (cmval < poweroften[exponent+1])			break;	mantissa = cmval / poweroften[exponent];	if (mantissa > 9)		mantissa = 9;	retval = (mantissa << 4) | exponent;	*strptr = cp;	return (retval);}/* converts ascii lat/lon to unsigned encoded 32-bit number.  moves pointer. */static u_int32_tlatlon2ul(const char **latlonstrptr, int *which) {	const char *cp;	u_int32_t retval;	int deg = 0, min = 0, secs = 0, secsfrac = 0;	cp = *latlonstrptr;	while (isdigit((unsigned char)*cp))		deg = deg * 10 + (*cp++ - '0');	while (isspace((unsigned char)*cp))		cp++;	if (!(isdigit((unsigned char)*cp)))		goto fndhemi;	while (isdigit((unsigned char)*cp))		min = min * 10 + (*cp++ - '0');	while (isspace((unsigned char)*cp))		cp++;	if (!(isdigit((unsigned char)*cp)))		goto fndhemi;

⌨️ 快捷键说明

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