亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产午夜亚洲精品不卡| 精品国产区一区| 成人福利视频网站| 狠狠色综合播放一区二区| 日韩精品高清不卡| 蜜臀久久久久久久| 麻豆成人久久精品二区三区红| 五月天国产精品| 日产欧产美韩系列久久99| 天使萌一区二区三区免费观看| 亚洲成人免费av| 久久精品国产99| 成人精品在线视频观看| 91久久香蕉国产日韩欧美9色| 色综合久久综合网欧美综合网| 欧美午夜不卡视频| 日韩一区二区三区观看| 国产日韩v精品一区二区| 国产精品久久久久久亚洲毛片| 亚洲人妖av一区二区| 亚洲成精国产精品女| 美女国产一区二区| av在线免费不卡| 欧美福利电影网| 国产欧美一二三区| 亚洲精品一二三四区| 日本特黄久久久高潮| 成人动漫中文字幕| 欧美久久婷婷综合色| 2020国产精品| 亚洲国产另类av| 国产精品自拍毛片| 欧洲视频一区二区| 国产午夜精品在线观看| 亚洲图片欧美一区| 国产成人高清在线| 4438x亚洲最大成人网| 国产视频一区二区三区在线观看 | 日韩影院免费视频| 国产精品88av| 制服视频三区第一页精品| 国产精品久久一卡二卡| 精品中文字幕一区二区| 欧美日韩一区在线观看| 国产日韩欧美激情| 奇米一区二区三区av| 91在线视频观看| 国产欧美日韩在线视频| 午夜欧美视频在线观看 | 亚洲国产日韩av| 成人美女视频在线观看| www国产精品av| 日韩av高清在线观看| 色婷婷av一区二区三区软件| 国产视频911| 精久久久久久久久久久| 欧美一区二区三区在线观看视频 | 亚洲一区二区三区四区五区黄 | 欧美激情一区二区在线| 美国欧美日韩国产在线播放| 欧美性一二三区| 一区二区三区四区av| jlzzjlzz国产精品久久| 国产精品人妖ts系列视频| 国产一区视频导航| 2014亚洲片线观看视频免费| 日韩国产在线观看| 欧美一级淫片007| 青草av.久久免费一区| 91精品国产日韩91久久久久久| 亚洲第一久久影院| 欧美夫妻性生活| 美日韩一区二区三区| 日韩三级精品电影久久久| 日本va欧美va精品| 欧美一区二区三区在线观看视频 | 欧美最新大片在线看| 一区二区三区四区亚洲| 在线视频欧美精品| 午夜精品免费在线| 欧美一区二区黄色| 久久99国产精品尤物| 国产三级精品视频| 成人免费va视频| 一区二区三区免费看视频| 欧美性色综合网| 蜜臀av一级做a爰片久久| 26uuu精品一区二区三区四区在线| 韩国女主播成人在线| 久久久久久久国产精品影院| 9色porny自拍视频一区二区| 亚洲人被黑人高潮完整版| 欧美三级视频在线| 狠狠色丁香久久婷婷综合丁香| 久久久久久久久蜜桃| eeuss影院一区二区三区| 一区二区欧美国产| 精品国产麻豆免费人成网站| 不卡av在线网| 青青青伊人色综合久久| 亚洲精品在线免费播放| av午夜精品一区二区三区| 天天综合网天天综合色| 国产日产欧产精品推荐色| 欧美性极品少妇| 国产真实乱对白精彩久久| 亚洲欧洲韩国日本视频| 日韩三级.com| 91成人网在线| 国产一区二区伦理片| 亚洲福利一区二区三区| 久久久久久电影| 欧美美女激情18p| 成人国产精品免费观看动漫| 亚洲3atv精品一区二区三区| 亚洲国产成人自拍| 欧美一卡二卡在线| 色94色欧美sute亚洲线路一久| 免费成人在线影院| 亚洲午夜影视影院在线观看| 久久精品夜色噜噜亚洲aⅴ| 欧美日韩免费观看一区三区| 国产91在线观看| 丝袜美腿亚洲综合| 亚洲乱码国产乱码精品精小说 | 中文字幕av一区二区三区免费看 | 精品一区二区免费看| 亚洲美女视频在线观看| 国产嫩草影院久久久久| 欧美一区二区三区在线观看视频| 色吧成人激情小说| 成人精品亚洲人成在线| 国产裸体歌舞团一区二区| 蜜臀av性久久久久蜜臀aⅴ| 一个色妞综合视频在线观看| 中文字幕精品一区二区精品绿巨人| 欧美一级在线免费| 91精品一区二区三区久久久久久| 一本色道久久综合亚洲91 | 午夜精品久久久久久| 亚洲色图另类专区| 国产精品毛片高清在线完整版 | 白白色 亚洲乱淫| 国产激情一区二区三区桃花岛亚洲| 蜜芽一区二区三区| 老司机免费视频一区二区| 日本不卡一区二区三区高清视频| 亚洲国产成人av网| 亚洲第一电影网| 天使萌一区二区三区免费观看| 亚洲国产精品久久久久婷婷884| 一区二区三区四区中文字幕| 亚洲一二三四区| 亚洲电影一级片| 青草av.久久免费一区| 久久黄色级2电影| 国产成人99久久亚洲综合精品| 国产一本一道久久香蕉| 韩国三级在线一区| 国产91丝袜在线18| 99精品欧美一区二区三区小说 | av资源网一区| 在线视频欧美精品| 91麻豆精品91久久久久久清纯| 日韩欧美一区二区在线视频| 精品国产乱码久久久久久久| 久久影音资源网| 中文字幕一区二区三区四区 | 日本成人在线电影网| 美女视频黄频大全不卡视频在线播放| 免费av网站大全久久| 国产精品亚洲专一区二区三区| 粉嫩一区二区三区性色av| 97se亚洲国产综合在线| 欧美手机在线视频| 精品福利av导航| 亚洲欧洲成人自拍| 天堂影院一区二区| 高清日韩电视剧大全免费| 91激情在线视频| 精品国产乱码久久久久久久| 国产精品福利av| 日韩电影在线看| 成人app在线| 日韩欧美国产1| 亚洲美女少妇撒尿| 国模一区二区三区白浆| 一本久久a久久免费精品不卡| 欧美xxx久久| 亚洲在线视频免费观看| 国产精品66部| 欧美精品xxxxbbbb| 日韩一区欧美一区| 黄色小说综合网站| 91福利在线观看| 国产精品女主播av| 蜜臀av一区二区三区| 欧美性一二三区| 亚洲人成网站色在线观看| 国产精品一区一区三区|