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

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

?? gen_nw.c

?? package of develop dns
?? C
字號:
/* * 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. */#if !defined(LINT) && !defined(CODECENTER)static const char rcsid[] = "$Id: gen_nw.c,v 1.1.206.2 2004/03/17 01:49:40 marka Exp $";#endif/* Imports */#include "port_before.h"#include <sys/types.h>#include <netinet/in.h>#include <arpa/nameser.h>#include <errno.h>#include <resolv.h>#include <stdlib.h>#include <string.h>#include <isc/memcluster.h>#include <irs.h>#include "port_after.h"#include "irs_p.h"#include "gen_p.h"/* Types */struct pvt {	struct irs_rule *	rules;	struct irs_rule *	rule;	struct __res_state *	res;	void 			(*free_res)(void *);};/* Forward */static void		nw_close(struct irs_nw*);static struct nwent *	nw_next(struct irs_nw *);static struct nwent *	nw_byname(struct irs_nw *, const char *, int);static struct nwent *	nw_byaddr(struct irs_nw *, void *, int, int);static void    		nw_rewind(struct irs_nw *);static void		nw_minimize(struct irs_nw *);static struct __res_state * nw_res_get(struct irs_nw *this);static void		nw_res_set(struct irs_nw *this,				   struct __res_state *res,				   void (*free_res)(void *));static int		init(struct irs_nw *this);/* Public */struct irs_nw *irs_gen_nw(struct irs_acc *this) {	struct gen_p *accpvt = (struct gen_p *)this->private;	struct irs_nw *nw;	struct pvt *pvt;	if (!(pvt = memget(sizeof *pvt))) {		errno = ENOMEM;		return (NULL);	}	memset(pvt, 0, sizeof *pvt);	if (!(nw = memget(sizeof *nw))) {		memput(pvt, sizeof *pvt);		errno = ENOMEM;		return (NULL);	}	memset(nw, 0x5e, sizeof *nw);	pvt->rules = accpvt->map_rules[irs_nw];	pvt->rule = pvt->rules;	nw->private = pvt;	nw->close = nw_close;	nw->next = nw_next;	nw->byname = nw_byname;	nw->byaddr = nw_byaddr;	nw->rewind = nw_rewind;	nw->minimize = nw_minimize;	nw->res_get = nw_res_get;	nw->res_set = nw_res_set;	return (nw);}/* Methods */static voidnw_close(struct irs_nw *this) {	struct pvt *pvt = (struct pvt *)this->private;	nw_minimize(this);	if (pvt->res && pvt->free_res)		(*pvt->free_res)(pvt->res);	memput(pvt, sizeof *pvt);	memput(this, sizeof *this);}static struct nwent *nw_next(struct irs_nw *this) {	struct pvt *pvt = (struct pvt *)this->private;	struct nwent *rval;	struct irs_nw *nw;	if (init(this) == -1)		return(NULL);	while (pvt->rule) {		nw = pvt->rule->inst->nw;		rval = (*nw->next)(nw);		if (rval)			return (rval);		if (!(pvt->rules->flags & IRS_CONTINUE))			break;		pvt->rule = pvt->rule->next;		if (pvt->rule) {			nw = pvt->rule->inst->nw;			(*nw->rewind)(nw);		}	}	return (NULL);}static struct nwent *nw_byname(struct irs_nw *this, const char *name, int type) {	struct pvt *pvt = (struct pvt *)this->private;	struct irs_rule *rule;	struct nwent *rval;	struct irs_nw *nw;		if (init(this) == -1)		return(NULL);	for (rule = pvt->rules; rule; rule = rule->next) {		nw = rule->inst->nw;		RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);		rval = (*nw->byname)(nw, name, type);		if (rval != NULL)			return (rval);		if (pvt->res->res_h_errno != TRY_AGAIN &&		    !(rule->flags & IRS_CONTINUE))			break;	}	return (NULL);}static struct nwent *nw_byaddr(struct irs_nw *this, void *net, int length, int type) {	struct pvt *pvt = (struct pvt *)this->private;	struct irs_rule *rule;	struct nwent *rval;	struct irs_nw *nw;		if (init(this) == -1)		return(NULL);	for (rule = pvt->rules; rule; rule = rule->next) {		nw = rule->inst->nw;		RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL);		rval = (*nw->byaddr)(nw, net, length, type);		if (rval != NULL)			return (rval);		if (pvt->res->res_h_errno != TRY_AGAIN &&		    !(rule->flags & IRS_CONTINUE))			break;	}	return (NULL);}static voidnw_rewind(struct irs_nw *this) {	struct pvt *pvt = (struct pvt *)this->private;	struct irs_nw *nw;	pvt->rule = pvt->rules;	if (pvt->rule) {		nw = pvt->rule->inst->nw;		(*nw->rewind)(nw);	}}static voidnw_minimize(struct irs_nw *this) {	struct pvt *pvt = (struct pvt *)this->private;	struct irs_rule *rule;	if (pvt->res)		res_nclose(pvt->res);	for (rule = pvt->rules; rule != NULL; rule = rule->next) {		struct irs_nw *nw = rule->inst->nw;		(*nw->minimize)(nw);	}}static struct __res_state *nw_res_get(struct irs_nw *this) {	struct pvt *pvt = (struct pvt *)this->private;	if (!pvt->res) {		struct __res_state *res;		res = (struct __res_state *)malloc(sizeof *res);		if (!res) {			errno = ENOMEM;			return (NULL);		}		memset(res, 0, sizeof *res);		nw_res_set(this, res, free);	}	return (pvt->res);}static voidnw_res_set(struct irs_nw *this, struct __res_state *res,		void (*free_res)(void *)) {	struct pvt *pvt = (struct pvt *)this->private;	struct irs_rule *rule;	if (pvt->res && pvt->free_res) {		res_nclose(pvt->res);		(*pvt->free_res)(pvt->res);	}	pvt->res = res;	pvt->free_res = free_res;	for (rule = pvt->rules; rule != NULL; rule = rule->next) {		struct irs_nw *nw = rule->inst->nw;		(*nw->res_set)(nw, pvt->res, NULL);	}}static intinit(struct irs_nw *this) {	struct pvt *pvt = (struct pvt *)this->private;		if (!pvt->res && !nw_res_get(this))		return (-1);	if (((pvt->res->options & RES_INIT) == 0U) &&	    res_ninit(pvt->res) == -1)		return (-1);	return (0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产不卡视频一区| 国产欧美一区二区精品性| 久久综合色综合88| 亚洲精品高清视频在线观看| 久久国产精品99精品国产| 色综合久久66| 国产精品丝袜在线| 精品亚洲免费视频| 欧洲av一区二区嗯嗯嗯啊| 国产精品欧美一区喷水| 精品一二线国产| 91精品国产91久久久久久一区二区| 椎名由奈av一区二区三区| 国产一区二区精品久久| 日韩一区二区三区电影在线观看 | 亚洲电影欧美电影有声小说| 久久综合综合久久综合| 91.xcao| 亚洲6080在线| 欧美日韩中文字幕一区二区| 亚洲精品欧美激情| 99re热视频这里只精品| 中文字幕日韩av资源站| 粉嫩13p一区二区三区| 久久九九影视网| 国产成人在线观看| 国产午夜精品一区二区三区嫩草| 韩国视频一区二区| 欧美mv日韩mv亚洲| 久久99久国产精品黄毛片色诱| 欧美绝品在线观看成人午夜影视| 一区二区三区欧美视频| 欧美影视一区在线| 无码av免费一区二区三区试看| 欧美日韩一区成人| 午夜视黄欧洲亚洲| 欧美一区2区视频在线观看| 美日韩黄色大片| 久久亚区不卡日本| 成人在线一区二区三区| 中文字幕在线观看一区二区| 91影院在线免费观看| 亚洲欧美精品午睡沙发| 在线精品国精品国产尤物884a| 亚洲高清在线精品| 日韩三级免费观看| 粉嫩蜜臀av国产精品网站| 国产精品天天摸av网| 色丁香久综合在线久综合在线观看| 亚洲午夜在线电影| 日韩美女主播在线视频一区二区三区| 精品一区二区在线视频| 国产日韩精品视频一区| 91久久香蕉国产日韩欧美9色| 亚洲国产成人va在线观看天堂| 欧美日韩三级一区| 韩国一区二区在线观看| 亚洲色图欧美偷拍| 欧美精品少妇一区二区三区| 极品少妇xxxx精品少妇偷拍| 日韩毛片精品高清免费| 欧美日韩精品二区第二页| 国产麻豆91精品| 一区二区三区日本| 久久嫩草精品久久久精品| 91美女蜜桃在线| 免费不卡在线观看| 亚洲色图视频免费播放| 欧美成人精品福利| 色婷婷综合久久久中文一区二区 | 亚洲欧美偷拍三级| 日韩三级视频在线观看| 成人美女在线视频| 免费成人av资源网| 亚洲欧美激情插| 国产亚洲一区字幕| 国产精品不卡一区二区三区| 欧美日韩国产美| 91亚洲精品久久久蜜桃| 精品一区二区三区在线观看| 一级做a爱片久久| 亚洲国产岛国毛片在线| 日韩精品一区二区三区蜜臀| 日本丰满少妇一区二区三区| 国产99一区视频免费| 欧美96一区二区免费视频| 一区二区三区在线观看国产 | 日韩西西人体444www| 色综合久久88色综合天天6| 国产一区二区三区不卡在线观看| 亚洲视频免费看| 国产精品区一区二区三区| 欧美xxxxx牲另类人与| 欧美麻豆精品久久久久久| 色天使色偷偷av一区二区 | 日本女优在线视频一区二区| 亚洲精品乱码久久久久久| 亚洲国产电影在线观看| 精品国产凹凸成av人导航| 欧美精品丝袜中出| 欧美精品在线视频| 欧美日韩一区二区三区免费看| 成人app软件下载大全免费| 国产风韵犹存在线视精品| 国产在线精品视频| 激情六月婷婷久久| 国产一区久久久| 精品一区二区三区久久| 国产一区二区三区四区五区美女 | 午夜精品久久久久久久蜜桃app| 国产精品久久久久久久久快鸭| 国产丝袜美腿一区二区三区| 精品成人一区二区| 久久久精品蜜桃| 欧美激情综合五月色丁香| 国产精品视频在线看| 中文字幕不卡三区| 成人欧美一区二区三区在线播放| 国产精品色一区二区三区| 国产精品久久久久久久岛一牛影视 | 99精品国产99久久久久久白柏| 国产成a人亚洲精品| 成人黄色在线视频| av电影在线观看一区| 色中色一区二区| 欧美日韩日本视频| 欧美日韩美女一区二区| 日韩亚洲欧美在线观看| 欧美精品一区二区三区在线播放| 国产日韩亚洲欧美综合| 国产精品久久影院| 亚洲综合图片区| 免费亚洲电影在线| 国产一区二区导航在线播放| 丁香激情综合国产| 在线欧美小视频| 欧美一区二区三区爱爱| 国产日韩欧美精品电影三级在线| 亚洲人一二三区| 日本在线播放一区二区三区| 国产精品系列在线播放| 一本一道久久a久久精品| 亚洲婷婷在线视频| 五月婷婷欧美视频| 国产成人午夜99999| 色就色 综合激情| 亚洲精品一区二区三区福利| 亚洲天堂精品视频| 另类人妖一区二区av| 床上的激情91.| 欧美久久久影院| 欧美激情综合五月色丁香小说| 亚洲二区在线视频| 国产精品456露脸| 欧美日韩二区三区| 国产欧美精品一区| 视频一区欧美精品| 不卡av在线网| 欧美成人三级电影在线| 亚洲制服丝袜在线| 国产成人精品免费视频网站| 欧美日韩在线综合| 国产精品久久久久一区| 久久99国产精品麻豆| 欧美亚洲国产怡红院影院| 欧美精品一区在线观看| 天堂av在线一区| 91丨porny丨蝌蚪视频| 精品久久人人做人人爽| 亚洲一区二区精品久久av| 成年人午夜久久久| 精品国产乱码久久久久久久久 | 国产99精品视频| 91精品国产综合久久久久久久| 亚洲欧美另类图片小说| 国产盗摄视频一区二区三区| 日韩欧美色综合网站| 亚洲国产精品综合小说图片区| av成人老司机| 国产欧美日韩三级| 国内精品视频一区二区三区八戒| 欧美精品乱码久久久久久 | 欧美日韩国产一二三| 玉米视频成人免费看| 99久久亚洲一区二区三区青草| 国产网站一区二区三区| 国产一区二区中文字幕| 精品国产一区二区三区不卡| 日韩电影一二三区| 在线综合+亚洲+欧美中文字幕| 亚洲一区二区欧美激情| 欧美色手机在线观看| 亚洲一区在线看| 欧美私模裸体表演在线观看| 亚洲欧美韩国综合色| 欧美中文一区二区三区| 亚洲成人av免费| 欧美电影一区二区| 日韩av电影免费观看高清完整版| 91精品国产欧美一区二区|