diff options
| author | Paul Traina <pst@FreeBSD.org> | 1994-09-25 02:12:49 +0000 | 
|---|---|---|
| committer | Paul Traina <pst@FreeBSD.org> | 1994-09-25 02:12:49 +0000 | 
| commit | 1363f04ce1b83359b8e4f3fbde56a6ebcee57209 (patch) | |
| tree | a71412a79b4754c5fb0d8868e5fb690fde4a7fbb /include/resolv.h | |
| parent | 08a0aca6e27cc8a1324334e065844f12e3a904d7 (diff) | |
Notes
Diffstat (limited to 'include/resolv.h')
| -rw-r--r-- | include/resolv.h | 158 | 
1 files changed, 109 insertions, 49 deletions
diff --git a/include/resolv.h b/include/resolv.h index cf8fe761989c..c903a20e58cf 100644 --- a/include/resolv.h +++ b/include/resolv.h @@ -30,8 +30,6 @@   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF   * SUCH DAMAGE.   * - *	@(#)resolv.h	8.1 (Berkeley) 6/2/93 - *	$Id: resolv.h,v 4.9.1.2 1993/05/17 09:59:01 vixie Exp $   * -   * Portions Copyright (c) 1993 by Digital Equipment Corporation.   *  @@ -52,12 +50,30 @@   * SOFTWARE.   * -   * --Copyright-- + * + *	@(#)resolv.h	8.1 (Berkeley) 6/2/93 + *	From Id: resolv.h,v 4.9.1.2 1993/05/17 09:59:01 vixie Exp + *	$Id$   */  #ifndef _RESOLV_H_  #define	_RESOLV_H_ +#include <sys/param.h>  #include <sys/types.h> +#include <sys/cdefs.h> +#include <stdio.h> + +/* + * revision information.  this is the release date in YYYYMMDD format. + * it can change every day so the right thing to do with it is use it + * in preprocessor commands such as "#if (__RES > 19931104)".  do not + * compare for equality; rather, use it to determine whether your resolver + * is new enough to contain a certain feature. + */ + +#define	__RES	19940415 +  /*   * Resolver configuration file.   * Normally not present, but may contain the address of the @@ -65,7 +81,7 @@   */  #ifndef _PATH_RESCONF -#define _PATH_RESCONF        "/etc/resolv.conf" +#define	_PATH_RESCONF        "/etc/resolv.conf"  #endif  /* @@ -77,88 +93,132 @@  #define	LOCALDOMAINPARTS	2	/* min levels in name that is "local" */  #define	RES_TIMEOUT		5	/* min. seconds between retries */ +#define	MAXRESOLVSORT		10	/* number of net to sort on */ +#define	RES_MAXNDOTS		15	/* should reflect bit field size */  struct __res_state {  	int	retrans;	 	/* retransmition time interval */  	int	retry;			/* number of times to retransmit */ -	long	options;		/* option flags - see below. */ +	u_long	options;		/* option flags - see below. */  	int	nscount;		/* number of name servers */ -	struct	sockaddr_in nsaddr_list[MAXNS];	/* address of name server */ +	struct sockaddr_in +		nsaddr_list[MAXNS];	/* address of name server */  #define	nsaddr	nsaddr_list[0]		/* for backward compatibility */  	u_short	id;			/* current packet id */  	char	*dnsrch[MAXDNSRCH+1];	/* components of domain to search */  	char	defdname[MAXDNAME];	/* default domain */ -	long	pfcode;			/* RES_PRF_ flags - see below. */ +	u_long	pfcode;			/* RES_PRF_ flags - see below. */ +	unsigned ndots:4;		/* threshold for initial abs. query */ +	unsigned nsort:4;		/* number of elements in sort_list[] */ +	char	unused[3]; +	struct { +		struct in_addr	addr; +		u_int32_t	mask; +	} sort_list[MAXRESOLVSORT];  };  /*   * Resolver options (keep these in synch with res_debug.c, please)   */ -#define RES_INIT	0x0001		/* address initialized */ -#define RES_DEBUG	0x0002		/* print debug messages */ -#define RES_AAONLY	0x0004		/* authoritative answers only */ -#define RES_USEVC	0x0008		/* use virtual circuit */ -#define RES_PRIMARY	0x0010		/* query primary server only */ -#define RES_IGNTC	0x0020		/* ignore trucation errors */ -#define RES_RECURSE	0x0040		/* recursion desired */ -#define RES_DEFNAMES	0x0080		/* use default domain name */ -#define RES_STAYOPEN	0x0100		/* Keep TCP socket open */ -#define RES_DNSRCH	0x0200		/* search up local domain tree */ - -#define RES_DEFAULT	(RES_RECURSE | RES_DEFNAMES | RES_DNSRCH) +#define	RES_INIT	0x00000001	/* address initialized */ +#define	RES_DEBUG	0x00000002	/* print debug messages */ +#define	RES_AAONLY	0x00000004	/* authoritative answers only */ +#define	RES_USEVC	0x00000008	/* use virtual circuit */ +#define	RES_PRIMARY	0x00000010	/* query primary server only */ +#define	RES_IGNTC	0x00000020	/* ignore trucation errors */ +#define	RES_RECURSE	0x00000040	/* recursion desired */ +#define	RES_DEFNAMES	0x00000080	/* use default domain name */ +#define	RES_STAYOPEN	0x00000100	/* Keep TCP socket open */ +#define	RES_DNSRCH	0x00000200	/* search up local domain tree */ +#define	RES_INSECURE1	0x00000400	/* type 1 security disabled */ +#define	RES_INSECURE2	0x00000800	/* type 2 security disabled */ + +#define	RES_DEFAULT	(RES_RECURSE | RES_DEFNAMES | RES_DNSRCH)  /*   * Resolver "pfcode" values.  Used by dig.   */ -#define RES_PRF_STATS	0x0001 -/*			0x0002	*/ -#define RES_PRF_CLASS   0x0004 -#define RES_PRF_CMD	0x0008 -#define RES_PRF_QUES	0x0010 -#define RES_PRF_ANS	0x0020 -#define RES_PRF_AUTH	0x0040 -#define RES_PRF_ADD	0x0080 -#define RES_PRF_HEAD1	0x0100 -#define RES_PRF_HEAD2	0x0200 -#define RES_PRF_TTLID	0x0400 -#define RES_PRF_HEADX	0x0800 -#define RES_PRF_QUERY	0x1000 -#define RES_PRF_REPLY	0x2000 -#define RES_PRF_INIT    0x4000 -/*			0x8000	*/ +#define	RES_PRF_STATS	0x00000001 +/*			0x00000002	*/ +#define	RES_PRF_CLASS   0x00000004 +#define	RES_PRF_CMD	0x00000008 +#define	RES_PRF_QUES	0x00000010 +#define	RES_PRF_ANS	0x00000020 +#define	RES_PRF_AUTH	0x00000040 +#define	RES_PRF_ADD	0x00000080 +#define	RES_PRF_HEAD1	0x00000100 +#define	RES_PRF_HEAD2	0x00000200 +#define	RES_PRF_TTLID	0x00000400 +#define	RES_PRF_HEADX	0x00000800 +#define	RES_PRF_QUERY	0x00001000 +#define	RES_PRF_REPLY	0x00002000 +#define	RES_PRF_INIT    0x00004000 +/*			0x00008000	*/ -#include <sys/cdefs.h> -#include <stdio.h> +/* hooks are still experimental as of 4.9.2 */ +typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } +	res_sendhookact; + +typedef res_sendhookact (*res_send_qhook)__P((struct sockaddr_in * const *ns, +					      const u_char **query, +					      int *querylen, +					      u_char *ans, +					      int anssiz, +					      int *resplen)); + +typedef res_sendhookact (*res_send_rhook)__P((const struct sockaddr_in *ns, +					      const u_char *query, +					      int querylen, +					      u_char *ans, +					      int anssiz, +					      int *resplen));  extern struct __res_state _res;  /* Private routines shared between libc/net, named, nslookup and others. */  #define	dn_skipname	__dn_skipname  #define	fp_query	__fp_query +#define	fp_nquery	__fp_nquery  #define	hostalias	__hostalias  #define	putlong		__putlong  #define	putshort	__putshort -#define p_class		__p_class -#define p_time		__p_time -#define p_type		__p_type +#define	p_class		__p_class +#define	p_time		__p_time +#define	p_type		__p_type +#define	p_cdnname	__p_cdnname +#define	p_cdname	__p_cdname +#define	p_fqname	__p_fqname +#define	p_rr		__p_rr +#define	p_option	__p_option +  __BEGIN_DECLS  int	 __dn_skipname __P((const u_char *, const u_char *));  void	 __fp_resstat __P((struct __res_state *, FILE *)); -void	 __fp_query __P((char *, FILE *)); +void	 __fp_query __P((const u_char *, FILE *)); +void	 __fp_nquery __P((const u_char *, int, FILE *));  char	*__hostalias __P((const char *));  void	 __putlong __P((u_int32_t, u_char *)); -void	 __putshort __P((u_short, u_char *)); -char	*__p_class __P((int)); +void	 __putshort __P((u_int16_t, u_char *));  char	*__p_time __P((u_int32_t)); -char	*__p_type __P((int)); - -int	 dn_comp __P((const u_char *, u_char *, int, u_char **, u_char **)); +void	 __p_query __P((const u_char *)); +const u_char *__p_cdnname __P((const u_char *, const u_char *, int, FILE *)); +const u_char *__p_cdname __P((const u_char *, const u_char *, FILE *)); +const u_char *__p_fqname __P((const u_char *, const u_char *, FILE *)); +const u_char *__p_rr __P((const u_char *, const u_char *, FILE *)); +const char *__p_type __P((int)); +const char *__p_class __P((int)); +const char *__p_option __P((u_long option)); +int	 dn_comp __P((const char *, u_char *, int, u_char **, u_char **));  int	 dn_expand __P((const u_char *, const u_char *, const u_char *, -			u_char *, int)); +			char *, int));  int	 res_init __P((void)); -int	 res_mkquery __P((int, const char *, int, int, const char *, int, -			  const char *, char *, int)); -int	 res_send __P((const char *, int, char *, int)); +int	 res_query __P((const char *, int, int, u_char *, int)); +int	 res_search __P((const char *, int, int, u_char *, int)); +int	 res_querydomain __P((const char *, const char *, int, int, +			      u_char *, int)); +int	 res_mkquery __P((int, const char *, int, int, const u_char *, int, +			  const u_char *, u_char *, int)); +int	 res_send __P((const u_char *, int, u_char *, int));  __END_DECLS  #endif /* !_RESOLV_H_ */  | 
