diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/inc/sockets/resolv.h | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to 'private/inc/sockets/resolv.h')
-rw-r--r-- | private/inc/sockets/resolv.h | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/private/inc/sockets/resolv.h b/private/inc/sockets/resolv.h new file mode 100644 index 000000000..5edc854c4 --- /dev/null +++ b/private/inc/sockets/resolv.h @@ -0,0 +1,156 @@ +/****************************************************************** + * + * SpiderTCP BIND + * + * Copyright 1990 Spider Systems Limited + * + * RESOLV.H + * + ******************************************************************/ + +/* + * /usr/projects/tcp/SCCS.rel3/rel/src/include/0/s.resolv.h + * @(#)resolv.h 5.3 + * + * Last delta created 14:05:35 3/4/91 + * This file extracted 11:19:25 3/8/91 + * + * Modifications: + * + * GSS 20 Jul 90 New File + */ + +/* + * Copyright (c) 1983, 1987, 1989 The 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. + * + * @(#)resolv.h 5.10 (Berkeley) 6/1/90 + */ + +#ifndef _RESOLV_INCLUDED +#define _RESOLV_INCLUDED + +/* + * Global defines and variables for resolver stub. + */ +#define MAXNS 8 /* max # name servers we'll track per list */ +#define MAXNSLIST 4 /* max # name servers lists we'll track */ +#define MAXDFLSRCH 3 /* # default domain levels to try */ +#define MAXDNSRCH 6 /* max # domains in search path */ +#define LOCALDOMAINPARTS 2 /* min levels in name that is "local" */ +#define RES_TIMEOUT 5 /* min. seconds between retries */ + +typedef struct _ADDR_LIST { + u_long ServerCount; + u_long Servers[MAXNS]; + +} ADDR_LIST, FAR * LPADDR_LIST; + +struct state { + long options; /* option flags - see below. */ + int retrans; /* retransmition time interval */ + u_short retry; /* number of times to retransmit */ + u_short id; /* current packet id */ + ADDR_LIST nslist[MAXNSLIST]; /* the server lists */ + char defdname[MAXDNAME]; /* default domain */ + char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */ +}; + +/* + * Resolver options + */ +#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) + + +// +// Resolver function prototypes +// + +int +dn_expand( + IN unsigned char *msg, + IN unsigned char *eomorig, + IN unsigned char *comp_dn, + OUT unsigned char *exp_dn, + IN int length + ); + +int +dn_comp( + IN unsigned char *exp_dn, + OUT unsigned char *comp_dn, + IN int length, + IN unsigned char **dnptrs, OPTIONAL + IN OUT unsigned char **lastdnptr OPTIONAL + ); + +int +res_init( + void + ); + +int +res_send( + IN char *buf, + IN int buflen, + OUT char *answer, + IN int anslen + ); + +int +res_query( + IN char *name, /* domain name */ + IN int class, /* class of query */ + IN int type, /* type of query */ + OUT unsigned char *answer, /* buffer to put answer */ + IN int anslen /* size of answer buffer */ + ); + +int +res_search( + IN char *name, /* domain name */ + IN int class, /* class of query */ + IN int type, /* type of query */ + OUT unsigned char *answer, /* buffer to put answer */ + IN int anslen /* size of answer */ + ); + +int +res_mkquery( + IN int op, // opcode of query + IN char *dname, // domain name + IN int class, // class of query + IN int type, // type of query + IN char *data, OPTIONAL // resource record data + IN int datalen, OPTIONAL // length of data + IN struct rrec *newrr, OPTIONAL // new rr for modify or append + OUT char *buf, // buffer to put query + IN int buflen // size of buffer + ); + +#endif // _RESOLV_INCLUDED |