Changeset 1994
- Timestamp:
- Jun 5, 2005, 9:25:47 AM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/emx/include/resolv.h
-
Property cvs2svn:cvs-rev
changed from
1.6
to1.7
r1993 r1994 1 1 /* resolv.h,v 1.5 2004/09/14 22:27:35 bird Exp */ 2 2 /** @file 3 * BSD 4 * @changed EM: For EMX by hv 1994,1996 3 * FreeBSD 5.3 5 4 * @changed bird: For IGCC. 6 5 */ 7 /* 8 * Copyright (c) 1983, 1987, 1989 The Regents of the University of California.9 * All rights reserved.6 /*- 7 * Copyright (c) 1983, 1987, 1989, 1993 8 * The Regents of the University of California. All rights reserved. 10 9 * 11 10 * Redistribution and use in source and binary forms, with or without … … 36 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 37 36 * SUCH DAMAGE. 37 */ 38 39 /* 40 * Portions Copyright (c) 1996 by Internet Software Consortium. 38 41 * 39 * from: @(#)resolv.h 5.15 (Berkeley) 4/3/91 40 * resolv.h,v 1.5 2004/09/14 22:27:35 bird Exp 42 * Permission to use, copy, modify, and distribute this software for any 43 * purpose with or without fee is hereby granted, provided that the above 44 * copyright notice and this permission notice appear in all copies. 45 * 46 * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS 47 * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES 48 * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE 49 * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 50 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 51 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 52 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 53 * SOFTWARE. 54 */ 55 56 /* 57 * @(#)resolv.h 8.1 (Berkeley) 6/2/93 58 * From Id: resolv.h,v 8.12 1998/04/28 19:36:46 halley Exp $ 59 * $FreeBSD: src/include/resolv.h,v 1.25 2004/03/15 17:08:28 des Exp $ 41 60 */ 42 61 43 62 #ifndef _RESOLV_H_ 44 63 #define _RESOLV_H_ 45 46 47 #if defined (__cplusplus)48 extern "C" {49 #endif50 64 51 65 /* toolkit includes a bunch of headers */ 52 66 #ifndef TCPV40HDRS 53 67 #include <sys/param.h> 54 #include <types.h> 68 #include <types.h> /* bird - IBM header fancies this one */ 69 #include <sys/types.h> 55 70 #include <sys/cdefs.h> 71 #include <sys/socket.h> 56 72 #include <stdio.h> 57 73 #ifdef __USE_LIBC_TCPIP 74 #include <netinet/in.h> /* for the struct __res_state */ 75 #endif 58 76 59 77 /* … … 65 83 */ 66 84 67 #define __RES1996080185 #define __RES 19960801 68 86 69 87 /* … … 83 101 #define MAXNS 3 /* max # name servers we'll track */ 84 102 #define MAXDFLSRCH 3 /* # default domain levels to try */ 85 #define LOCALDOMAINPARTS 2 /* min levels in name that is "local" */86 #define RES_TIMEOUT 4 /* min. seconds between retries */87 103 #ifdef TCPV40HDRS 88 104 #define MAXDNSRCH 3 /* max # domains in search path */ 89 105 #else 90 106 #define MAXDNSRCH 6 /* max # domains in search path */ 107 #endif 108 #define LOCALDOMAINPARTS 2 /* min levels in name that is "local" */ 109 110 #ifdef __USE_LIBC_TCPIP 111 #define RES_TIMEOUT 5 /* min. seconds between retries */ 112 #else 113 #define RES_TIMEOUT 4 /* min. seconds between retries */ 114 #endif 115 #ifndef TCPV40HDRS 91 116 #define MAXRESOLVSORT 10 /* number of net to sort on */ 92 117 #define RES_MAXNDOTS 15 /* should reflect bit field size */ 93 118 #endif 94 95 96 #ifdef TCPV40HDRS 119 #ifdef __USE_LIBC_TCPIP 120 #define RES_MAXRETRANS 30 /* only for resolv.conf/RES_OPTIONS */ 121 #define RES_MAXRETRY 5 /* only for resolv.conf/RES_OPTIONS */ 122 #endif 123 124 #ifndef TCPV40HDRS 125 126 #pragma pack(4) 127 struct __res_state { 128 int retrans; /* retransmition time interval */ 129 int retry; /* number of times to retransmit */ 130 u_long options; /* option flags - see below. */ 131 int nscount; /* number of name servers */ 132 struct sockaddr_in 133 nsaddr_list[MAXNS]; /* address of name server */ 134 #define nsaddr nsaddr_list[0] /* for backward compatibility */ 135 u_short id; /* current message id */ 136 char defdname[256]; /* default domain (deprecated) */ 137 char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */ 138 u_long pfcode; /* RES_PRF_ flags - see below. */ 139 unsigned ndots:4; /* threshold for initial abs. query */ 140 unsigned nsort:4; /* number of elements in sort_list[] */ 141 char unused[3]; 142 struct { 143 struct in_addr addr; 144 u_int32_t mask; 145 } sort_list[MAXRESOLVSORT]; 146 char pad[72]; /* on an i386 this means 512b total */ 147 }; 148 #pragma pack() 149 150 #if 0 /* OS/2 doesn't implement INET6, yet :-) */ 151 /* for INET6 */ 152 /* 153 * replacement of __res_state, separated to keep binary compatibility. 154 */ 155 struct __res_state_ext { 156 struct sockaddr_storage nsaddr_list[MAXNS]; 157 struct { 158 int af; /* address family for addr, mask */ 159 union { 160 struct in_addr ina; 161 struct in6_addr in6a; 162 } addr, mask; 163 } sort_list[MAXRESOLVSORT]; 164 }; 165 #endif /* Not implemented */ 166 167 #else /* TCPV40HDRS */ 97 168 98 169 #pragma pack(4) … … 104 175 struct sockaddr_in nsaddr_list[MAXNS]; /* address of name server */ 105 176 #define nsaddr nsaddr_list[0] /* for backward compatibility */ 106 u_short id; /* current pack etid */177 u_short id; /* current package id */ 107 178 char defdname[MAXDNAME]; /* default domain */ 108 179 char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */ … … 110 181 #pragma pack() 111 182 112 #else 113 114 #pragma pack(4) 115 struct __res_state { 116 int retrans; /* retransmition time interval */ 117 int retry; /* number of times to retransmit */ 118 u_long options; /* option flags - see below. */ 119 int nscount; /* number of name servers */ 120 struct sockaddr_in 121 nsaddr_list[MAXNS]; /* address of name server */ 122 #define nsaddr nsaddr_list[0] /* for backward compatibility */ 123 u_short id; /* current message id */ 124 char defdname[256]; /* default domain (deprecated) */ 125 char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */ 126 u_long pfcode; /* RES_PRF_ flags - see below. */ 127 unsigned ndots:4; /* threshold for initial abs. query */ 128 unsigned nsort:4; /* number of elements in sort_list[] */ 129 char unused[3]; 130 struct { 131 struct in_addr addr; 132 u_int32_t mask; 133 } sort_list[MAXRESOLVSORT]; 134 char pad[72]; /* on an i386 this means 512b total */ 135 }; 136 #pragma pack() 137 138 #endif 139 140 /* 141 * Resolver options 142 */ 143 #define RES_INIT 0x0001 /* address initialized */ 144 #define RES_DEBUG 0x0002 /* print debug messages */ 145 #define RES_AAONLY 0x0004 /* authoritative answers only */ 146 #define RES_USEVC 0x0008 /* use virtual circuit */ 147 #define RES_PRIMARY 0x0010 /* query primary server only */ 148 #define RES_IGNTC 0x0020 /* ignore trucation errors */ 149 #define RES_RECURSE 0x0040 /* recursion desired */ 150 #define RES_DEFNAMES 0x0080 /* use default domain name */ 151 #define RES_STAYOPEN 0x0100 /* Keep TCP socket open */ 152 #define RES_DNSRCH 0x0200 /* search up local domain tree */ 153 #ifndef TCPV40HDRS 183 #endif 184 185 /* 186 * Resolver options (keep these in synch with res_debug.c, please) 187 */ 188 #define RES_INIT 0x00000001 /* address initialized */ 189 #define RES_DEBUG 0x00000002 /* print debug messages */ 190 #define RES_AAONLY 0x00000004 /* authoritative answers only (!IMPL)*/ 191 #define RES_USEVC 0x00000008 /* use virtual circuit */ 192 #define RES_PRIMARY 0x00000010 /* query primary server only (!IMPL) */ 193 #define RES_IGNTC 0x00000020 /* ignore truncation errors */ 194 #define RES_RECURSE 0x00000040 /* recursion desired */ 195 #define RES_DEFNAMES 0x00000080 /* use default domain name */ 196 #define RES_STAYOPEN 0x00000100 /* Keep TCP socket open */ 197 #define RES_DNSRCH 0x00000200 /* search up local domain tree */ 198 #if !defined(TCPV40HDRS) 154 199 #define RES_INSECURE1 0x00000400 /* type 1 security disabled */ 155 200 #define RES_INSECURE2 0x00000800 /* type 2 security disabled */ 156 201 #define RES_NOALIASES 0x00001000 /* shuts off HOSTALIASES feature */ 157 202 #define RES_USE_INET6 0x00002000 /* use/map IPv6 in gethostbyname() */ 158 #endif 203 #endif /* !TCPV40HDRS */ 204 /** @todo #define RES_USE_EDNS0 0x40000000*/ /* use EDNS0 */ 159 205 160 206 #define RES_DEFAULT (RES_RECURSE | RES_DEFNAMES | RES_DNSRCH) 161 207 162 163 164 #ifdef TCPV40HDRS 165 166 extern struct state _res; 167 168 #else /* !TCPV40HDRS: */ 169 208 #ifndef TCPV40HDRS 170 209 /* 171 210 * Resolver "pfcode" values. Used by dig. 172 211 */ 173 #define RES_PRF_STATS 174 /* 0x00000002*/212 #define RES_PRF_STATS 0x00000001 213 /** @todo #define RES_PRF_UPDATE 0x00000002*/ 175 214 #define RES_PRF_CLASS 0x00000004 176 #define RES_PRF_CMD 177 #define RES_PRF_QUES 178 #define RES_PRF_ANS 179 #define RES_PRF_AUTH 180 #define RES_PRF_ADD 181 #define RES_PRF_HEAD1 182 #define RES_PRF_HEAD2 183 #define RES_PRF_TTLID 184 #define RES_PRF_HEADX 185 #define RES_PRF_QUERY 186 #define RES_PRF_REPLY 215 #define RES_PRF_CMD 0x00000008 216 #define RES_PRF_QUES 0x00000010 217 #define RES_PRF_ANS 0x00000020 218 #define RES_PRF_AUTH 0x00000040 219 #define RES_PRF_ADD 0x00000080 220 #define RES_PRF_HEAD1 0x00000100 221 #define RES_PRF_HEAD2 0x00000200 222 #define RES_PRF_TTLID 0x00000400 223 #define RES_PRF_HEADX 0x00000800 224 #define RES_PRF_QUERY 0x00001000 225 #define RES_PRF_REPLY 0x00002000 187 226 #define RES_PRF_INIT 0x00004000 188 227 /* 0x00008000 */ 189 228 190 /* hooks are still experimental as of 4.9.2 */191 229 typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } 192 230 res_sendhookact; 193 231 194 232 typedef res_sendhookact (* TCPCALL res_send_qhook)(struct sockaddr_in * const *ns, 195 196 197 198 199 233 const u_char **query, 234 int *querylen, 235 u_char *ans, 236 int anssiz, 237 int *resplen); 200 238 201 239 typedef res_sendhookact (* TCPCALL res_send_rhook)(const struct sockaddr_in *ns, 202 203 204 205 206 207 208 #pragma pack(4) 240 const u_char *query, 241 int querylen, 242 u_char *ans, 243 int anssiz, 244 int *resplen); 245 246 #pragma pack(4) /* not necessary */ 209 247 struct res_sym { 210 211 212 248 int number; /* Identifying number, like T_MX */ 249 char * name; /* Its symbolic name, like "MX" */ 250 char * humanname; /* Its fun name, like "mail exchanger" */ 213 251 }; 214 252 #pragma pack() 215 253 254 __BEGIN_DECLS 216 255 extern struct __res_state _ress[2]; 256 #define _res (_ress[0]) 257 /** @todo threaded stuff.... */ 258 __END_DECLS 259 217 260 extern const struct res_sym __p_class_syms[]; 218 261 extern const struct res_sym __p_type_syms[]; 219 #define _res (_ress[0])220 262 221 263 /* Private routines shared between libc/net, named, nslookup and others. */ … … 231 273 #define loc_ntoa __loc_ntoa 232 274 #define loc_aton __loc_aton 275 #define fp_resstat __fp_resstat 276 #define p_query __p_query 233 277 #define dn_skipname __dn_skipname 234 #define fp_resstat __fp_resstat 278 /* duplicate in FreeBSD 5.3 */ 235 279 #define fp_query __fp_query 236 280 #define fp_nquery __fp_nquery … … 241 285 #define p_time __p_time 242 286 #define p_type __p_type 243 #define p_query __p_query 287 /* duplicate in FreeBSD 5.3 */ 244 288 #define p_cdnname __p_cdnname 289 /*#define p_section __p_section*/ 245 290 #define p_cdname __p_cdname 246 291 #define p_fqnname __p_fqnname 247 292 #define p_fqname __p_fqname 248 #define p_rr __p_rr249 293 #define p_option __p_option 250 294 #define p_secstodate __p_secstodate … … 263 307 #define res_queriesmatch __res_queriesmatch 264 308 #define res_close __res_close 265 309 /*#define res_opt __res_opt 310 #define res_mkupdate __res_mkupdate 311 #define res_mkupdrec __res_mkupdrec 312 #define res_freeupdrec __res_freeupdrec 313 */ 314 315 /* not in FreeBSD 5.3 header */ 316 #define p_rr __p_rr 317 318 319 __BEGIN_DECLS 266 320 int TCPCALL res_hnok(const char *); 267 321 int TCPCALL res_ownok(const char *); … … 289 343 const u_char * TCPCALL p_cdname(const u_char *, const u_char *, int); 290 344 const u_char * TCPCALL p_fqnname(const u_char *cp, const u_char *msg, 291 345 int, char *, int); 292 346 const u_char * TCPCALL p_fqname(const u_char *, const u_char *, int); 293 const u_char * TCPCALL p_rr(const u_char *, const u_char *, int);294 347 const char * TCPCALL p_option(u_long option); 295 348 char * TCPCALL p_secstodate(u_long); 296 349 int TCPCALL dn_count_labels(char *); 297 int TCPCALL dn_comp(const char *, u_char *, int, 298 u_char **, u_char **); 350 int TCPCALL dn_comp(const char *, u_char *, int, u_char **, u_char **); 299 351 int TCPCALL dn_expand(const u_char *, const u_char *, const u_char *, 300 352 char *, int); 301 353 int TCPCALL res_init(void); 302 354 u_int TCPCALL res_randomid(void); 303 355 int TCPCALL res_query(const char *, int, int, u_char *, int); 304 356 int TCPCALL res_search(const char *, int, int, u_char *, int); 305 int TCPCALL res_querydomain(const char *, const char *, int, int, u_char *, int); 357 int TCPCALL res_querydomain(const char *, const char *, int, int, 358 u_char *, int); 306 359 int TCPCALL res_mkquery(int, const char *, int, int, const u_char *, int, 307 360 const u_char *, u_char *, int); 308 361 int TCPCALL res_send(const u_char *, int, u_char *, int); 309 362 int TCPCALL res_isourserver(const struct sockaddr_in *); 310 363 int TCPCALL res_nameinquery(const char *, int, int, 311 364 const u_char *, const u_char *); 312 365 int TCPCALL res_queriesmatch(const u_char *, const u_char *, 313 366 const u_char *, const u_char *); 314 367 void TCPCALL res_close(void); 368 /** @todo int res_opt(int, u_char *, int, int); */ 369 /** @todo const char * p_section(int, int); */ 370 /* XXX These must be exported for BIND4 compatibility. */ 371 /** @todo void __putlong(u_int32_t, u_char *); */ 372 /** @todo void __putshort(u_int16_t, u_char *); */ 373 /** @todo u_int32_t _getlong(const u_char *); */ 374 /** @todo u_int16_t _getshort(const u_char *); */ 375 /* XXX The following depend on the ns_updrec typedef in arpa/nameser.h */ 376 #ifdef _ARPA_NAMESER_H_ 377 /** @todo int res_update(ns_updrec *); */ 378 /** @todo int res_mkupdate(ns_updrec *, u_char *, int); */ 379 /** @todo ns_updrec * res_mkupdrec(int, const char *, u_int, u_int, u_long); */ 380 /** @todo void res_freeupdrec(ns_updrec *); */ 381 #endif 382 383 384 /* not in FreeBSD 5.3 */ 385 const u_char * TCPCALL p_rr(const u_char *, const u_char *, int); 315 386 int TCPCALL dn_find(u_char *exp_dn, u_char *msg, 316 u_char **dnptrs, u_char **lastdnptr); 317 #endif /* !TCPV40HDRS */ 318 319 320 #if defined (__cplusplus) 321 } 322 #endif 387 u_char **dnptrs, u_char **lastdnptr); 388 389 __END_DECLS 390 391 #else /* TCPV40HDRS */ 392 393 extern struct state _res; 394 395 #endif /* TCPV40HDRS */ 396 323 397 324 398 #endif /* !_RESOLV_H_ */ -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.