From 14bab8de31e04b990c2ce83d844f634ec57a6cc6 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 29 Aug 1996 00:31:18 +0000 Subject: update from main archive 960828 Thu Aug 29 00:28:08 1996 Ulrich Drepper * stdio-common/printf_fp.c (__printf_fp): Use default value `.` if `decimal' char is 0. * C-numeric.c (not_available): New constant. (_nl_C_LC_NUMERIC): Use `not_available' for grouping value. * nss/nsswitch.conf: Example configuration file. * nss/db-Makefile: Example Makefile for generation of databases for nss_db. * nss/Makefile (distribute): Add nsswitch.conf and db-Makefile. 1996-08-28 Paul Eggert * C-messages.c (_nl_C_LC_MESSAGES): Set yesexpr to "^[yY]" and noexpr to "^[nN]"; this conforms to POSIX.2. * C-time.c (_nl_C_LC_TIME): Change %d to %e in d_t_format, to conform to POSIX.2. 1996-08-28 Paul Eggert * C-monetary.c (not_available): New constant. (_nl_C_LC_MONETARY): Set mon_decimal_point to "", and set mon_grouping, int_frac_digits, frac_digits, p_cs_precedes, p_sep_by_space, n_cs_precedes, n_sep_by_space, p_sign_posn, and n_sign_posn to CHAR_MAX, as required by the POSIX Standard. Wed Aug 28 23:12:28 1996 Ulrich Drepper * nss/nss_db/db-XXX.c: Correct function names. They must be `_nss_db_*' instead of `_nss_files_*'. (lookup): `parse_line' returns 1 if succesful. * nss/nss_files/files-service.c (servbyname): Key for database must also contain protocol names. (servbypt): Likewise. Test must also check for protocol. Add `proto' argument. Tue Aug 27 09:56:13 1996 Andreas Schwab * MakeTAGS ($P/subdirs.pot): Prefix all file names, not only the first one. Fri Aug 16 16:11:25 1996 Thomas Bushnell, n/BSG * nss/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r): Treat EPFNOSUPPORT and EAFNOSUPPORT as implying NSS_STATUS_UNAVAIL just like ECONNREFUSED already does. (_nss_dns_gethostbyaddr_r): Likewise. * nss/nss_dns/dns-network.c (_nss_dns_getnetbyname_r): Likewise. (_nss_dns_getnetbyaddr_r): Likewise. * sysdeps/mach/hurd/socket.c (socket): For message transmission and RPC errors that indicate that the socket server is not really present and able to do its job, turn the error into EPFNOSUPPORT. * sysdeps/generic/sbrk.c (__sbrk): Get kernel brk address always only if in static libc or if statically linked program uses libc.so. --- resolv/arpa/nameser.h | 32 +++++---------------------- resolv/res_debug.c | 43 +++++++++++++++++++++++++----------- resolv/res_init.c | 6 +++++- resolv/res_mkquery.c | 60 --------------------------------------------------- resolv/resolv.h | 8 +++---- 5 files changed, 45 insertions(+), 104 deletions(-) (limited to 'resolv') diff --git a/resolv/arpa/nameser.h b/resolv/arpa/nameser.h index f2b251bfbf..7da0aef597 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 bb314bcaa0..b47667626f 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 8d87b8c407..caeb337e24 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 feaf0eff8b..505c3914a9 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 fd38fca6e1..23460c5280 100644 --- a/resolv/resolv.h +++ b/resolv/resolv.h @@ -71,9 +71,9 @@ #include /* - * 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 */ }; /* -- cgit 1.4.1