aboutsummaryrefslogtreecommitdiff
path: root/resolv
diff options
context:
space:
mode:
Diffstat (limited to 'resolv')
-rw-r--r--resolv/arpa/nameser.h32
-rw-r--r--resolv/res_debug.c43
-rw-r--r--resolv/res_init.c6
-rw-r--r--resolv/res_mkquery.c60
-rw-r--r--resolv/resolv.h8
5 files changed, 45 insertions, 104 deletions
diff --git a/resolv/arpa/nameser.h b/resolv/arpa/nameser.h
index f2b251b..7da0aef 100644
--- a/resolv/arpa/nameser.h
+++ b/resolv/arpa/nameser.h
@@ -135,17 +135,6 @@
#define STATUS 0x2 /* nameserver status query */
/*#define xxx 0x3*/ /* 0x3 reserved */
#define NS_NOTIFY_OP 0x4 /* notify secondary of SOA change */
-#ifdef ALLOW_UPDATES
- /* non standard - supports ALLOW_UPDATES stuff from Mike Schwartz */
-# define UPDATEA 0x9 /* add resource record */
-# define UPDATED 0xa /* delete a specific resource record */
-# define UPDATEDA 0xb /* delete all named resource record */
-# define UPDATEM 0xc /* modify a specific resource record */
-# define UPDATEMA 0xd /* modify all named resource record */
-# define ZONEINIT 0xe /* initial zone transfer */
-# define ZONEREF 0xf /* incremental zone referesh */
-#endif
-
/*
* Currently defined response codes
*/
@@ -155,10 +144,6 @@
#define NXDOMAIN 3 /* non existent domain */
#define NOTIMP 4 /* not implemented */
#define REFUSED 5 /* query refused */
-#ifdef ALLOW_UPDATES
- /* non standard */
-# define NOCHANGE 0xf /* update failed to change db */
-#endif
/*
* Type values for resources and queries
@@ -193,12 +178,17 @@
#define T_AAAA 28 /* IP6 Address */
#define T_LOC 29 /* Location Information */
#define T_NXT 30 /* Next Valid Name in Zone */
+#define T_EID 31 /* Endpoint identifier */
+#define T_NIMLOC 32 /* Nimrod locator */
+#define T_SRV 33 /* Server selection */
+#define T_ATMA 34 /* ATM Address */
/* non standard */
#define T_UINFO 100 /* user (finger) information */
#define T_UID 101 /* user ID */
#define T_GID 102 /* group ID */
#define T_UNSPEC 103 /* Unspecified format (binary data) */
/* Query type values which do not appear in resource records */
+#define T_IXFR 251 /* incremental zone transfer */
#define T_AXFR 252 /* transfer zone of authority */
#define T_MAILB 253 /* transfer mailbox records */
#define T_MAILA 254 /* transfer mail agent records */
@@ -355,18 +345,6 @@ typedef struct {
*/
#define INDIR_MASK 0xc0
-/*
- * Structure for passing resource records around.
- */
-struct rrec {
- int16_t r_zone; /* zone number */
- int16_t r_class; /* class number */
- int16_t r_type; /* type number */
- u_int32_t r_ttl; /* time to live */
- int r_size; /* size of data area */
- char *r_data; /* pointer to data */
-};
-
extern u_int16_t _getshort __P((const u_char *));
extern u_int32_t _getlong __P((const u_char *));
diff --git a/resolv/res_debug.c b/resolv/res_debug.c
index bb314bc..b476676 100644
--- a/resolv/res_debug.c
+++ b/resolv/res_debug.c
@@ -667,7 +667,7 @@ __p_rr(cp, msg, file)
case T_AAAA: {
char t[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"];
- fprintf(file, "\t%s\n", inet_ntop(AF_INET6, cp, t, sizeof t));
+ fprintf(file, "\t%s", inet_ntop(AF_INET6, cp, t, sizeof t));
cp += dlen;
break;
}
@@ -675,11 +675,23 @@ __p_rr(cp, msg, file)
case T_LOC: {
char t[255];
- (void) fprintf(file, "\t%s\n", loc_ntoa(cp, t));
+ (void) fprintf(file, "\t%s", loc_ntoa(cp, t));
cp += dlen;
break;
}
+ case T_SRV: {
+ u_int priority, weight, port;
+
+ priority = _getshort(cp); cp += INT16SZ;
+ weight = _getshort(cp); cp += INT16SZ;
+ port = _getshort(cp); cp += INT16SZ;
+ fprintf(file, "\t%u %u %u ", priority, weight, port);
+ if ((cp = p_fqname(cp, msg, file)) == NULL)
+ return (NULL);
+ break;
+ }
+
case T_MINFO:
case T_RP:
putc('\t', file);
@@ -856,13 +868,15 @@ const struct res_sym __p_class_syms[] = {
const struct res_sym __p_type_syms[] = {
{T_A, "A", "address"},
{T_NS, "NS", "name server"},
+ {T_MD, "MD", "mail destination (deprecated)"},
+ {T_MF, "MF", "mail forwarder (deprecated)"},
{T_CNAME, "CNAME", "canonical name"},
{T_SOA, "SOA", "start of authority"},
{T_MB, "MB", "mailbox"},
{T_MG, "MG", "mail group member"},
{T_MR, "MR", "mail rename"},
{T_NULL, "NULL", "null"},
- {T_WKS, "WKS", "well-known service"},
+ {T_WKS, "WKS", "well-known service (deprecated)"},
{T_PTR, "PTR", "domain name pointer"},
{T_HINFO, "HINFO", "host information"},
{T_MINFO, "MINFO", "mailbox information"},
@@ -877,22 +891,27 @@ const struct res_sym __p_type_syms[] = {
{T_NSAP_PTR, "NSAP_PTR", "domain name pointer"},
{T_SIG, "SIG", "signature"},
{T_KEY, "KEY", "key"},
- {T_NXT, "NXT", "next valid name"},
{T_PX, "PX", "mapping information"},
- {T_GPOS, "GPOS", "geographical position"},
+ {T_GPOS, "GPOS", "geographical position (withdrawn)"},
{T_AAAA, "AAAA", "IPv6 address"},
{T_LOC, "LOC", "location"},
+ {T_NXT, "NXT", "next valid name (unimplemented)"},
+ {T_EID, "EID", "endpoint identifier (unimplemented)"},
+ {T_NIMLOC, "NIMLOC", "NIMROD locator (unimplemented)"},
+ {T_SRV, "SRV", "server selection"},
+ {T_ATMA, "ATMA", "ATM address (unimplemented)"},
+ {T_IXFR, "IXFR", "incremental zone transfer"},
{T_AXFR, "AXFR", "zone transfer"},
- {T_MAILB, "MAILB", "mailbox-related data"},
- {T_MAILA, "MAILA", "mail agent"},
- {T_UINFO, "UINFO", "user information"},
- {T_UID, "UID", "user ID"},
- {T_GID, "GID", "group ID"},
+ {T_MAILB, "MAILB", "mailbox-related data (deprecated)"},
+ {T_MAILA, "MAILA", "mail agent (deprecated)"},
+ {T_UINFO, "UINFO", "user information (nonstandard)"},
+ {T_UID, "UID", "user ID (nonstandard)"},
+ {T_GID, "GID", "group ID (nonstandard)"},
#ifdef ALLOW_T_UNSPEC
- {T_UNSPEC, "UNSPEC", "unspecified data"},
+ {T_UNSPEC, "UNSPEC", "unspecified data (nonstandard)"},
#endif /* ALLOW_T_UNSPEC */
{T_ANY, "ANY", "\"any\""},
- {0, (char *)0, (char *)0}
+ {0, NULL, NULL}
};
int
diff --git a/resolv/res_init.c b/resolv/res_init.c
index 8d87b8c..caeb337 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -126,7 +126,11 @@ static u_int32_t net_mask __P((struct in_addr));
* Resolver state default settings.
*/
-struct __res_state _res;
+struct __res_state _res
+# if defined(__BIND_RES_TEXT)
+ = { RES_TIMEOUT, } /* Motorola, et al. */
+# endif
+ ;
/*
* Set up default settings. If the configuration file exist, the values
diff --git a/resolv/res_mkquery.c b/resolv/res_mkquery.c
index feaf0ef..505c391 100644
--- a/resolv/res_mkquery.c
+++ b/resolv/res_mkquery.c
@@ -94,9 +94,6 @@ res_mkquery(op, dname, class, type, data, datalen, newrr_in, buf, buflen)
register HEADER *hp;
register u_char *cp;
register int n;
-#ifdef ALLOW_UPDATES
- struct rrec *newrr = (struct rrec *) newrr_in;
-#endif
u_char *dnptrs[20], **dpp, **lastdnptr;
if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
@@ -186,63 +183,6 @@ res_mkquery(op, dname, class, type, data, datalen, newrr_in, buf, buflen)
hp->ancount = htons(1);
break;
-#ifdef ALLOW_UPDATES
- /*
- * For UPDATEM/UPDATEMA, do UPDATED/UPDATEDA followed by UPDATEA
- * (Record to be modified is followed by its replacement in msg.)
- */
- case UPDATEM:
- case UPDATEMA:
-
- case UPDATED:
- /*
- * The res code for UPDATED and UPDATEDA is the same; user
- * calls them differently: specifies data for UPDATED; server
- * ignores data if specified for UPDATEDA.
- */
- case UPDATEDA:
- buflen -= RRFIXEDSZ + datalen;
- if ((n = dn_comp(dname, cp, buflen, dnptrs, lastdnptr)) < 0)
- return (-1);
- cp += n;
- __putshort(type, cp);
- cp += INT16SZ;
- __putshort(class, cp);
- cp += INT16SZ;
- __putlong(0, cp);
- cp += INT32SZ;
- __putshort(datalen, cp);
- cp += INT16SZ;
- if (datalen) {
- bcopy(data, cp, datalen);
- cp += datalen;
- }
- if ( (op == UPDATED) || (op == UPDATEDA) ) {
- hp->ancount = htons(0);
- break;
- }
- /* Else UPDATEM/UPDATEMA, so drop into code for UPDATEA */
-
- case UPDATEA: /* Add new resource record */
- buflen -= RRFIXEDSZ + datalen;
- if ((n = dn_comp(dname, cp, buflen, dnptrs, lastdnptr)) < 0)
- return (-1);
- cp += n;
- __putshort(newrr->r_type, cp);
- cp += INT16SZ;
- __putshort(newrr->r_class, cp);
- cp += INT16SZ;
- __putlong(0, cp);
- cp += INT32SZ;
- __putshort(newrr->r_size, cp);
- cp += INT16SZ;
- if (newrr->r_size) {
- bcopy(newrr->r_data, cp, newrr->r_size);
- cp += newrr->r_size;
- }
- hp->ancount = htons(0);
- break;
-#endif /* ALLOW_UPDATES */
default:
return (-1);
}
diff --git a/resolv/resolv.h b/resolv/resolv.h
index fd38fca..23460c5 100644
--- a/resolv/resolv.h
+++ b/resolv/resolv.h
@@ -71,9 +71,9 @@
#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
+ * 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.
*/
@@ -121,7 +121,7 @@ struct __res_state {
struct in_addr addr;
u_int32_t mask;
} sort_list[MAXRESOLVSORT];
- char pad[72]; /* On an i38this means 512b total. */
+ char pad[72]; /* on an i386 this means 512b total */
};
/*