mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-10-14 12:31:27 +08:00
Reduce divergence from FreeBSD sources
This commit is contained in:
@@ -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);
|
||||
|
@@ -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)
|
||||
|
@@ -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);
|
||||
|
@@ -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__ */
|
||||
}
|
||||
|
||||
|
||||
|
@@ -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__ */
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user