1/* $NetBSD$ */ 2 3/* 4 * Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC") 5 * 6 * Permission to use, copy, modify, and/or distribute this software for any 7 * purpose with or without fee is hereby granted, provided that the above 8 * copyright notice and this permission notice appear in all copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 11 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 12 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 13 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 14 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 15 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16 * PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19/* 20 * @(#)res.h 5.10 (Berkeley) 6/1/90 21 * Id: res.h,v 1.3 2009/03/03 23:49:07 tbox Exp 22 */ 23 24/* 25 ******************************************************************************* 26 * 27 * res.h -- 28 * 29 * Definitions used by modules of the name server lookup program. 30 * 31 * Copyright (c) 1985 32 * Andrew Cherenson 33 * U.C. Berkeley 34 * CS298-26 Fall 1985 35 * 36 ******************************************************************************* 37 */ 38 39#define TRUE 1 40#define FALSE 0 41typedef int Boolean; 42 43#define MAXALIASES 35 44#define MAXADDRS 35 45#define MAXDOMAINS 35 46#define MAXSERVERS 10 47 48/* 49 * Define return statuses in addtion to the ones defined in namserv.h 50 * let SUCCESS be a synonym for NOERROR 51 * 52 * TIME_OUT - a socket connection timed out. 53 * NO_INFO - the server didn't find any info about the host. 54 * ERROR - one of the following types of errors: 55 * dn_expand, res_mkquery failed 56 * bad command line, socket operation failed, etc. 57 * NONAUTH - the server didn't have the desired info but 58 * returned the name(s) of some servers who should. 59 * NO_RESPONSE - the server didn't respond. 60 * 61 */ 62 63#ifdef ERROR 64#undef ERROR 65#endif 66 67#define SUCCESS 0 68#define TIME_OUT -1 69#define NO_INFO -2 70#define ERROR -3 71#define NONAUTH -4 72#define NO_RESPONSE -5 73 74/* 75 * Define additional options for the resolver state structure. 76 * 77 * RES_DEBUG2 more verbose debug level 78 */ 79 80#define RES_DEBUG2 0x00400000 81 82/* 83 * Maximum length of server, host and file names. 84 */ 85 86#define NAME_LEN 256 87 88 89/* 90 * Modified struct hostent from <netdb.h> 91 * 92 * "Structures returned by network data base library. All addresses 93 * are supplied in host order, and returned in network order (suitable 94 * for use in system calls)." 95 */ 96 97typedef struct { 98 int addrType; 99 int addrLen; 100 char *addr; 101} AddrInfo; 102 103typedef struct { 104 char *name; /* official name of host */ 105 char **domains; /* domains it serves */ 106 AddrInfo **addrList; /* list of addresses from name server */ 107} ServerInfo; 108 109typedef struct { 110 char *name; /* official name of host */ 111 char **aliases; /* alias list */ 112 AddrInfo **addrList; /* list of addresses from name server */ 113 ServerInfo **servers; 114} HostInfo; 115 116/* 117 * External routines: 118 */ 119 120extern int pickString(const char *, char *, size_t); 121extern int matchString(const char *, const char *); 122extern int StringToType(char *, int, FILE *); 123extern int StringToClass(char *, int, FILE *); 124 125