Reduce divergence from FreeBSD sources

This commit is contained in:
Sebastian Huber
2013-11-06 09:35:05 +01:00
parent c4c34f3c45
commit 0a57e1db23
164 changed files with 693 additions and 786 deletions

View File

@@ -90,7 +90,7 @@ static void addrsort(char **, int, res_state);
#endif
#ifdef DEBUG
static void DPRINTF(char *, int, res_state) __printflike(1, 0);
static void dprintf(char *, int, res_state) __printflike(1, 0);
#endif
#define MAXPACKET (64*1024)
@@ -109,7 +109,7 @@ int _dns_ttl_;
#ifdef DEBUG
static void
DPRINTF(msg, num, res)
dprintf(msg, num, res)
char *msg;
int num;
res_state res;
@@ -122,7 +122,7 @@ DPRINTF(msg, num, res)
}
}
#else
# define DPRINTF(msg, num, res) /*nada*/
# define dprintf(msg, num, res) /*nada*/
#endif
#define BOUNDED_INCR(x) \
@@ -340,7 +340,6 @@ gethostanswer(const querybuf *answer, int anslen, const char *qname, int qtype,
break;
#else
he->h_name = bp;
#ifdef INET6
if (statp->options & RES_USE_INET6) {
n = strlen(bp) + 1; /* for the \0 */
if (n >= MAXHOSTNAMELEN) {
@@ -350,7 +349,6 @@ gethostanswer(const querybuf *answer, int anslen, const char *qname, int qtype,
bp += n;
_map_v4v6_hostent(he, &bp, ep);
}
#endif
RES_SET_H_ERRNO(statp, NETDB_SUCCESS);
return (0);
#endif
@@ -377,13 +375,13 @@ gethostanswer(const querybuf *answer, int anslen, const char *qname, int qtype,
bp += sizeof(align) - ((u_long)bp % sizeof(align));
if (bp + n >= ep) {
DPRINTF("size (%d) too big\n", n, statp);
dprintf("size (%d) too big\n", n, statp);
had_error++;
continue;
}
if (hap >= &hed->h_addr_ptrs[_MAXADDRS-1]) {
if (!toobig++)
DPRINTF("Too many addresses (%d)\n",
dprintf("Too many addresses (%d)\n",
_MAXADDRS, statp);
cp += n;
continue;
@@ -397,7 +395,7 @@ gethostanswer(const querybuf *answer, int anslen, const char *qname, int qtype,
}
break;
default:
DPRINTF("Impossible condition (type=%d)\n", type,
dprintf("Impossible condition (type=%d)\n", type,
statp);
RES_SET_H_ERRNO(statp, NO_RECOVERY);
return (-1);
@@ -426,10 +424,8 @@ gethostanswer(const querybuf *answer, int anslen, const char *qname, int qtype,
he->h_name = bp;
bp += n;
}
#ifdef INET6
if (statp->options & RES_USE_INET6)
_map_v4v6_hostent(he, &bp, ep);
#endif
RES_SET_H_ERRNO(statp, NETDB_SUCCESS);
return (0);
}
@@ -526,12 +522,12 @@ _dns_gethostbyname(void *rval, void *cb_data, va_list ap)
n = res_nsearch(statp, name, C_IN, type, buf->buf, sizeof(buf->buf));
if (n < 0) {
free(buf);
DPRINTF("res_nsearch failed (%d)\n", n, statp);
dprintf("res_nsearch failed (%d)\n", n, statp);
*h_errnop = statp->res_h_errno;
return (NS_NOTFOUND);
} else if (n > sizeof(buf->buf)) {
free(buf);
DPRINTF("static buffer is too small (%d)\n", n, statp);
dprintf("static buffer is too small (%d)\n", n, statp);
*h_errnop = statp->res_h_errno;
return (NS_UNAVAIL);
}
@@ -633,13 +629,13 @@ _dns_gethostbyaddr(void *rval, void *cb_data, va_list ap)
sizeof buf->buf);
if (n < 0) {
free(buf);
DPRINTF("res_nquery failed (%d)\n", n, statp);
dprintf("res_nquery failed (%d)\n", n, statp);
*h_errnop = statp->res_h_errno;
return (NS_UNAVAIL);
}
if (n > sizeof buf->buf) {
free(buf);
DPRINTF("static buffer is too small (%d)\n", n, statp);
dprintf("static buffer is too small (%d)\n", n, statp);
*h_errnop = statp->res_h_errno;
return (NS_UNAVAIL);
}
@@ -703,13 +699,11 @@ _dns_gethostbyaddr(void *rval, void *cb_data, va_list ap)
memcpy(hed->host_addr, uaddr, len);
hed->h_addr_ptrs[0] = (char *)hed->host_addr;
hed->h_addr_ptrs[1] = NULL;
#ifdef INET6
if (af == AF_INET && (statp->options & RES_USE_INET6)) {
_map_v4v6_address((char*)hed->host_addr, (char*)hed->host_addr);
he.h_addrtype = AF_INET6;
he.h_length = NS_IN6ADDRSZ;
}
#endif
if (__copy_hostent(&he, hptr, buffer, buflen) != 0) {
*errnop = errno;
RES_SET_H_ERRNO(statp, NETDB_INTERNAL);

View File

@@ -115,7 +115,6 @@ gethostent_p(struct hostent *he, struct hostent_data *hed, int mapped,
if (!(cp = strpbrk(p, " \t")))
goto again;
*cp++ = '\0';
#ifdef INET6
if (inet_pton(AF_INET6, p, hed->host_addr) > 0) {
af = AF_INET6;
len = IN6ADDRSZ;
@@ -132,12 +131,6 @@ gethostent_p(struct hostent *he, struct hostent_data *hed, int mapped,
} else {
goto again;
}
#else
if (inet_pton(AF_INET, p, hed->host_addr) > 0) {
af = AF_INET;
len = INADDRSZ;
}
#endif
hed->h_addr_ptrs[0] = (char *)hed->host_addr;
hed->h_addr_ptrs[1] = NULL;
he->h_addr_list = hed->h_addr_ptrs;
@@ -200,10 +193,8 @@ gethostent_r(struct hostent *hptr, char *buffer, size_t buflen,
*h_errnop = statp->res_h_errno;
return (-1);
}
#ifdef INET6
if (gethostent_p(&he, hed, statp->options & RES_USE_INET6, statp) != 0)
return (-1);
#endif
if (__copy_hostent(&he, hptr, buffer, buflen) != 0) {
RES_SET_H_ERRNO(statp, NETDB_INTERNAL);
*h_errnop = statp->res_h_errno;
@@ -263,14 +254,12 @@ _ht_gethostbyname(void *rval, void *cb_data, va_list ap)
while ((error = gethostent_p(&he, hed, 0, statp)) == 0) {
if (he.h_addrtype != af)
continue;
#ifdef INET6
if (he.h_addrtype == AF_INET &&
statp->options & RES_USE_INET6) {
_map_v4v6_address(he.h_addr, he.h_addr);
he.h_length = IN6ADDRSZ;
he.h_addrtype = AF_INET6;
}
#endif
if (strcasecmp(he.h_name, name) == 0)
break;
for (cp = he.h_aliases; *cp != 0; cp++)
@@ -328,7 +317,6 @@ _ht_gethostbyaddr(void *rval, void *cb_data, va_list ap)
_sethosthtent(0, hed);
while ((error = gethostent_p(&he, hed, 0, statp)) == 0)
#ifdef INET6
if (he.h_addrtype == af && !bcmp(he.h_addr, addr, len)) {
if (he.h_addrtype == AF_INET &&
statp->options & RES_USE_INET6) {
@@ -338,7 +326,6 @@ _ht_gethostbyaddr(void *rval, void *cb_data, va_list ap)
}
break;
}
#endif
_endhosthtent(hed);
if (error != 0)

View File

@@ -458,23 +458,19 @@ fakeaddr(const char *name, int af, struct hostent *hp, char *buf,
}
strncpy(hed->hostbuf, name, MAXDNAME);
hed->hostbuf[MAXDNAME] = '\0';
#ifdef INET6
if (af == AF_INET && (statp->options & RES_USE_INET6) != 0U) {
_map_v4v6_address((char *)hed->host_addr,
(char *)hed->host_addr);
af = AF_INET6;
}
#endif
he.h_addrtype = af;
switch(af) {
case AF_INET:
he.h_length = NS_INADDRSZ;
break;
#ifdef INET6
case AF_INET6:
he.h_length = NS_IN6ADDRSZ;
break;
#endif
default:
errno = EAFNOSUPPORT;
RES_SET_H_ERRNO(statp, NETDB_INTERNAL);

View File

@@ -519,13 +519,13 @@ nss_load_module(const char *source, nss_module_register_fn reg_fn)
goto fin;
}
}
#endif
#endif /* __rtems__ */
mod.mtab = fn(mod.name, &mod.mtabsize, &mod.unregister);
if (mod.mtab == NULL || mod.mtabsize == 0) {
#ifndef __rtems__
if (mod.handle != nss_builtin_handle)
(void)dlclose(mod.handle);
#endif
#endif /* __rtems__ */
mod.handle = NULL;
nss_log(LOG_ERR, "%s, registration failed", mod.name);
goto fin;
@@ -552,7 +552,7 @@ ns_mod_free(ns_mod *mod)
#ifndef __rtems__
if (mod->handle != nss_builtin_handle)
(void)dlclose(mod->handle);
#endif
#endif /* __rtems__ */
}

View File

@@ -4,3 +4,6 @@
#define RESOLVSORT /* allow sorting of addresses in gethostbyname */
#undef SUNSECURITY /* verify gethostbyaddr() calls - WE DONT NEED IT */
#define MULTI_PTRS_ARE_ALIASES 1 /* fold multiple PTR records into aliases */
#ifdef __rtems__
#define dprintf gethostbydns_dprintf
#endif /* __rtems__ */

View File

@@ -106,9 +106,8 @@ fgetln(FILE *fp, size_t *lenp)
ret = (char *)fp->_p;
*lenp = len = p - fp->_p;
#ifndef __rtems__
fp->_flags |= __SMOD;
#endif
#endif /* __rtems__ */
fp->_r -= len;
fp->_p = p;
FUNLOCKFILE(fp);