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

📄 res.h

📁 一个可用的dns服务器源代码
💻 H
字号:
/* * ++Copyright++ 1985, 1989 * - * Copyright (c) 1985, 1989 *    The Regents of the University of California.  All rights reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: * 	This product includes software developed by the University of * 	California, Berkeley and its contributors. * 4. 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 BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Portions Copyright (c) 1993 by Digital Equipment Corporation. *  * 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, and that * the name of Digital Equipment Corporation not be used in advertising or * publicity pertaining to distribution of the document or software without * specific, written prior permission. *  * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT * CORPORATION 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. * - * --Copyright-- *//* *	@(#)res.h	5.10 (Berkeley) 6/1/90 *	$Id: res.h,v 8.3 1996/12/02 09:17:24 vixie Exp $ *//* ******************************************************************************* * *  res.h -- * *	Definitions used by modules of the name server lookup program. * *	Copyright (c) 1985 *	Andrew Cherenson *	U.C. Berkeley *	CS298-26  Fall 1985 *  ******************************************************************************* */#ifndef _RES_H_#define _RES_H_#ifdef WINNT#include <winsock.h>#include "portability.h"#include <stdio.h>#endif#define TRUE	1#define FALSE	0typedef int Boolean;#define MAXALIASES	35#define MAXADDRS	35#define MAXDOMAINS	35#define MAXSERVERS	10/* *  Define return statuses in addtion to the ones defined in namserv.h *   let SUCCESS be a synonym for NOERROR * *	TIME_OUT	- a socket connection timed out. *	NO_INFO		- the server didn't find any info about the host. *	ERROR		- one of the following types of errors: *			   dn_expand, res_mkquery failed *			   bad command line, socket operation failed, etc. *	NONAUTH		- the server didn't have the desired info but *			  returned the name(s) of some servers who should. *	NO_RESPONSE	- the server didn't respond. * */#define  SUCCESS		0#define  TIME_OUT		-1#define  NO_INFO		-2#ifdef WINNT#ifdef ERROR#undef ERROR#endif#endif#define  ERROR			-3#define  NONAUTH		-4#define  NO_RESPONSE		-5/* *  Define additional options for the resolver state structure. * *   RES_DEBUG2		more verbose debug level */#define RES_DEBUG2	0x80000000/* *  Maximum length of server, host and file names. */#define NAME_LEN 256/* * Modified struct hostent from <netdb.h> * * "Structures returned by network data base library.  All addresses * are supplied in host order, and returned in network order (suitable * for use in system calls)." */typedef struct	{	char	*name;		/* official name of host */	char	**domains;	/* domains it serves */	char	**addrList;	/* list of addresses from name server */} ServerInfo;typedef struct	{	char	*name;		/* official name of host */	char	**aliases;	/* alias list */	char	**addrList;	/* list of addresses from name server */	int	addrType;	/* host address type */	int	addrLen;	/* length of address */	ServerInfo **servers;} HostInfo;/* *  FilePtr is used for directing listings to a file. *  It is global so the Control-C handler can close it. */extern FILE *filePtr;#ifdef GUIextern FILE *outputfile;#endif/* * TCP/UDP port of server. */extern unsigned short nsport;/* *  External routines: */extern Boolean IsAddr();extern void  Print_query();extern unsigned char *Print_cdname();extern unsigned char *Print_cdname2();	/* fixed width */extern unsigned char *Print_rr();extern const char *DecodeType();	/* descriptive version of p_type */extern const char *DecodeError();extern char *Calloc();extern char *Malloc();extern void NsError();extern void PrintServer();extern void PrintHostInfo();extern void ShowOptions();extern void FreeHostInfoPtr();#ifndef WINNTextern FILE *OpenFile();#endifextern char *res_skip();#ifdef WINNT  /*   * subr.c definitions*/    FILE * AppOpenFile(char *string, char *file);  int StringToType(char *type, int dflt, FILE *errorfile);  int StringToClass(char *class, int dflt, FILE *errorfile);  /** getinfo.c definitions   */    static int GetAnswer(struct in_addr *nsAddrPtr, int queryType, char *msg, int msglen,                       Boolean iquery, register HostInfo *hostPtr, Boolean isServer);  int GetHostInfoByName(struct in_addr	*nsAddrPtr, int queryClass, int queryType,                        char *name, HostInfo *hostPtr, Boolean isServer);  int GetHostInfoByAddr(struct in_addr *nsAddrPtr, struct in_addr	*address, HostInfo *hostPtr);    /*   * send.c definitions   */    int SendRequest(struct in_addr	*nsAddrPtr, char *buf, int buflen,  	            char *answer, u_int anslen, int *trueLenPtr);      /* lgk new definitions */  extern int SetDefaultServer();  extern int Finger();  extern void ViewList();  extern void ListHosts();  extern void ListHostsByType();  extern int SetOption();  extern int LookupHost();  extern int LookupHostWithServer();  extern int yylex();#endif WINNT#endif /* _RES_H_ */

⌨️ 快捷键说明

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