mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
update from main archive 960828
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.
This commit is contained in:
@ -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 *));
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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 */
|
||||
};
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user