亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ns_print.c

?? package of develop dns
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996-1999 by Internet Software Consortium. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */#ifndef lintstatic const char rcsid[] = "$Id: ns_print.c,v 1.3.2.1.4.7 2004/09/16 07:01:12 marka Exp $";#endif/* Import. */#include "port_before.h"#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/nameser.h>#include <arpa/inet.h>#include <isc/assertions.h>#include <isc/dst.h>#include <errno.h>#include <resolv.h>#include <string.h>#include <ctype.h>#include "port_after.h"#ifdef SPRINTF_CHAR# define SPRINTF(x) strlen(sprintf/**/x)#else# define SPRINTF(x) ((size_t)sprintf x)#endif/* Forward. */static size_t	prune_origin(const char *name, const char *origin);static int	charstr(const u_char *rdata, const u_char *edata,			char **buf, size_t *buflen);static int	addname(const u_char *msg, size_t msglen,			const u_char **p, const char *origin,			char **buf, size_t *buflen);static void	addlen(size_t len, char **buf, size_t *buflen);static int	addstr(const char *src, size_t len,		       char **buf, size_t *buflen);static int	addtab(size_t len, size_t target, int spaced,		       char **buf, size_t *buflen);/* Macros. */#define	T(x) \	do { \		if ((x) < 0) \			return (-1); \	} while (0)/* Public. *//* * int * ns_sprintrr(handle, rr, name_ctx, origin, buf, buflen) *	Convert an RR to presentation format. * return: *	Number of characters written to buf, or -1 (check errno). */intns_sprintrr(const ns_msg *handle, const ns_rr *rr,	    const char *name_ctx, const char *origin,	    char *buf, size_t buflen){	int n;	n = ns_sprintrrf(ns_msg_base(*handle), ns_msg_size(*handle),			 ns_rr_name(*rr), ns_rr_class(*rr), ns_rr_type(*rr),			 ns_rr_ttl(*rr), ns_rr_rdata(*rr), ns_rr_rdlen(*rr),			 name_ctx, origin, buf, buflen);	return (n);}/* * int * ns_sprintrrf(msg, msglen, name, class, type, ttl, rdata, rdlen, *	       name_ctx, origin, buf, buflen) *	Convert the fields of an RR into presentation format. * return: *	Number of characters written to buf, or -1 (check errno). */intns_sprintrrf(const u_char *msg, size_t msglen,	    const char *name, ns_class class, ns_type type,	    u_long ttl, const u_char *rdata, size_t rdlen,	    const char *name_ctx, const char *origin,	    char *buf, size_t buflen){	const char *obuf = buf;	const u_char *edata = rdata + rdlen;	int spaced = 0;	const char *comment;	char tmp[100];	int len, x;	/*	 * Owner.	 */	if (name_ctx != NULL && ns_samename(name_ctx, name) == 1) {		T(addstr("\t\t\t", 3, &buf, &buflen));	} else {		len = prune_origin(name, origin);		if (*name == '\0') {			goto root;		} else if (len == 0) {			T(addstr("@\t\t\t", 4, &buf, &buflen));		} else {			T(addstr(name, len, &buf, &buflen));			/* Origin not used or not root, and no trailing dot? */			if (((origin == NULL || origin[0] == '\0') ||			    (origin[0] != '.' && origin[1] != '\0' &&			    name[len] == '\0')) && name[len - 1] != '.') { root:				T(addstr(".", 1, &buf, &buflen));				len++;			}			T(spaced = addtab(len, 24, spaced, &buf, &buflen));		}	}	/*	 * TTL, Class, Type.	 */	T(x = ns_format_ttl(ttl, buf, buflen));	addlen(x, &buf, &buflen);	len = SPRINTF((tmp, " %s %s", p_class(class), p_type(type)));	T(addstr(tmp, len, &buf, &buflen));	T(spaced = addtab(x + len, 16, spaced, &buf, &buflen));	/*	 * RData.	 */	switch (type) {	case ns_t_a:		if (rdlen != (size_t)NS_INADDRSZ)			goto formerr;		(void) inet_ntop(AF_INET, rdata, buf, buflen);		addlen(strlen(buf), &buf, &buflen);		break;	case ns_t_cname:	case ns_t_mb:	case ns_t_mg:	case ns_t_mr:	case ns_t_ns:	case ns_t_ptr:	case ns_t_dname:		T(addname(msg, msglen, &rdata, origin, &buf, &buflen));		break;	case ns_t_hinfo:	case ns_t_isdn:		/* First word. */		T(len = charstr(rdata, edata, &buf, &buflen));		if (len == 0)			goto formerr;		rdata += len;		T(addstr(" ", 1, &buf, &buflen));		    		/* Second word, optional in ISDN records. */		if (type == ns_t_isdn && rdata == edata)			break;		    		T(len = charstr(rdata, edata, &buf, &buflen));		if (len == 0)			goto formerr;		rdata += len;		break;	case ns_t_soa: {		u_long t;		/* Server name. */		T(addname(msg, msglen, &rdata, origin, &buf, &buflen));		T(addstr(" ", 1, &buf, &buflen));		/* Administrator name. */		T(addname(msg, msglen, &rdata, origin, &buf, &buflen));		T(addstr(" (\n", 3, &buf, &buflen));		spaced = 0;		if ((edata - rdata) != 5*NS_INT32SZ)			goto formerr;		/* Serial number. */		t = ns_get32(rdata);  rdata += NS_INT32SZ;		T(addstr("\t\t\t\t\t", 5, &buf, &buflen));		len = SPRINTF((tmp, "%lu", t));		T(addstr(tmp, len, &buf, &buflen));		T(spaced = addtab(len, 16, spaced, &buf, &buflen));		T(addstr("; serial\n", 9, &buf, &buflen));		spaced = 0;		/* Refresh interval. */		t = ns_get32(rdata);  rdata += NS_INT32SZ;		T(addstr("\t\t\t\t\t", 5, &buf, &buflen));		T(len = ns_format_ttl(t, buf, buflen));		addlen(len, &buf, &buflen);		T(spaced = addtab(len, 16, spaced, &buf, &buflen));		T(addstr("; refresh\n", 10, &buf, &buflen));		spaced = 0;		/* Retry interval. */		t = ns_get32(rdata);  rdata += NS_INT32SZ;		T(addstr("\t\t\t\t\t", 5, &buf, &buflen));		T(len = ns_format_ttl(t, buf, buflen));		addlen(len, &buf, &buflen);		T(spaced = addtab(len, 16, spaced, &buf, &buflen));		T(addstr("; retry\n", 8, &buf, &buflen));		spaced = 0;		/* Expiry. */		t = ns_get32(rdata);  rdata += NS_INT32SZ;		T(addstr("\t\t\t\t\t", 5, &buf, &buflen));		T(len = ns_format_ttl(t, buf, buflen));		addlen(len, &buf, &buflen);		T(spaced = addtab(len, 16, spaced, &buf, &buflen));		T(addstr("; expiry\n", 9, &buf, &buflen));		spaced = 0;		/* Minimum TTL. */		t = ns_get32(rdata);  rdata += NS_INT32SZ;		T(addstr("\t\t\t\t\t", 5, &buf, &buflen));		T(len = ns_format_ttl(t, buf, buflen));		addlen(len, &buf, &buflen);		T(addstr(" )", 2, &buf, &buflen));		T(spaced = addtab(len, 16, spaced, &buf, &buflen));		T(addstr("; minimum\n", 10, &buf, &buflen));		break;	    }	case ns_t_mx:	case ns_t_afsdb:	case ns_t_rt: {		u_int t;		if (rdlen < (size_t)NS_INT16SZ)			goto formerr;		/* Priority. */		t = ns_get16(rdata);		rdata += NS_INT16SZ;		len = SPRINTF((tmp, "%u ", t));		T(addstr(tmp, len, &buf, &buflen));		/* Target. */		T(addname(msg, msglen, &rdata, origin, &buf, &buflen));		break;	    }	case ns_t_px: {		u_int t;		if (rdlen < (size_t)NS_INT16SZ)			goto formerr;		/* Priority. */		t = ns_get16(rdata);		rdata += NS_INT16SZ;		len = SPRINTF((tmp, "%u ", t));		T(addstr(tmp, len, &buf, &buflen));		/* Name1. */		T(addname(msg, msglen, &rdata, origin, &buf, &buflen));		T(addstr(" ", 1, &buf, &buflen));		/* Name2. */		T(addname(msg, msglen, &rdata, origin, &buf, &buflen));		break;	    }	case ns_t_x25:		T(len = charstr(rdata, edata, &buf, &buflen));		if (len == 0)			goto formerr;		rdata += len;		break;	case ns_t_txt:		while (rdata < edata) {			T(len = charstr(rdata, edata, &buf, &buflen));			if (len == 0)				goto formerr;			rdata += len;			if (rdata < edata)				T(addstr(" ", 1, &buf, &buflen));		}		break;	case ns_t_nsap: {		char t[2+255*3];		(void) inet_nsap_ntoa(rdlen, rdata, t);		T(addstr(t, strlen(t), &buf, &buflen));		break;	    }	case ns_t_aaaa:		if (rdlen != (size_t)NS_IN6ADDRSZ)			goto formerr;		(void) inet_ntop(AF_INET6, rdata, buf, buflen);		addlen(strlen(buf), &buf, &buflen);		break;	case ns_t_loc: {		char t[255];		/* XXX protocol format checking? */		(void) loc_ntoa(rdata, t);		T(addstr(t, strlen(t), &buf, &buflen));		break;	    }	case ns_t_naptr: {		u_int order, preference;		char t[50];		if (rdlen < 2U*NS_INT16SZ)			goto formerr;		/* Order, Precedence. */		order = ns_get16(rdata);	rdata += NS_INT16SZ;		preference = ns_get16(rdata);	rdata += NS_INT16SZ;		len = SPRINTF((t, "%u %u ", order, preference));		T(addstr(t, len, &buf, &buflen));		/* Flags. */		T(len = charstr(rdata, edata, &buf, &buflen));		if (len == 0)			goto formerr;		rdata += len;		T(addstr(" ", 1, &buf, &buflen));		/* Service. */		T(len = charstr(rdata, edata, &buf, &buflen));		if (len == 0)			goto formerr;		rdata += len;		T(addstr(" ", 1, &buf, &buflen));		/* Regexp. */		T(len = charstr(rdata, edata, &buf, &buflen));		if (len < 0)			return (-1);		if (len == 0)			goto formerr;		rdata += len;		T(addstr(" ", 1, &buf, &buflen));		/* Server. */		T(addname(msg, msglen, &rdata, origin, &buf, &buflen));		break;	    }	case ns_t_srv: {		u_int priority, weight, port;		char t[50];		if (rdlen < 3U*NS_INT16SZ)			goto formerr;		/* Priority, Weight, Port. */		priority = ns_get16(rdata);  rdata += NS_INT16SZ;		weight   = ns_get16(rdata);  rdata += NS_INT16SZ;		port     = ns_get16(rdata);  rdata += NS_INT16SZ;		len = SPRINTF((t, "%u %u %u ", priority, weight, port));		T(addstr(t, len, &buf, &buflen));		/* Server. */		T(addname(msg, msglen, &rdata, origin, &buf, &buflen));		break;	    }	case ns_t_minfo:	case ns_t_rp:		/* Name1. */		T(addname(msg, msglen, &rdata, origin, &buf, &buflen));		T(addstr(" ", 1, &buf, &buflen));		/* Name2. */		T(addname(msg, msglen, &rdata, origin, &buf, &buflen));		break;	case ns_t_wks: {		int n, lcnt;		if (rdlen < 1U + NS_INT32SZ)			goto formerr;		/* Address. */		(void) inet_ntop(AF_INET, rdata, buf, buflen);		addlen(strlen(buf), &buf, &buflen);		rdata += NS_INADDRSZ;		/* Protocol. */		len = SPRINTF((tmp, " %u ( ", *rdata));		T(addstr(tmp, len, &buf, &buflen));		rdata += NS_INT8SZ;		/* Bit map. */		n = 0;		lcnt = 0;		while (rdata < edata) {			u_int c = *rdata++;			do {				if (c & 0200) {					if (lcnt == 0) {						T(addstr("\n\t\t\t\t", 5,							 &buf, &buflen));						lcnt = 10;						spaced = 0;					}					len = SPRINTF((tmp, "%d ", n));					T(addstr(tmp, len, &buf, &buflen));					lcnt--;				}				c <<= 1;			} while (++n & 07);		}		T(addstr(")", 1, &buf, &buflen));		break;	    }	case ns_t_key: {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青草av.久久免费一区| 欧美日韩综合一区| 在线精品观看国产| 久久亚洲欧美国产精品乐播| 亚洲国产精品人人做人人爽| 国产经典欧美精品| 日韩欧美综合一区| 亚洲不卡一区二区三区| www.欧美日韩国产在线| 久久久亚洲欧洲日产国码αv| 丝袜美腿亚洲综合| 在线免费一区三区| 亚洲美女免费在线| 成人中文字幕电影| 久久精品网站免费观看| 麻豆成人在线观看| 日韩视频一区二区在线观看| 亚洲专区一二三| 在线精品视频一区二区三四| 中文字幕人成不卡一区| 成人午夜av影视| 国产农村妇女精品| 成人一区在线观看| 2023国产精品| 国产美女久久久久| 久久久亚洲午夜电影| 麻豆国产91在线播放| 精品免费一区二区三区| 久久99这里只有精品| 精品免费视频一区二区| 久久国产婷婷国产香蕉| 欧美成人官网二区| 狠狠色狠狠色合久久伊人| 久久嫩草精品久久久精品一| 国产成人福利片| 久久精品一区蜜桃臀影院| 懂色一区二区三区免费观看| 国产精品水嫩水嫩| 99精品视频中文字幕| 国产精品久久久久桃色tv| 99久久婷婷国产综合精品| 18成人在线观看| 91美女片黄在线| 一区二区三区精密机械公司| 在线观看日韩高清av| 亚洲成人激情自拍| 欧美一区二区三区精品| 日日摸夜夜添夜夜添国产精品| 欧美日韩一区二区三区在线看| 亚洲成人免费视频| 欧美大片在线观看一区二区| 国产91在线看| 亚洲综合激情小说| 日韩精品一区二区三区视频播放| 国模一区二区三区白浆| 亚洲欧洲精品一区二区三区| 欧美日韩在线三级| 国产在线一区观看| 亚洲视频免费在线| 日韩欧美一级二级三级| eeuss鲁片一区二区三区在线观看| 中文字幕在线一区二区三区| 欧美精选在线播放| 国产精品综合久久| 亚洲国产视频网站| 久久久精品国产免大香伊 | 中文字幕中文乱码欧美一区二区| 97精品国产露脸对白| 香蕉久久一区二区不卡无毒影院 | 老司机精品视频在线| 欧美激情一区二区三区在线| 91小视频免费观看| 日韩在线一区二区| 1024国产精品| 久久综合丝袜日本网| 欧美在线你懂得| 国产91在线|亚洲| 麻豆国产欧美日韩综合精品二区| 亚洲欧美另类图片小说| 久久久综合视频| 91精品久久久久久蜜臀| 色94色欧美sute亚洲线路二| 欧美aaa在线| 亚洲国产乱码最新视频 | 中文欧美字幕免费| 欧美疯狂性受xxxxx喷水图片| 高清不卡在线观看av| 日韩va亚洲va欧美va久久| 亚洲精品五月天| 国产女主播一区| 久久综合色天天久久综合图片| 欧美日韩精品欧美日韩精品一综合| 精品亚洲成a人在线观看| 亚洲一二三四区| 亚洲美女视频在线| 成人欧美一区二区三区黑人麻豆| 久久综合久色欧美综合狠狠| 日韩视频免费观看高清完整版在线观看 | 麻豆精品一区二区av白丝在线| 亚洲视频电影在线| 国产精品欧美久久久久一区二区 | 国产一区二区久久| 秋霞电影网一区二区| 亚洲国产欧美一区二区三区丁香婷| 国产精品福利一区| 国产精品国产馆在线真实露脸| 欧美精品一区二区久久婷婷| 欧美成人精品3d动漫h| 欧美绝品在线观看成人午夜影视| 欧美视频精品在线| 欧美系列日韩一区| 欧美色成人综合| 欧美性猛片aaaaaaa做受| 91国产精品成人| 日本韩国一区二区| 色偷偷久久人人79超碰人人澡| www.欧美亚洲| 成a人片亚洲日本久久| 成人免费不卡视频| a美女胸又www黄视频久久| 91一区二区三区在线观看| 91麻豆国产福利在线观看| 成人久久视频在线观看| zzijzzij亚洲日本少妇熟睡| 91小视频在线观看| 欧美无砖专区一中文字| 91精品免费在线| 精品国产乱码久久久久久老虎| 精品国产乱子伦一区| 国产午夜三级一区二区三| 国产精品午夜免费| 亚洲最新视频在线观看| 激情综合色综合久久| 国精产品一区一区三区mba视频| 国产一区二区三区免费| 不卡大黄网站免费看| 色爱区综合激月婷婷| 91精品中文字幕一区二区三区| 精品剧情v国产在线观看在线| 欧美极品aⅴ影院| 亚洲最色的网站| 久久99精品国产麻豆婷婷| 成人教育av在线| 国产不卡高清在线观看视频| 亚洲精品视频免费看| 天天综合天天综合色| 国产精品自产自拍| 色婷婷精品久久二区二区蜜臂av| 3d动漫精品啪啪一区二区竹菊| 欧美成人a在线| 亚洲精品久久久蜜桃| 老司机一区二区| 色综合久久88色综合天天免费| 欧美日韩精品专区| 国产欧美视频在线观看| 一区二区三区久久| 国产一区二区精品久久99| 一本到不卡免费一区二区| 欧美www视频| 一区二区视频免费在线观看| 黄一区二区三区| 在线观看不卡视频| 欧美电视剧免费观看| 一区二区三区av电影| 国产精品一区在线观看你懂的| 在线观看欧美日本| 日本一二三不卡| 久久精品国产精品亚洲红杏| 国产精品123| 日韩美女一区二区三区四区| 亚洲综合一二三区| 国产成人欧美日韩在线电影| 91 com成人网| 一区二区三区精密机械公司| 成人理论电影网| 26uuu精品一区二区三区四区在线| 亚洲午夜激情网站| av网站免费线看精品| 久久夜色精品国产欧美乱极品| 午夜欧美电影在线观看| 99精品久久久久久| 国产视频一区二区三区在线观看| 五月天欧美精品| 91在线视频观看| 亚洲国产成人私人影院tom| 九色综合国产一区二区三区| 777色狠狠一区二区三区| 亚洲自拍欧美精品| 欧美视频精品在线观看| 亚洲免费观看高清| 色视频一区二区| 亚洲欧美经典视频| 色婷婷综合久久久久中文一区二区 | 青娱乐精品视频| 欧美军同video69gay| 亚洲国产aⅴ天堂久久| 欧美日韩在线综合| 日韩一区精品字幕| 91精品国产一区二区三区蜜臀| 亚洲第一福利一区|