summary refs log tree commit diff
path: root/resolv
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-08-29 00:31:18 +0000
committerUlrich Drepper <drepper@redhat.com>1996-08-29 00:31:18 +0000
commit14bab8de31e04b990c2ce83d844f634ec57a6cc6 (patch)
treef6a25bd165f8997c08e58f6f2de69e9d34e0fda0 /resolv
parentb236e99d90748f6caf77994e96dc5aaa48ce2993 (diff)
downloadglibc-14bab8de31e04b990c2ce83d844f634ec57a6cc6.tar.gz
glibc-14bab8de31e04b990c2ce83d844f634ec57a6cc6.tar.xz
glibc-14bab8de31e04b990c2ce83d844f634ec57a6cc6.zip
update from main archive 960828 glibc-1.93 cvs/libc-960829 cvs/libc-1-93
Thu Aug 29 00:28:08 1996  Ulrich Drepper  <drepper@cygnus.com>

	* 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  <eggert@twinsun.com>

	* 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  <eggert@twinsun.com>

	* 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  <drepper@cygnus.com>

	* 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  <schwab@issan.informatik.uni-dortmund.de>

	* MakeTAGS ($P/subdirs.pot): Prefix all file names, not only the
	first one.

Fri Aug 16 16:11:25 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* 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.
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 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 <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 */
 };
 
 /*