~ubuntu-branches/ubuntu/maverick/bind9/maverick

« back to all changes in this revision

Viewing changes to lib/bind/include/resolv.h

  • Committer: Bazaar Package Importer
  • Author(s): LaMont Jones, LaMont Jones, Internet Software Consortium, Inc, localization folks
  • Date: 2008-08-02 14:20:20 UTC
  • mfrom: (1.2.1 upstream) (6.1.24 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080802142020-l1hon9jy8lbbjxmg
[LaMont Jones]

* default to using resolvconf if it is installed
* fix sonames and dependencies.  Closes: #149259, #492418
* Do not build-depend libcap2-dev on non-linux.  Closes: #493392
* drop unused query-loc manpage.  Closes: #492564
* lwresd: Deliver /etc/bind directory.  Closes: #490027
* fix query-source comment in default install

[Internet Software Consortium, Inc]

* 9.5.0-P2.  Closes: #492949

[localization folks]

* l10n: Spanish debconf translation.  Closes: #492425 (Ignacio Mondino)
* l10n: Swedish debconf templates.  Closes: #491369 (Martin Ågren)
* l10n: Japanese debconf translations.  Closes: #492048 (Hideki Yamane
  (Debian-JP))
* l10n: Finnish translation.  Closes: #490630 (Esko Arajärvi)
* l10n: Italian debconf translations.  Closes: #492587 (Alessandro Vietta)

Show diffs side-by-side

added added

removed removed

Lines of Context:
48
48
 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
49
49
 */
50
50
 
51
 
/*
 
51
/*%
52
52
 *      @(#)resolv.h    8.1 (Berkeley) 6/2/93
53
 
 *      $Id: resolv.h,v 1.7.2.11.4.3 2005/08/25 04:44:13 marka Exp $
 
53
 *      $Id: resolv.h,v 1.23.564.1 2008/04/03 02:12:21 marka Exp $
54
54
 */
55
55
 
56
56
#ifndef _RESOLV_H_
67
67
#include <stdio.h>
68
68
#include <arpa/nameser.h>
69
69
 
70
 
/*
 
70
/*%
71
71
 * Revision information.  This is the release date in YYYYMMDD format.
72
72
 * It can change every day so the right thing to do with it is use it
73
73
 * in preprocessor commands such as "#if (__RES > 19931104)".  Do not
77
77
 
78
78
#define __RES   20030124
79
79
 
80
 
/*
 
80
/*%
81
81
 * This used to be defined in res_query.c, now it's in herror.c.
82
82
 * [XXX no it's not.  It's in irs/irs_data.c]
83
83
 * It was
97
97
 */
98
98
 
99
99
#define RES_SET_H_ERRNO(r,x) __h_errno_set(r,x)
100
 
struct __res_state; /* forward */
 
100
struct __res_state; /*%< forward */
101
101
__BEGIN_DECLS
102
102
void __h_errno_set(struct __res_state *res, int err);
103
103
__END_DECLS
104
104
 
105
 
/*
 
105
/*%
106
106
 * Resolver configuration file.
107
107
 * Normally not present, but may contain the address of the
108
108
 * initial name server(s) to query and the domain search list.
132
132
                                                int, int *));
133
133
 
134
134
struct res_sym {
135
 
        int             number;    /* Identifying number, like T_MX */
136
 
        const char *    name;      /* Its symbolic name, like "MX" */
137
 
        const char *    humanname; /* Its fun name, like "mail exchanger" */
 
135
        int             number;    /*%< Identifying number, like T_MX */
 
136
        const char *    name;      /*%< Its symbolic name, like "MX" */
 
137
        const char *    humanname; /*%< Its fun name, like "mail exchanger" */
138
138
};
139
139
 
140
 
/*
 
140
/*%
141
141
 * Global defines and variables for resolver stub.
142
142
 */
143
 
#define MAXNS                   3       /* max # name servers we'll track */
144
 
#define MAXDFLSRCH              3       /* # default domain levels to try */
145
 
#define MAXDNSRCH               6       /* max # domains in search path */
146
 
#define LOCALDOMAINPARTS        2       /* min levels in name that is "local" */
147
 
 
148
 
#define RES_TIMEOUT             5       /* min. seconds between retries */
149
 
#define MAXRESOLVSORT           10      /* number of net to sort on */
150
 
#define RES_MAXNDOTS            15      /* should reflect bit field size */
151
 
#define RES_MAXRETRANS          30      /* only for resolv.conf/RES_OPTIONS */
152
 
#define RES_MAXRETRY            5       /* only for resolv.conf/RES_OPTIONS */
153
 
#define RES_DFLRETRY            2       /* Default #/tries. */
154
 
#define RES_MAXTIME             65535   /* Infinity, in milliseconds. */
155
 
 
 
143
#define MAXNS                   3       /*%< max # name servers we'll track */
 
144
#define MAXDFLSRCH              3       /*%< # default domain levels to try */
 
145
#define MAXDNSRCH               6       /*%< max # domains in search path */
 
146
#define LOCALDOMAINPARTS        2       /*%< min levels in name that is "local" */
 
147
#define RES_TIMEOUT             5       /*%< min. seconds between retries */
 
148
#define MAXRESOLVSORT           10      /*%< number of net to sort on */
 
149
#define RES_MAXNDOTS            15      /*%< should reflect bit field size */
 
150
#define RES_MAXRETRANS          30      /*%< only for resolv.conf/RES_OPTIONS */
 
151
#define RES_MAXRETRY            5       /*%< only for resolv.conf/RES_OPTIONS */
 
152
#define RES_DFLRETRY            2       /*%< Default #/tries. */
 
153
#define RES_MAXTIME             65535   /*%< Infinity, in milliseconds. */
156
154
struct __res_state_ext;
157
155
 
158
156
struct __res_state {
159
 
        int     retrans;                /* retransmission time interval */
160
 
        int     retry;                  /* number of times to retransmit */
 
157
        int     retrans;                /*%< retransmission time interval */
 
158
        int     retry;                  /*%< number of times to retransmit */
161
159
#ifdef sun
162
 
        u_int   options;                /* option flags - see below. */
 
160
        u_int   options;                /*%< option flags - see below. */
163
161
#else
164
 
        u_long  options;                /* option flags - see below. */
 
162
        u_long  options;                /*%< option flags - see below. */
165
163
#endif
166
 
        int     nscount;                /* number of name servers */
 
164
        int     nscount;                /*%< number of name servers */
167
165
        struct sockaddr_in
168
 
                nsaddr_list[MAXNS];     /* address of name server */
169
 
#define nsaddr  nsaddr_list[0]          /* for backward compatibility */
170
 
        u_short id;                     /* current message id */
171
 
        char    *dnsrch[MAXDNSRCH+1];   /* components of domain to search */
172
 
        char    defdname[256];          /* default domain (deprecated) */
 
166
                nsaddr_list[MAXNS];     /*%< address of name server */
 
167
#define nsaddr  nsaddr_list[0]          /*%< for backward compatibility */
 
168
        u_short id;                     /*%< current message id */
 
169
        char    *dnsrch[MAXDNSRCH+1];   /*%< components of domain to search */
 
170
        char    defdname[256];          /*%< default domain (deprecated) */
173
171
#ifdef sun
174
 
        u_int   pfcode;                 /* RES_PRF_ flags - see below. */
 
172
        u_int   pfcode;                 /*%< RES_PRF_ flags - see below. */
175
173
#else
176
 
        u_long  pfcode;                 /* RES_PRF_ flags - see below. */
 
174
        u_long  pfcode;                 /*%< RES_PRF_ flags - see below. */
177
175
#endif
178
 
        unsigned ndots:4;               /* threshold for initial abs. query */
179
 
        unsigned nsort:4;               /* number of elements in sort_list[] */
 
176
        unsigned ndots:4;               /*%< threshold for initial abs. query */
 
177
        unsigned nsort:4;               /*%< number of elements in sort_list[] */
180
178
        char    unused[3];
181
179
        struct {
182
180
                struct in_addr  addr;
183
181
                u_int32_t       mask;
184
182
        } sort_list[MAXRESOLVSORT];
185
 
        res_send_qhook qhook;           /* query hook */
186
 
        res_send_rhook rhook;           /* response hook */
187
 
        int     res_h_errno;            /* last one set for this context */
188
 
        int     _vcsock;                /* PRIVATE: for res_send VC i/o */
189
 
        u_int   _flags;                 /* PRIVATE: see below */
190
 
        u_int   _pad;                   /* make _u 64 bit aligned */
 
183
        res_send_qhook qhook;           /*%< query hook */
 
184
        res_send_rhook rhook;           /*%< response hook */
 
185
        int     res_h_errno;            /*%< last one set for this context */
 
186
        int     _vcsock;                /*%< PRIVATE: for res_send VC i/o */
 
187
        u_int   _flags;                 /*%< PRIVATE: see below */
 
188
        u_int   _pad;                   /*%< make _u 64 bit aligned */
191
189
        union {
192
190
                /* On an 32-bit arch this means 512b total. */
193
191
                char    pad[72 - 4*sizeof (int) - 2*sizeof (void *)];
194
192
                struct {
195
193
                        u_int16_t               nscount;
196
 
                        u_int16_t               nstimes[MAXNS]; /* ms. */
 
194
                        u_int16_t               nstimes[MAXNS]; /*%< ms. */
197
195
                        int                     nssocks[MAXNS];
198
 
                        struct __res_state_ext *ext;    /* extention for IPv6 */
 
196
                        struct __res_state_ext *ext;    /*%< extention for IPv6 */
199
197
                } _ext;
200
198
        } _u;
201
199
};
208
206
        struct sockaddr_in6     sin6;
209
207
#endif
210
208
#ifdef ISC_ALIGN64
211
 
        int64_t                 __align64;      /* 64bit alignment */
 
209
        int64_t                 __align64;      /*%< 64bit alignment */
212
210
#else
213
 
        int32_t                 __align32;      /* 32bit alignment */
 
211
        int32_t                 __align32;      /*%< 32bit alignment */
214
212
#endif
215
 
        char                    __space[128];   /* max size */
 
213
        char                    __space[128];   /*%< max size */
216
214
};
217
215
 
218
 
/*
 
216
/*%
219
217
 * Resolver flags (used to be discrete per-module statics ints).
220
218
 */
221
 
#define RES_F_VC        0x00000001      /* socket is TCP */
222
 
#define RES_F_CONN      0x00000002      /* socket is connected */
223
 
#define RES_F_EDNS0ERR  0x00000004      /* EDNS0 caused errors */
224
 
#define RES_F__UNUSED   0x00000008      /* (unused) */
225
 
#define RES_F_LASTMASK  0x000000F0      /* ordinal server of last res_nsend */
226
 
#define RES_F_LASTSHIFT 4               /* bit position of LASTMASK "flag" */
 
219
#define RES_F_VC        0x00000001      /*%< socket is TCP */
 
220
#define RES_F_CONN      0x00000002      /*%< socket is connected */
 
221
#define RES_F_EDNS0ERR  0x00000004      /*%< EDNS0 caused errors */
 
222
#define RES_F__UNUSED   0x00000008      /*%< (unused) */
 
223
#define RES_F_LASTMASK  0x000000F0      /*%< ordinal server of last res_nsend */
 
224
#define RES_F_LASTSHIFT 4               /*%< bit position of LASTMASK "flag" */
227
225
#define RES_GETLAST(res) (((res)._flags & RES_F_LASTMASK) >> RES_F_LASTSHIFT)
228
226
 
229
227
/* res_findzonecut2() options */
230
 
#define RES_EXHAUSTIVE  0x00000001      /* always do all queries */
231
 
#define RES_IPV4ONLY    0x00000002      /* IPv4 only */
232
 
#define RES_IPV6ONLY    0x00000004      /* IPv6 only */
 
228
#define RES_EXHAUSTIVE  0x00000001      /*%< always do all queries */
 
229
#define RES_IPV4ONLY    0x00000002      /*%< IPv4 only */
 
230
#define RES_IPV6ONLY    0x00000004      /*%< IPv6 only */
233
231
 
234
 
/*
 
232
/*%
235
233
 * Resolver options (keep these in synch with res_debug.c, please)
236
234
 */
237
 
#define RES_INIT        0x00000001      /* address initialized */
238
 
#define RES_DEBUG       0x00000002      /* print debug messages */
239
 
#define RES_AAONLY      0x00000004      /* authoritative answers only (!IMPL)*/
240
 
#define RES_USEVC       0x00000008      /* use virtual circuit */
241
 
#define RES_PRIMARY     0x00000010      /* query primary server only (!IMPL) */
242
 
#define RES_IGNTC       0x00000020      /* ignore trucation errors */
243
 
#define RES_RECURSE     0x00000040      /* recursion desired */
244
 
#define RES_DEFNAMES    0x00000080      /* use default domain name */
245
 
#define RES_STAYOPEN    0x00000100      /* Keep TCP socket open */
246
 
#define RES_DNSRCH      0x00000200      /* search up local domain tree */
247
 
#define RES_INSECURE1   0x00000400      /* type 1 security disabled */
248
 
#define RES_INSECURE2   0x00000800      /* type 2 security disabled */
249
 
#define RES_NOALIASES   0x00001000      /* shuts off HOSTALIASES feature */
250
 
#define RES_USE_INET6   0x00002000      /* use/map IPv6 in gethostbyname() */
251
 
#define RES_ROTATE      0x00004000      /* rotate ns list after each query */
252
 
#define RES_NOCHECKNAME 0x00008000      /* do not check names for sanity. */
253
 
#define RES_KEEPTSIG    0x00010000      /* do not strip TSIG records */
254
 
#define RES_BLAST       0x00020000      /* blast all recursive servers */
255
 
#define RES_NOTLDQUERY  0x00100000      /* don't unqualified name as a tld */
256
 
#define RES_USE_DNSSEC  0x00200000      /* use DNSSEC using OK bit in OPT */
 
235
#define RES_INIT        0x00000001      /*%< address initialized */
 
236
#define RES_DEBUG       0x00000002      /*%< print debug messages */
 
237
#define RES_AAONLY      0x00000004      /*%< authoritative answers only (!IMPL)*/
 
238
#define RES_USEVC       0x00000008      /*%< use virtual circuit */
 
239
#define RES_PRIMARY     0x00000010      /*%< query primary server only (!IMPL) */
 
240
#define RES_IGNTC       0x00000020      /*%< ignore trucation errors */
 
241
#define RES_RECURSE     0x00000040      /*%< recursion desired */
 
242
#define RES_DEFNAMES    0x00000080      /*%< use default domain name */
 
243
#define RES_STAYOPEN    0x00000100      /*%< Keep TCP socket open */
 
244
#define RES_DNSRCH      0x00000200      /*%< search up local domain tree */
 
245
#define RES_INSECURE1   0x00000400      /*%< type 1 security disabled */
 
246
#define RES_INSECURE2   0x00000800      /*%< type 2 security disabled */
 
247
#define RES_NOALIASES   0x00001000      /*%< shuts off HOSTALIASES feature */
 
248
#define RES_USE_INET6   0x00002000      /*%< use/map IPv6 in gethostbyname() */
 
249
#define RES_ROTATE      0x00004000      /*%< rotate ns list after each query */
 
250
#define RES_NOCHECKNAME 0x00008000      /*%< do not check names for sanity. */
 
251
#define RES_KEEPTSIG    0x00010000      /*%< do not strip TSIG records */
 
252
#define RES_BLAST       0x00020000      /*%< blast all recursive servers */
 
253
#define RES_NSID        0x00040000      /*%< request name server ID */
 
254
#define RES_NOTLDQUERY  0x00100000      /*%< don't unqualified name as a tld */
 
255
#define RES_USE_DNSSEC  0x00200000      /*%< use DNSSEC using OK bit in OPT */
257
256
/* #define RES_DEBUG2   0x00400000 */   /* nslookup internal */
258
257
/* KAME extensions: use higher bit to avoid conflict with ISC use */
259
 
#define RES_USE_DNAME   0x10000000      /* use DNAME */
260
 
#define RES_USE_EDNS0   0x40000000      /* use EDNS0 if configured */
261
 
#define RES_NO_NIBBLE2  0x80000000      /* disable alternate nibble lookup */
 
258
#define RES_USE_DNAME   0x10000000      /*%< use DNAME */
 
259
#define RES_USE_EDNS0   0x40000000      /*%< use EDNS0 if configured */
 
260
#define RES_NO_NIBBLE2  0x80000000      /*%< disable alternate nibble lookup */
262
261
 
263
262
#define RES_DEFAULT     (RES_RECURSE | RES_DEFNAMES | \
264
263
                         RES_DNSRCH | RES_NO_NIBBLE2)
265
264
 
266
 
/*
 
265
/*%
267
266
 * Resolver "pfcode" values.  Used by dig.
268
267
 */
269
268
#define RES_PRF_STATS   0x00000001
398
397
#define sym_ntos                __sym_ntos
399
398
#define sym_ston                __sym_ston
400
399
#define res_nopt                __res_nopt
 
400
#define res_nopt_rdata          __res_nopt_rdata
401
401
#define res_ndestroy            __res_ndestroy
402
402
#define res_nametoclass         __res_nametoclass
403
403
#define res_nametotype          __res_nametotype
484
484
                                      union res_sockaddr_union *, int));
485
485
void            res_nclose __P((res_state));
486
486
int             res_nopt __P((res_state, int, u_char *, int, int));
 
487
int             res_nopt_rdata __P((res_state, int, u_char *, int, u_char *,
 
488
                                    u_short, u_short, u_char *));
487
489
void            res_send_setqhook __P((res_send_qhook));
488
490
void            res_send_setrhook __P((res_send_rhook));
489
491
int             __res_vinit __P((res_state, int));
504
506
__END_DECLS
505
507
 
506
508
#endif /* !_RESOLV_H_ */
 
509
/*! \file */