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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gethnmadr.c

?? minix操作系統(tǒng)最新版本(3.1.1)的源代碼
?? C
字號(hào):
/* * Copyright (c) 1985, 1988 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that: (1) source distributions retain this entire copyright * notice and comment, and (2) distributions including binaries display * the following acknowledgement:  ``This product includes software * developed by the University of California, Berkeley and its contributors'' * in the documentation or other materials provided with the distribution * and in all advertising materials mentioning features or use of this * software. Neither the name of the University nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */#if defined(LIBC_SCCS) && !defined(lint)static char sccsid[] = "@(#)gethostnamadr.c	6.41 (Berkeley) 6/1/90";#endif /* LIBC_SCCS and not lint */#ifdef _MINIX#include <sys/types.h>#include <ctype.h>#include <errno.h>#include <stdio.h>#include <string.h>#include <net/hton.h>#include <net/gen/nameser.h>#include <net/gen/netdb.h>#include <net/gen/in.h>#include <net/gen/inet.h>#include <net/gen/resolv.h>#include <net/gen/socket.h>#else#include <sys/param.h>#include <sys/socket.h>#include <netinet/in.h>#include <ctype.h>#include <netdb.h>#include <stdio.h>#include <errno.h>#include <arpa/inet.h>#include <arpa/nameser.h>#include <resolv.h>#endif /* AMOEABA */#define	MAXALIASES	35#define	MAXADDRS	35static char *h_addr_ptrs[MAXADDRS + 1];#ifdef _MINIXstruct in_addr{	ipaddr_t s_addr;};union querybuf;extern int dn_skipname _ARGS(( const u_char *comp_dn, const u_char *eom ));#define getshort _getshortstatic struct hostent *getanswer _ARGS(( union querybuf *answer, int anslen, 	int iquery ));#define bcmp memcmp#define bcopy(s, d, l) memcpy(d, s, l)#endif /* _MINIX */static struct hostent host;static char *host_aliases[MAXALIASES];static char hostbuf[BUFSIZ+1];static struct in_addr host_addr;#ifndef _MINIXchar *strpbrk();#endif /* !_MINIX */#if PACKETSZ > 1024#define	MAXPACKET	PACKETSZ#else#define	MAXPACKET	1024#endiftypedef union querybuf{	dns_hdr_t hdr;	u_char buf[MAXPACKET];} querybuf_t;typedef union align {    long al;    char ac;} align_t;static struct hostent *getanswer(answer, anslen, iquery)	querybuf_t *answer;	int anslen;	int iquery;{	register dns_hdr_t *hp;	register u_char *cp;	register int n;	u_char *eom;	char *bp, **ap;	int type, class, buflen, ancount, qdcount;	int haveanswer, getclass = C_ANY;	char **hap;	eom = answer->buf + anslen;	/*	 * find first satisfactory answer	 */	hp = &answer->hdr;	ancount = ntohs(hp->dh_ancount);	qdcount = ntohs(hp->dh_qdcount);	bp = hostbuf;	buflen = sizeof(hostbuf);	cp = answer->buf + sizeof(dns_hdr_t);	if (qdcount) {		if (iquery) {			if ((n = dn_expand((u_char *)answer->buf, eom,			     cp, (u_char *)bp, buflen)) < 0) {				h_errno = NO_RECOVERY;				return ((struct hostent *) NULL);			}			cp += n + QFIXEDSZ;			host.h_name = bp;			n = strlen(bp) + 1;			bp += n;			buflen -= n;		} else			cp += dn_skipname(cp, eom) + QFIXEDSZ;		while (--qdcount > 0)			cp += dn_skipname(cp, eom) + QFIXEDSZ;	} else if (iquery) {		if (hp->dh_flag1 & DHF_AA)			h_errno = HOST_NOT_FOUND;		else			h_errno = TRY_AGAIN;		return ((struct hostent *) NULL);	}	ap = host_aliases;	*ap = NULL;	host.h_aliases = host_aliases;	hap = h_addr_ptrs;	*hap = NULL;#if BSD >= 43 || defined(h_addr)	/* new-style hostent structure */	host.h_addr_list = h_addr_ptrs;#endif	haveanswer = 0;	while (--ancount >= 0 && cp < eom) {		if ((n = dn_expand((u_char *)answer->buf, eom, cp, (u_char *)bp,			buflen)) < 0)			break;		cp += n;		type = getshort(cp); 		cp += sizeof(u_short);		class = getshort(cp); 		cp += sizeof(u_short) + sizeof(u_long);		n = getshort(cp);		cp += sizeof(u_short);		if (type == T_CNAME) {			cp += n;			if (ap >= &host_aliases[MAXALIASES-1])				continue;			*ap++ = bp;			n = strlen(bp) + 1;			bp += n;			buflen -= n;			continue;		}		if (iquery && type == T_PTR) {			if ((n = dn_expand((u8_t *)answer->buf, eom,			    cp, (u8_t *)bp, buflen)) < 0) {				cp += n;				continue;			}			cp += n;			host.h_name = bp;			return(&host);		}		if (iquery || type != T_A)  {#ifdef DEBUG			if (_res.options & RES_DEBUG)				printf("unexpected answer type %d, size %d\n",					type, n);#endif			cp += n;			continue;		}		if (haveanswer) {			if (n != host.h_length) {				cp += n;				continue;			}			if (class != getclass) {				cp += n;				continue;			}		} else {			host.h_length = n;			getclass = class;			host.h_addrtype = (class == C_IN) ? AF_INET : AF_UNSPEC;			if (!iquery) {				host.h_name = bp;				bp += strlen(bp) + 1;			}		}		bp += (size_t)(sizeof(align_t) - 						((u_long)bp % sizeof(align_t)));		if (bp + n >= &hostbuf[sizeof(hostbuf)]) {#ifdef DEBUG			if (_res.options & RES_DEBUG)				printf("size (%d) too big\n", n);#endif			break;		}		bcopy(cp, *hap++ = bp, n);		bp +=n;		cp += n;		haveanswer++;	}	if (haveanswer) {		*ap = NULL;#if BSD >= 43 || defined(h_addr)	/* new-style hostent structure */		*hap = NULL;#else		host.h_addr = h_addr_ptrs[0];#endif		return (&host);	} else {		h_errno = TRY_AGAIN;		return ((struct hostent *) NULL);	}}struct hostent *gethostbyname(name)	_CONST char *name;{	querybuf_t buf;	register _CONST char *cp;	int n;	/*	 * disallow names consisting only of digits/dots, unless	 * they end in a dot.	 */	if (isdigit(name[0]))		for (cp = name;; ++cp) {			if (!*cp) {				if (*--cp == '.')					break;				/*				 * All-numeric, no dot at the end.				 * Fake up a hostent as if we'd actually				 * done a lookup.  What if someone types				 * 255.255.255.255?  The test below will				 * succeed spuriously... ???				 */				if ((host_addr.s_addr = inet_addr(name)) == -1) {					h_errno = HOST_NOT_FOUND;					return((struct hostent *) NULL);				}				host.h_name = (char *) name;				host.h_aliases = host_aliases;				host_aliases[0] = NULL;				host.h_addrtype = AF_INET;				host.h_length = sizeof(u_long);				h_addr_ptrs[0] = (char *)&host_addr;				h_addr_ptrs[1] = (char *)0;#if BSD >= 43 || defined(h_addr)	/* new-style hostent structure */				host.h_addr_list = h_addr_ptrs;#else				host.h_addr = h_addr_ptrs[0];#endif				return (&host);			}			if (!isdigit(*cp) && *cp != '.') 				break;		}	if ((n = res_search((char*)name, C_IN, T_A, buf.buf, sizeof(buf))) < 0) {#ifdef DEBUG		if (_res.options & RES_DEBUG)			printf("res_search failed\n");#endif		return ((struct hostent *) NULL);	}	return (getanswer(&buf, n, 0));}struct hostent *gethostbyaddr(addr, len, type)	const char *addr;	int len, type;{	int n;	querybuf_t buf;	register struct hostent *hp;	char qbuf[MAXDNAME];		if (type != AF_INET)		return ((struct hostent *) NULL);	(void)sprintf(qbuf, "%u.%u.%u.%u.in-addr.arpa",		((unsigned)addr[3] & 0xff),		((unsigned)addr[2] & 0xff),		((unsigned)addr[1] & 0xff),		((unsigned)addr[0] & 0xff));	n = res_query(qbuf, C_IN, T_PTR, (u8_t *)&buf, sizeof(buf));	if (n < 0) {#ifdef DEBUG		if (_res.options & RES_DEBUG)			printf("res_query failed\n");#endif		return ((struct hostent *) NULL);	}	hp = getanswer(&buf, n, 1);	if (hp == NULL)		return ((struct hostent *) NULL);	hp->h_addrtype = type;	hp->h_length = len;	h_addr_ptrs[0] = (char *)&host_addr;	h_addr_ptrs[1] = (char *)0;	host_addr = *(struct in_addr *)addr;#if BSD < 43 && !defined(h_addr)	/* new-style hostent structure */	hp->h_addr = h_addr_ptrs[0];#endif	return(hp);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级视频免费观看在线| 午夜精品久久久久久不卡8050| 蜜桃精品视频在线观看| 日韩一二三区不卡| 狠狠色2019综合网| 久久久久国色av免费看影院| 豆国产96在线|亚洲| 自拍偷拍国产亚洲| 在线观看日韩国产| 免费的成人av| 国产欧美精品一区二区色综合朱莉| 国产成人在线影院 | 午夜私人影院久久久久| 欧美日本国产视频| 蜜臀av性久久久久av蜜臀妖精| 精品国产一区久久| www.亚洲激情.com| 亚洲成人在线观看视频| 日韩欧美国产一区二区在线播放 | 处破女av一区二区| 亚洲精品免费在线播放| 欧美美女一区二区| 国产一区二区三区高清播放| 国产精品女主播av| 欧美日韩在线精品一区二区三区激情| 亚洲18影院在线观看| 欧美第一区第二区| 成人免费三级在线| 午夜视频一区二区| 久久久久久亚洲综合影院红桃| 亚洲精品欧美激情| 精品久久久久久无| 91在线视频官网| 人人超碰91尤物精品国产| 国产婷婷一区二区| 欧美优质美女网站| 久久99久久99精品免视看婷婷| 亚洲色图视频免费播放| 制服.丝袜.亚洲.另类.中文| 7777精品伊人久久久大香线蕉| 国产成人综合自拍| 日韩精品1区2区3区| 18成人在线视频| 欧美精品一区二区三区在线播放 | 欧美挠脚心视频网站| 国产成人免费av在线| 日韩成人免费看| 一区在线观看免费| 国产亚洲制服色| 欧美一级搡bbbb搡bbbb| 欧美性猛片aaaaaaa做受| 成人免费视频视频| 国产大陆亚洲精品国产| 日本欧美一区二区| 亚洲精品乱码久久久久久日本蜜臀| 久久午夜免费电影| 欧美一区二区三区免费在线看| 色综合久久88色综合天天免费| 国产一区二区按摩在线观看| 日韩不卡免费视频| 亚洲一区自拍偷拍| 91免费在线播放| 国产一区二区三区四区五区美女| 亚洲18色成人| 亚洲在线成人精品| 亚洲日本中文字幕区| 日本一区二区久久| 亚洲国产岛国毛片在线| 久久综合久久鬼色| 日韩欧美久久一区| 日韩精品一区二区三区视频播放| 欧美日韩国产精选| 欧美日韩国产美| 69堂国产成人免费视频| 欧美一区三区二区| 欧美一区二区在线不卡| 7777精品伊人久久久大香线蕉的| 欧美日韩国产小视频| 在线免费精品视频| 欧美日韩你懂得| 欧美色男人天堂| 欧美三级电影网站| 欧美日本一区二区三区四区 | 91精品婷婷国产综合久久性色| 91久久精品日日躁夜夜躁欧美| 色婷婷精品久久二区二区蜜臀av| 91麻豆swag| 欧美视频精品在线观看| 在线播放国产精品二区一二区四区 | 成年人网站91| 成人黄色电影在线| 91成人国产精品| 欧美一区欧美二区| 久久精品亚洲一区二区三区浴池| 国产欧美日产一区| 国产精品色呦呦| 亚洲另类春色国产| 婷婷夜色潮精品综合在线| 男男gaygay亚洲| 国模娜娜一区二区三区| 丁香桃色午夜亚洲一区二区三区| 成人午夜电影久久影院| 97久久精品人人澡人人爽| 欧美影院午夜播放| 337p日本欧洲亚洲大胆色噜噜| 久久伊人蜜桃av一区二区| 国产精品久久久久9999吃药| 亚洲1区2区3区视频| 6080日韩午夜伦伦午夜伦| 精品国一区二区三区| 中文一区一区三区高中清不卡| 亚洲男人的天堂av| 美女一区二区久久| 国产成人精品亚洲777人妖| 色综合亚洲欧洲| 日韩欧美视频在线 | 中文字幕乱码亚洲精品一区| 亚洲精品中文在线观看| 蜜臂av日日欢夜夜爽一区| 成熟亚洲日本毛茸茸凸凹| 欧美日韩黄色影视| 国产视频在线观看一区二区三区| 亚洲美女视频在线| 麻豆久久久久久久| 一本大道av伊人久久综合| 日韩免费电影一区| 国产精品高潮呻吟久久| 六月丁香婷婷久久| 一本一道久久a久久精品 | 久久婷婷久久一区二区三区| 亚洲精品写真福利| 国产美女精品人人做人人爽| 欧美三级电影一区| 日韩美女视频19| 精品无人码麻豆乱码1区2区 | 精东粉嫩av免费一区二区三区| 不卡在线视频中文字幕| 欧美一区二区美女| 亚洲日本成人在线观看| 国模大尺度一区二区三区| 欧美日韩国产综合草草| 中文字幕一区二区三区av| 久久66热re国产| 69堂国产成人免费视频| 一区二区三区色| 99麻豆久久久国产精品免费| 久久老女人爱爱| 男女男精品视频| 欧美日本一区二区三区四区| 一区二区三区自拍| 成人av一区二区三区| 国产亚洲成av人在线观看导航 | 国产三级欧美三级| 欧美96一区二区免费视频| 欧美视频自拍偷拍| 亚洲在线视频一区| 91久久一区二区| 中文字幕一区二区三区av| 国产成人精品亚洲午夜麻豆| 久久影院视频免费| 国产一区二区三区在线观看免费 | 欧美丰满高潮xxxx喷水动漫| 亚洲人成在线播放网站岛国| 高清国产一区二区三区| 精品国产亚洲一区二区三区在线观看| 日韩国产精品久久久| 欧美亚男人的天堂| 亚洲午夜激情av| 欧美色图片你懂的| 亚洲一二三级电影| 欧洲一区在线电影| 五月天网站亚洲| 777xxx欧美| 老司机免费视频一区二区| 欧美一卡二卡在线观看| 首页国产欧美日韩丝袜| 欧美一区二区视频网站| 免费观看久久久4p| 精品国产伦一区二区三区观看方式 | 精品国产91洋老外米糕| 蜜桃一区二区三区四区| 精品国产乱码久久久久久夜甘婷婷| 久久99国产精品久久99果冻传媒| 日韩丝袜情趣美女图片| 国产精一区二区三区| 国产精品久久夜| 色婷婷香蕉在线一区二区| 亚洲h动漫在线| 日韩欧美中文字幕精品| 国产福利一区二区三区| 国产精品电影一区二区| 欧美性猛交xxxxxxxx| 日本sm残虐另类| 国产欧美日本一区视频| 91九色02白丝porn| 另类人妖一区二区av| 国产欧美日韩视频在线观看| 91国偷自产一区二区三区成为亚洲经典| 亚洲欧美日韩国产中文在线| 在线播放中文一区|