summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/Symbols.list59
-rw-r--r--lib/libc/asr/asr.c52
-rw-r--r--lib/libc/asr/asr_debug.c26
-rw-r--r--lib/libc/asr/asr_private.h70
-rw-r--r--lib/libc/asr/asr_utils.c26
-rw-r--r--lib/libc/asr/getaddrinfo_async.c139
-rw-r--r--lib/libc/asr/gethostnamadr_async.c50
-rw-r--r--lib/libc/asr/getnameinfo_async.c14
-rw-r--r--lib/libc/asr/getnetnamadr_async.c44
-rw-r--r--lib/libc/asr/getrrsetbyname_async.c16
-rw-r--r--lib/libc/asr/res_init.c6
-rw-r--r--lib/libc/asr/res_mkquery.c16
-rw-r--r--lib/libc/asr/res_search_async.c27
-rw-r--r--lib/libc/asr/res_send_async.c54
14 files changed, 238 insertions, 361 deletions
diff --git a/lib/libc/Symbols.list b/lib/libc/Symbols.list
index 26ccb98b5c5..9183ae0993a 100644
--- a/lib/libc/Symbols.list
+++ b/lib/libc/Symbols.list
@@ -1005,49 +1005,32 @@ wcwidth
/* asr */
asr_abort
-asr_addr_as_fqdn
-asr_async_free
-asr_async_new
-asr_ctx_unref
-asr_debug
-asr_dname_from_fqdn
-asr_dump_config
-asr_dump_packet
-asr_hostalias
-asr_iter_db
-asr_make_fqdn
-asr_pack_header
-asr_pack_init
-asr_pack_query
-asr_parse_namedb_line
-asr_print_sockaddr
-asr_querystr
-asr_resolver
-asr_resolver_done
asr_run
asr_run_sync
-asr_sockaddr_from_str
-asr_statestr
-asr_strdname
-asr_transitionstr
-asr_unpack_header
-asr_unpack_init
-asr_unpack_query
-asr_unpack_rr
-asr_use_resolver
+freerrset
+getaddrinfo
getaddrinfo_async
+gethostbyaddr
gethostbyaddr_async
-gethostbyaddr_async_ctx
+gethostbyname
+gethostbyname2
gethostbyname2_async
gethostbyname_async
+getnameinfo
getnameinfo_async
+getnetbyaddr
getnetbyaddr_async
+getnetbyname
getnetbyname_async
+getrrsetbyname
getrrsetbyname_async
+res_init
+res_mkquery
+res_query
res_query_async
-res_query_async_ctx
+res_querydomain
+res_search
res_search_async
-res_search_async_ctx
res_send_async
/* net */
@@ -1097,17 +1080,9 @@ ether_ntoa
ether_ntohost
freeaddrinfo
freeifaddrs
-freerrset
gai_strerror
-getaddrinfo
-gethostbyaddr
-gethostbyname2
-gethostbyname
gethostent
getifaddrs
-getnameinfo
-getnetbyaddr
-getnetbyname
getnetent
getpeereid
getprotobyname
@@ -1116,7 +1091,6 @@ getprotobynumber
getprotobynumber_r
getprotoent
getprotoent_r
-getrrsetbyname
getservbyname
getservbyname_r
getservbyport
@@ -1174,11 +1148,6 @@ rcmd
rcmd_af
rcmdsh
recv
-res_init
-res_mkquery
-res_query
-res_querydomain
-res_search
rresvport
rresvport_af
ruserok
diff --git a/lib/libc/asr/asr.c b/lib/libc/asr/asr.c
index c8008681b5e..8c3f15e8f0c 100644
--- a/lib/libc/asr/asr.c
+++ b/lib/libc/asr/asr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: asr.c,v 1.39 2015/09/02 13:47:47 deraadt Exp $ */
+/* $OpenBSD: asr.c,v 1.40 2015/09/09 15:49:34 deraadt Exp $ */
/*
* Copyright (c) 2010-2012 Eric Faurot <eric@openbsd.org>
*
@@ -88,7 +88,7 @@ static struct asr *_asr = NULL;
/* Allocate and configure an async "resolver". */
void *
-asr_resolver(const char *conf)
+_asr_resolver(const char *conf)
{
static int init = 0;
struct asr *asr;
@@ -157,7 +157,7 @@ asr_resolver(const char *conf)
* Drop the reference to the current context.
*/
void
-asr_resolver_done(void *arg)
+_asr_resolver_done(void *arg)
{
struct asr *asr = arg;
struct asr **priv;
@@ -170,7 +170,7 @@ asr_resolver_done(void *arg)
*priv = NULL;
}
- asr_ctx_unref(asr->a_ctx);
+ _asr_ctx_unref(asr->a_ctx);
free(asr->a_path);
free(asr);
}
@@ -181,7 +181,7 @@ asr_resolver_done(void *arg)
void
asr_abort(struct asr_query *as)
{
- asr_async_free(as);
+ _asr_async_free(as);
}
/*
@@ -205,7 +205,7 @@ asr_run(struct asr_query *as, struct asr_result *ar)
DPRINT(" fd=%i timeout=%i", ar->ar_fd, ar->ar_timeout);
DPRINT("\n");
if (r == ASYNC_DONE)
- asr_async_free(as);
+ _asr_async_free(as);
errno = saved_errno;
@@ -245,7 +245,7 @@ asr_run_sync(struct asr_query *as, struct asr_result *ar)
* is running.
*/
struct asr_query *
-asr_async_new(struct asr_ctx *ac, int type)
+_asr_async_new(struct asr_ctx *ac, int type)
{
struct asr_query *as;
@@ -267,7 +267,7 @@ asr_async_new(struct asr_ctx *ac, int type)
* Free an async query and unref the associated context.
*/
void
-asr_async_free(struct asr_query *as)
+_asr_async_free(struct asr_query *as)
{
DPRINT("asr: asr_async_free(%p)\n", as);
switch (as->as_type) {
@@ -284,14 +284,14 @@ asr_async_free(struct asr_query *as)
case ASR_SEARCH:
if (as->as.search.subq)
- asr_async_free(as->as.search.subq);
+ _asr_async_free(as->as.search.subq);
if (as->as.search.name)
free(as->as.search.name);
break;
case ASR_GETRRSETBYNAME:
if (as->as.rrset.subq)
- asr_async_free(as->as.rrset.subq);
+ _asr_async_free(as->as.rrset.subq);
if (as->as.rrset.name)
free(as->as.rrset.name);
break;
@@ -299,7 +299,7 @@ asr_async_free(struct asr_query *as)
case ASR_GETHOSTBYNAME:
case ASR_GETHOSTBYADDR:
if (as->as.hostnamadr.subq)
- asr_async_free(as->as.hostnamadr.subq);
+ _asr_async_free(as->as.hostnamadr.subq);
if (as->as.hostnamadr.name)
free(as->as.hostnamadr.name);
break;
@@ -307,14 +307,14 @@ asr_async_free(struct asr_query *as)
case ASR_GETNETBYNAME:
case ASR_GETNETBYADDR:
if (as->as.netnamadr.subq)
- asr_async_free(as->as.netnamadr.subq);
+ _asr_async_free(as->as.netnamadr.subq);
if (as->as.netnamadr.name)
free(as->as.netnamadr.name);
break;
case ASR_GETADDRINFO:
if (as->as.ai.subq)
- asr_async_free(as->as.ai.subq);
+ _asr_async_free(as->as.ai.subq);
if (as->as.ai.aifirst)
freeaddrinfo(as->as.ai.aifirst);
if (as->as.ai.hostname)
@@ -327,11 +327,11 @@ asr_async_free(struct asr_query *as)
case ASR_GETNAMEINFO:
if (as->as.ni.subq)
- asr_async_free(as->as.ni.subq);
+ _asr_async_free(as->as.ni.subq);
break;
}
- asr_ctx_unref(as->as_ctx);
+ _asr_ctx_unref(as->as_ctx);
free(as);
}
@@ -341,7 +341,7 @@ asr_async_free(struct asr_query *as)
* using this context.
*/
struct asr_ctx *
-asr_use_resolver(void *arg)
+_asr_use_resolver(void *arg)
{
struct asr *asr = arg;
struct asr **priv;
@@ -351,7 +351,7 @@ asr_use_resolver(void *arg)
priv = _THREAD_PRIVATE(_asr, _asr, &_asr);
if (*priv == NULL) {
DPRINT("setting up thread-local resolver\n");
- *priv = asr_resolver(NULL);
+ *priv = _asr_resolver(NULL);
}
asr = *priv;
}
@@ -375,7 +375,7 @@ asr_ctx_ref(struct asr_ctx *ac)
* count drops to 0.
*/
void
-asr_ctx_unref(struct asr_ctx *ac)
+_asr_ctx_unref(struct asr_ctx *ac)
{
DPRINT("asr: asr_ctx_unref(ctx=%p) refcount=%i\n", ac,
ac ? ac->ac_refcount : 0);
@@ -454,7 +454,7 @@ asr_check_reload(struct asr *asr)
asr_ctx_envopts(ac);
#endif
if (asr->a_ctx)
- asr_ctx_unref(asr->a_ctx);
+ _asr_ctx_unref(asr->a_ctx);
asr->a_ctx = ac;
}
@@ -467,7 +467,7 @@ asr_check_reload(struct asr *asr)
* error.
*/
size_t
-asr_make_fqdn(const char *name, const char *domain, char *buf, size_t buflen)
+_asr_make_fqdn(const char *name, const char *domain, char *buf, size_t buflen)
{
size_t len;
@@ -548,7 +548,7 @@ asr_ctx_add_searchdomain(struct asr_ctx *ac, const char *domain)
if (ac->ac_domcount == ASR_MAXDOM)
return (-1);
- if (asr_make_fqdn(domain, NULL, buf, sizeof(buf)) == 0)
+ if (_asr_make_fqdn(domain, NULL, buf, sizeof(buf)) == 0)
return (-1);
if ((ac->ac_dom[ac->ac_domcount] = strdup(buf)) == NULL)
@@ -817,7 +817,7 @@ asr_parse_nameserver(struct sockaddr *sa, const char *s)
return (-1);
}
- if (asr_sockaddr_from_str(sa, PF_UNSPEC, s) == -1)
+ if (_asr_sockaddr_from_str(sa, PF_UNSPEC, s) == -1)
return (-1);
if (sa->sa_family == PF_INET)
@@ -834,7 +834,7 @@ asr_parse_nameserver(struct sockaddr *sa, const char *s)
* truncated if it exceeds "max" chars. The function returns "buf".
*/
char *
-asr_strdname(const char *_dname, char *buf, size_t max)
+_asr_strdname(const char *_dname, char *buf, size_t max)
{
const unsigned char *dname = _dname;
char *res;
@@ -869,7 +869,7 @@ asr_strdname(const char *_dname, char *buf, size_t max)
* size "ntoken" and returns the number of token on the line.
*/
int
-asr_parse_namedb_line(FILE *file, char **tokens, int ntoken, char *lbuf, size_t sz)
+_asr_parse_namedb_line(FILE *file, char **tokens, int ntoken, char *lbuf, size_t sz)
{
size_t len;
char *buf;
@@ -902,7 +902,7 @@ asr_parse_namedb_line(FILE *file, char **tokens, int ntoken, char *lbuf, size_t
* Return 0 on success, or -1 if no more DBs is available.
*/
int
-asr_iter_db(struct asr_query *as)
+_asr_iter_db(struct asr_query *as)
{
if (as->as_db_idx >= as->as_ctx->ac_dbcount) {
DPRINT("asr_iter_db: done\n");
@@ -921,7 +921,7 @@ asr_iter_db(struct asr_query *as)
* return "abuf". Otherwise return NULL.
*/
char *
-asr_hostalias(struct asr_ctx *ac, const char *name, char *abuf, size_t abufsz)
+_asr_hostalias(struct asr_ctx *ac, const char *name, char *abuf, size_t abufsz)
{
#if ASR_OPT_HOSTALIASES
FILE *fp;
diff --git a/lib/libc/asr/asr_debug.c b/lib/libc/asr/asr_debug.c
index 2abb6e15140..527b2b55606 100644
--- a/lib/libc/asr/asr_debug.c
+++ b/lib/libc/asr/asr_debug.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: asr_debug.c,v 1.19 2015/06/20 01:16:25 jca Exp $ */
+/* $OpenBSD: asr_debug.c,v 1.20 2015/09/09 15:49:34 deraadt Exp $ */
/*
* Copyright (c) 2012 Eric Faurot <eric@openbsd.org>
*
@@ -55,7 +55,7 @@ rcodetostr(uint16_t v)
static const char *
print_dname(const char *_dname, char *buf, size_t max)
{
- return (asr_strdname(_dname, buf, max));
+ return (_asr_strdname(_dname, buf, max));
}
static const char *
@@ -162,7 +162,7 @@ print_header(const struct asr_dns_header *h, char *buf, size_t max)
}
void
-asr_dump_packet(FILE *f, const void *data, size_t len)
+_asr_dump_packet(FILE *f, const void *data, size_t len)
{
char buf[1024];
struct asr_unpack p;
@@ -174,9 +174,9 @@ asr_dump_packet(FILE *f, const void *data, size_t len)
if (f == NULL)
return;
- asr_unpack_init(&p, data, len);
+ _asr_unpack_init(&p, data, len);
- if (asr_unpack_header(&p, &h) == -1) {
+ if (_asr_unpack_header(&p, &h) == -1) {
fprintf(f, ";; BAD PACKET: %s\n", p.err);
return;
}
@@ -186,7 +186,7 @@ asr_dump_packet(FILE *f, const void *data, size_t len)
if (h.qdcount)
fprintf(f, ";; QUERY SECTION:\n");
for (i = 0; i < h.qdcount; i++) {
- if (asr_unpack_query(&p, &q) == -1)
+ if (_asr_unpack_query(&p, &q) == -1)
goto error;
fprintf(f, "%s\n", print_query(&q, buf, sizeof buf));
}
@@ -204,7 +204,7 @@ asr_dump_packet(FILE *f, const void *data, size_t len)
if (i == ar)
fprintf(f, "\n;; ADDITIONAL SECTION:\n");
- if (asr_unpack_rr(&p, &rr) == -1)
+ if (_asr_unpack_rr(&p, &rr) == -1)
goto error;
fprintf(f, "%s\n", print_rr(&rr, buf, sizeof buf));
}
@@ -219,7 +219,7 @@ asr_dump_packet(FILE *f, const void *data, size_t len)
}
const char *
-asr_print_sockaddr(const struct sockaddr *sa, char *buf, size_t len)
+_asr_print_sockaddr(const struct sockaddr *sa, char *buf, size_t len)
{
char h[256];
int portno;
@@ -250,7 +250,7 @@ asr_print_sockaddr(const struct sockaddr *sa, char *buf, size_t len)
}
void
-asr_dump_config(FILE *f, struct asr *a)
+_asr_dump_config(FILE *f, struct asr *a)
{
char buf[256];
int i;
@@ -300,7 +300,7 @@ asr_dump_config(FILE *f, struct asr *a)
ac->ac_nstimeout,
ac->ac_nsretries);
for (i = 0; i < ac->ac_nscount; i++)
- fprintf(f, " %s\n", asr_print_sockaddr(ac->ac_ns[i], buf,
+ fprintf(f, " %s\n", _asr_print_sockaddr(ac->ac_ns[i], buf,
sizeof buf));
fprintf(f, "LOOKUP %s", ac->ac_db);
fprintf(f, "\n------------------------------------\n");
@@ -309,7 +309,7 @@ asr_dump_config(FILE *f, struct asr *a)
#define CASE(n) case n: return #n
const char *
-asr_statestr(int state)
+_asr_statestr(int state)
{
switch (state) {
CASE(ASR_STATE_INIT);
@@ -332,7 +332,7 @@ asr_statestr(int state)
};
const char *
-asr_querystr(int type)
+_asr_querystr(int type)
{
switch (type) {
CASE(ASR_SEND);
@@ -350,7 +350,7 @@ asr_querystr(int type)
}
const char *
-asr_transitionstr(int type)
+_asr_transitionstr(int type)
{
switch (type) {
CASE(ASYNC_COND);
diff --git a/lib/libc/asr/asr_private.h b/lib/libc/asr/asr_private.h
index cd508cf5726..13effd7f134 100644
--- a/lib/libc/asr/asr_private.h
+++ b/lib/libc/asr/asr_private.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: asr_private.h,v 1.31 2015/06/20 01:16:25 jca Exp $ */
+/* $OpenBSD: asr_private.h,v 1.32 2015/09/09 15:49:34 deraadt Exp $ */
/*
* Copyright (c) 2012 Eric Faurot <eric@openbsd.org>
*
@@ -297,37 +297,41 @@ enum asr_state {
};
+__BEGIN_HIDDEN_DECLS
+
/* asr_utils.c */
-void asr_pack_init(struct asr_pack *, char *, size_t);
-int asr_pack_header(struct asr_pack *, const struct asr_dns_header *);
-int asr_pack_query(struct asr_pack *, uint16_t, uint16_t, const char *);
-void asr_unpack_init(struct asr_unpack *, const char *, size_t);
-int asr_unpack_header(struct asr_unpack *, struct asr_dns_header *);
-int asr_unpack_query(struct asr_unpack *, struct asr_dns_query *);
-int asr_unpack_rr(struct asr_unpack *, struct asr_dns_rr *);
-int asr_sockaddr_from_str(struct sockaddr *, int, const char *);
-ssize_t asr_dname_from_fqdn(const char *, char *, size_t);
-ssize_t asr_addr_as_fqdn(const char *, int, char *, size_t);
+void _asr_pack_init(struct asr_pack *, char *, size_t);
+int _asr_pack_header(struct asr_pack *, const struct asr_dns_header *);
+int _asr_pack_query(struct asr_pack *, uint16_t, uint16_t, const char *);
+void _asr_unpack_init(struct asr_unpack *, const char *, size_t);
+int _asr_unpack_header(struct asr_unpack *, struct asr_dns_header *);
+int _asr_unpack_query(struct asr_unpack *, struct asr_dns_query *);
+int _asr_unpack_rr(struct asr_unpack *, struct asr_dns_rr *);
+int _asr_sockaddr_from_str(struct sockaddr *, int, const char *);
+ssize_t _asr_dname_from_fqdn(const char *, char *, size_t);
+ssize_t _asr_addr_as_fqdn(const char *, int, char *, size_t);
/* asr.c */
-void *asr_resolver(const char *);
-void asr_resolver_done(void *);
-struct asr_ctx *asr_use_resolver(void *);
-void asr_ctx_unref(struct asr_ctx *);
-struct asr_query *asr_async_new(struct asr_ctx *, int);
-void asr_async_free(struct asr_query *);
-size_t asr_make_fqdn(const char *, const char *, char *, size_t);
-char *asr_strdname(const char *, char *, size_t);
-int asr_iter_db(struct asr_query *);
-int asr_parse_namedb_line(FILE *, char **, int, char *, size_t);
-char *asr_hostalias(struct asr_ctx *, const char *, char *, size_t);
+void *_asr_resolver(const char *);
+void _asr_resolver_done(void *);
+struct asr_ctx *_asr_use_resolver(void *);
+void _asr_ctx_unref(struct asr_ctx *);
+struct asr_query *_asr_async_new(struct asr_ctx *, int);
+void _asr_async_free(struct asr_query *);
+size_t _asr_make_fqdn(const char *, const char *, char *, size_t);
+char *_asr_strdname(const char *, char *, size_t);
+int _asr_iter_db(struct asr_query *);
+int _asr_parse_namedb_line(FILE *, char **, int, char *, size_t);
+char *_asr_hostalias(struct asr_ctx *, const char *, char *, size_t);
/* *_async.c */
-struct asr_query *res_query_async_ctx(const char *, int, int, struct asr_ctx *);
-struct asr_query *res_search_async_ctx(const char *, int, int, struct asr_ctx *);
-struct asr_query *gethostbyaddr_async_ctx(const void *, socklen_t, int,
+struct asr_query *_res_query_async_ctx(const char *, int, int, struct asr_ctx *);
+struct asr_query *_res_search_async_ctx(const char *, int, int, struct asr_ctx *);
+struct asr_query *_gethostbyaddr_async_ctx(const void *, socklen_t, int,
struct asr_ctx *);
+int _asr_iter_domain(struct asr_query *, const char *, char *, size_t);
+
#ifdef DEBUG
#define DPRINT(...) do { if(asr_debug) { \
@@ -339,14 +343,14 @@ struct asr_query *gethostbyaddr_async_ctx(const void *, socklen_t, int,
fprintf(asr_debug, "--------------\n"); \
} } while (0)
-const char *asr_querystr(int);
-const char *asr_statestr(int);
-const char *asr_transitionstr(int);
-const char *asr_print_sockaddr(const struct sockaddr *, char *, size_t);
-void asr_dump_config(FILE *, struct asr *);
-void asr_dump_packet(FILE *, const void *, size_t);
+const char *_asr_querystr(int);
+const char *_asr_statestr(int);
+const char *_asr_transitionstr(int);
+const char *_asr_print_sockaddr(const struct sockaddr *, char *, size_t);
+void _asr_dump_config(FILE *, struct asr *);
+void _asr_dump_packet(FILE *, const void *, size_t);
-extern FILE * asr_debug;
+extern FILE *_asr_debug;
#else /* DEBUG */
@@ -362,3 +366,5 @@ extern FILE * asr_debug;
asr_statestr((a)->as_state), \
asr_statestr((s))); \
(a)->as_state = (s); } while (0)
+
+__END_HIDDEN_DECLS
diff --git a/lib/libc/asr/asr_utils.c b/lib/libc/asr/asr_utils.c
index 2d90f1c8fb4..44a89114f4a 100644
--- a/lib/libc/asr/asr_utils.c
+++ b/lib/libc/asr/asr_utils.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: asr_utils.c,v 1.12 2014/03/26 18:13:15 eric Exp $ */
+/* $OpenBSD: asr_utils.c,v 1.13 2015/09/09 15:49:34 deraadt Exp $ */
/*
* Copyright (c) 2009-2012 Eric Faurot <eric@faurot.net>
*
@@ -59,7 +59,7 @@ dname_check_label(const char *s, size_t l)
}
ssize_t
-asr_dname_from_fqdn(const char *str, char *dst, size_t max)
+_asr_dname_from_fqdn(const char *str, char *dst, size_t max)
{
ssize_t res;
size_t l, n;
@@ -162,7 +162,7 @@ dname_expand(const unsigned char *data, size_t len, size_t offset,
}
void
-asr_pack_init(struct asr_pack *pack, char *buf, size_t len)
+_asr_pack_init(struct asr_pack *pack, char *buf, size_t len)
{
pack->buf = buf;
pack->len = len;
@@ -171,7 +171,7 @@ asr_pack_init(struct asr_pack *pack, char *buf, size_t len)
}
void
-asr_unpack_init(struct asr_unpack *unpack, const char *buf, size_t len)
+_asr_unpack_init(struct asr_unpack *unpack, const char *buf, size_t len)
{
unpack->buf = buf;
unpack->len = len;
@@ -252,7 +252,7 @@ unpack_dname(struct asr_unpack *p, char *dst, size_t max)
}
int
-asr_unpack_header(struct asr_unpack *p, struct asr_dns_header *h)
+_asr_unpack_header(struct asr_unpack *p, struct asr_dns_header *h)
{
if (unpack_data(p, h, HFIXEDSZ) == -1)
return (-1);
@@ -267,7 +267,7 @@ asr_unpack_header(struct asr_unpack *p, struct asr_dns_header *h)
}
int
-asr_unpack_query(struct asr_unpack *p, struct asr_dns_query *q)
+_asr_unpack_query(struct asr_unpack *p, struct asr_dns_query *q)
{
unpack_dname(p, q->q_dname, sizeof(q->q_dname));
unpack_u16(p, &q->q_type);
@@ -277,7 +277,7 @@ asr_unpack_query(struct asr_unpack *p, struct asr_dns_query *q)
}
int
-asr_unpack_rr(struct asr_unpack *p, struct asr_dns_rr *rr)
+_asr_unpack_rr(struct asr_unpack *p, struct asr_dns_rr *rr)
{
uint16_t rdlen;
size_t save_offset;
@@ -390,7 +390,7 @@ pack_dname(struct asr_pack *p, const char *dname)
}
int
-asr_pack_header(struct asr_pack *p, const struct asr_dns_header *h)
+_asr_pack_header(struct asr_pack *p, const struct asr_dns_header *h)
{
struct asr_dns_header c;
@@ -405,7 +405,7 @@ asr_pack_header(struct asr_pack *p, const struct asr_dns_header *h)
}
int
-asr_pack_query(struct asr_pack *p, uint16_t type, uint16_t class, const char *dname)
+_asr_pack_query(struct asr_pack *p, uint16_t type, uint16_t class, const char *dname)
{
pack_dname(p, dname);
pack_u16(p, type);
@@ -415,7 +415,7 @@ asr_pack_query(struct asr_pack *p, uint16_t type, uint16_t class, const char *dn
}
int
-asr_sockaddr_from_str(struct sockaddr *sa, int family, const char *str)
+_asr_sockaddr_from_str(struct sockaddr *sa, int family, const char *str)
{
struct in_addr ina;
struct in6_addr in6a;
@@ -426,9 +426,9 @@ asr_sockaddr_from_str(struct sockaddr *sa, int family, const char *str)
switch (family) {
case PF_UNSPEC:
- if (asr_sockaddr_from_str(sa, PF_INET, str) == 0)
+ if (_asr_sockaddr_from_str(sa, PF_INET, str) == 0)
return (0);
- return asr_sockaddr_from_str(sa, PF_INET6, str);
+ return _asr_sockaddr_from_str(sa, PF_INET6, str);
case PF_INET:
if (inet_pton(PF_INET, str, &ina) != 1)
@@ -485,7 +485,7 @@ asr_sockaddr_from_str(struct sockaddr *sa, int family, const char *str)
}
ssize_t
-asr_addr_as_fqdn(const char *addr, int family, char *dst, size_t max)
+_asr_addr_as_fqdn(const char *addr, int family, char *dst, size_t max)
{
const struct in6_addr *in6_addr;
in_addr_t in_addr;
diff --git a/lib/libc/asr/getaddrinfo_async.c b/lib/libc/asr/getaddrinfo_async.c
index 5974bf39b63..bccf26123a3 100644
--- a/lib/libc/asr/getaddrinfo_async.c
+++ b/lib/libc/asr/getaddrinfo_async.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: getaddrinfo_async.c,v 1.41 2015/08/16 20:37:25 jca Exp $ */
+/* $OpenBSD: getaddrinfo_async.c,v 1.42 2015/09/09 15:49:34 deraadt Exp $ */
/*
* Copyright (c) 2012 Eric Faurot <eric@openbsd.org>
*
@@ -51,7 +51,6 @@ struct match {
static int getaddrinfo_async_run(struct asr_query *, struct asr_result *);
static int get_port(const char *, const char *, int);
static int iter_family(struct asr_query *, int);
-static int iter_domain(struct asr_query *, const char *, char *, size_t);
static int addrinfo_add(struct asr_query *, const struct sockaddr *, const char *);
static int addrinfo_from_file(struct asr_query *, int, FILE *);
static int addrinfo_from_pkt(struct asr_query *, char *, size_t);
@@ -90,13 +89,13 @@ getaddrinfo_async(const char *hostname, const char *servname,
struct asr_query *as;
char alias[MAXDNAME];
- ac = asr_use_resolver(asr);
- if ((as = asr_async_new(ac, ASR_GETADDRINFO)) == NULL)
+ ac = _asr_use_resolver(asr);
+ if ((as = _asr_async_new(ac, ASR_GETADDRINFO)) == NULL)
goto abort; /* errno set */
as->as_run = getaddrinfo_async_run;
if (hostname) {
- if (asr_hostalias(ac, hostname, alias, sizeof(alias)))
+ if (_asr_hostalias(ac, hostname, alias, sizeof(alias)))
hostname = alias;
if ((as->as.ai.hostname = strdup(hostname)) == NULL)
goto abort; /* errno set */
@@ -111,12 +110,12 @@ getaddrinfo_async(const char *hostname, const char *servname,
as->as.ai.hints.ai_flags = AI_ADDRCONFIG;
}
- asr_ctx_unref(ac);
+ _asr_ctx_unref(ac);
return (as);
abort:
if (as)
- asr_async_free(as);
- asr_ctx_unref(ac);
+ _asr_async_free(as);
+ _asr_ctx_unref(ac);
return (NULL);
}
@@ -260,7 +259,7 @@ getaddrinfo_async_run(struct asr_query *as, struct asr_result *ar)
str = (ai->ai_flags & AI_PASSIVE) ? \
"::" : "::1";
/* This can't fail */
- asr_sockaddr_from_str(&sa.sa, family, str);
+ _asr_sockaddr_from_str(&sa.sa, family, str);
if ((r = addrinfo_add(as, &sa.sa, NULL))) {
ar->ar_gai_errno = r;
break;
@@ -278,7 +277,7 @@ getaddrinfo_async_run(struct asr_query *as, struct asr_result *ar)
family != -1;
family = iter_family(as, 0)) {
- if (asr_sockaddr_from_str(&sa.sa, family,
+ if (_asr_sockaddr_from_str(&sa.sa, family,
as->as.ai.hostname) == -1)
continue;
@@ -301,7 +300,7 @@ getaddrinfo_async_run(struct asr_query *as, struct asr_result *ar)
break;
case ASR_STATE_NEXT_DB:
- if (asr_iter_db(as) == -1) {
+ if (_asr_iter_db(as) == -1) {
async_set_state(as, ASR_STATE_NOT_FOUND);
break;
}
@@ -336,7 +335,7 @@ getaddrinfo_async_run(struct asr_query *as, struct asr_result *ar)
free(as->as.ai.fqdn);
as->as.ai.fqdn = NULL;
- r = iter_domain(as, as->as.ai.hostname, fqdn, sizeof(fqdn));
+ r = _asr_iter_domain(as, as->as.ai.hostname, fqdn, sizeof(fqdn));
if (r == -1) {
async_set_state(as, ASR_STATE_NEXT_DB);
break;
@@ -380,7 +379,7 @@ getaddrinfo_async_run(struct asr_query *as, struct asr_result *ar)
break;
}
- as->as.ai.subq = res_query_async_ctx(as->as.ai.fqdn,
+ as->as.ai.subq = _res_query_async_ctx(as->as.ai.fqdn,
C_IN, (family == AF_INET6) ? T_AAAA : T_A,
as->as_ctx);
@@ -571,7 +570,7 @@ domcat(const char *name, const char *domain, char *buf, size_t buflen)
{
size_t r;
- r = asr_make_fqdn(name, domain, buf, buflen);
+ r = _asr_make_fqdn(name, domain, buf, buflen);
if (r == 0)
return (0);
buf[r - 1] = '\0';
@@ -580,102 +579,6 @@ domcat(const char *name, const char *domain, char *buf, size_t buflen)
}
/*
- * Implement the search domain strategy.
- *
- * XXX duplicate from res_search_async
- *
- * This function works as a generator that constructs complete domains in
- * buffer "buf" of size "len" for the given host name "name", according to the
- * search rules defined by the resolving context. It is supposed to be called
- * multiple times (with the same name) to generate the next possible domain
- * name, if any.
- *
- * It returns -1 if all possibilities have been exhausted, 0 if there was an
- * error generating the next name, or the resulting name length.
- */
-static int
-iter_domain(struct asr_query *as, const char *name, char * buf, size_t len)
-{
- const char *c;
- int dots;
-
- switch (as->as_dom_step) {
-
- case DOM_INIT:
- /* First call */
-
- /*
- * If "name" is an FQDN, that's the only result and we
- * don't try anything else.
- */
- if (strlen(name) && name[strlen(name) - 1] == '.') {
- DPRINT("asr: iter_domain(\"%s\") fqdn\n", name);
- as->as_dom_flags |= ASYNC_DOM_FQDN;
- as->as_dom_step = DOM_DONE;
- return (domcat(name, NULL, buf, len));
- }
-
- /*
- * Otherwise, we iterate through the specified search domains.
- */
- as->as_dom_step = DOM_DOMAIN;
- as->as_dom_idx = 0;
-
- /*
- * If "name" as enough dots, use it as-is first, as indicated
- * in resolv.conf(5).
- */
- dots = 0;
- for (c = name; *c; c++)
- dots += (*c == '.');
- if (dots >= as->as_ctx->ac_ndots) {
- DPRINT("asr: iter_domain(\"%s\") ndots\n", name);
- as->as_dom_flags |= ASYNC_DOM_NDOTS;
- if (strlcpy(buf, name, len) >= len)
- return (0);
- return (strlen(buf));
- }
- /* Otherwise, starts using the search domains */
- /* FALLTHROUGH */
-
- case DOM_DOMAIN:
- if (as->as_dom_idx < as->as_ctx->ac_domcount &&
- (as->as_ctx->ac_options & RES_DNSRCH || (
- as->as_ctx->ac_options & RES_DEFNAMES &&
- as->as_dom_idx == 0 &&
- strchr(name, '.') == NULL))) {
- DPRINT("asr: iter_domain(\"%s\") domain \"%s\"\n",
- name, as->as_ctx->ac_dom[as->as_dom_idx]);
- as->as_dom_flags |= ASYNC_DOM_DOMAIN;
- return (domcat(name,
- as->as_ctx->ac_dom[as->as_dom_idx++], buf, len));
- }
-
- /* No more domain to try. */
-
- as->as_dom_step = DOM_DONE;
-
- /*
- * If the name was not tried as an absolute name before,
- * do it now.
- */
- if (!(as->as_dom_flags & ASYNC_DOM_NDOTS)) {
- DPRINT("asr: iter_domain(\"%s\") as is\n", name);
- as->as_dom_flags |= ASYNC_DOM_ASIS;
- if (strlcpy(buf, name, len) >= len)
- return (0);
- return (strlen(buf));
- }
- /* Otherwise, we are done. */
-
- case DOM_DONE:
- default:
- DPRINT("asr: iter_domain(\"%s\") done\n", name);
- return (-1);
- }
-}
-
-/*
* Use the sockaddr at "sa" to extend the result list on the "as" context,
* with the specified canonical name "cname". This function adds one
* entry per protocol/socktype match.
@@ -754,14 +657,14 @@ addrinfo_from_file(struct asr_query *as, int family, FILE *f)
} u;
for (;;) {
- n = asr_parse_namedb_line(f, tokens, MAXTOKEN, buf, sizeof(buf));
+ n = _asr_parse_namedb_line(f, tokens, MAXTOKEN, buf, sizeof(buf));
if (n == -1)
break; /* ignore errors reading the file */
for (i = 1; i < n; i++) {
if (strcasecmp(as->as.ai.hostname, tokens[i]))
continue;
- if (asr_sockaddr_from_str(&u.sa, family, tokens[0]) == -1)
+ if (_asr_sockaddr_from_str(&u.sa, family, tokens[0]) == -1)
continue;
break;
}
@@ -794,13 +697,13 @@ addrinfo_from_pkt(struct asr_query *as, char *pkt, size_t pktlen)
} u;
char buf[MAXDNAME], *c;
- asr_unpack_init(&p, pkt, pktlen);
- asr_unpack_header(&p, &h);
+ _asr_unpack_init(&p, pkt, pktlen);
+ _asr_unpack_header(&p, &h);
for (; h.qdcount; h.qdcount--)
- asr_unpack_query(&p, &q);
+ _asr_unpack_query(&p, &q);
for (i = 0; i < h.ancount; i++) {
- asr_unpack_rr(&p, &rr);
+ _asr_unpack_rr(&p, &rr);
if (rr.rr_type != q.q_type ||
rr.rr_class != q.q_class)
continue;
@@ -820,7 +723,7 @@ addrinfo_from_pkt(struct asr_query *as, char *pkt, size_t pktlen)
continue;
if (as->as.ai.hints.ai_flags & AI_CANONNAME) {
- asr_strdname(rr.rr_dname, buf, sizeof buf);
+ _asr_strdname(rr.rr_dname, buf, sizeof buf);
buf[strlen(buf) - 1] = '\0';
c = res_hnok(buf) ? buf : NULL;
} else if (as->as.ai.hints.ai_flags & AI_FQDN)
@@ -915,7 +818,7 @@ addrinfo_from_yp(struct asr_query *as, int family, char *line)
if (ntok < 2)
continue;
- if (asr_sockaddr_from_str(&u.sa, family, tokens[0]) == -1)
+ if (_asr_sockaddr_from_str(&u.sa, family, tokens[0]) == -1)
continue;
if (as->as.ai.hints.ai_flags & (AI_CANONNAME | AI_FQDN))
diff --git a/lib/libc/asr/gethostnamadr_async.c b/lib/libc/asr/gethostnamadr_async.c
index 2d895aad400..bf098e351d4 100644
--- a/lib/libc/asr/gethostnamadr_async.c
+++ b/lib/libc/asr/gethostnamadr_async.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: gethostnamadr_async.c,v 1.37 2015/05/29 08:49:37 eric Exp $ */
+/* $OpenBSD: gethostnamadr_async.c,v 1.38 2015/09/09 15:49:34 deraadt Exp $ */
/*
* Copyright (c) 2012 Eric Faurot <eric@openbsd.org>
*
@@ -84,8 +84,8 @@ gethostbyname2_async(const char *name, int af, void *asr)
return (NULL);
}
- ac = asr_use_resolver(asr);
- if ((as = asr_async_new(ac, ASR_GETHOSTBYNAME)) == NULL)
+ ac = _asr_use_resolver(asr);
+ if ((as = _asr_async_new(ac, ASR_GETHOSTBYNAME)) == NULL)
goto abort; /* errno set */
as->as_run = gethostnamadr_async_run;
@@ -98,13 +98,13 @@ gethostbyname2_async(const char *name, int af, void *asr)
if (as->as.hostnamadr.name == NULL)
goto abort; /* errno set */
- asr_ctx_unref(ac);
+ _asr_ctx_unref(ac);
return (as);
abort:
if (as)
- asr_async_free(as);
- asr_ctx_unref(ac);
+ _asr_async_free(as);
+ _asr_ctx_unref(ac);
return (NULL);
}
@@ -114,20 +114,20 @@ gethostbyaddr_async(const void *addr, socklen_t len, int af, void *asr)
struct asr_ctx *ac;
struct asr_query *as;
- ac = asr_use_resolver(asr);
- as = gethostbyaddr_async_ctx(addr, len, af, ac);
- asr_ctx_unref(ac);
+ ac = _asr_use_resolver(asr);
+ as = _gethostbyaddr_async_ctx(addr, len, af, ac);
+ _asr_ctx_unref(ac);
return (as);
}
struct asr_query *
-gethostbyaddr_async_ctx(const void *addr, socklen_t len, int af,
+_gethostbyaddr_async_ctx(const void *addr, socklen_t len, int af,
struct asr_ctx *ac)
{
struct asr_query *as;
- if ((as = asr_async_new(ac, ASR_GETHOSTBYADDR)) == NULL)
+ if ((as = _asr_async_new(ac, ASR_GETHOSTBYADDR)) == NULL)
goto abort; /* errno set */
as->as_run = gethostnamadr_async_run;
@@ -140,7 +140,7 @@ gethostbyaddr_async_ctx(const void *addr, socklen_t len, int af,
abort:
if (as)
- asr_async_free(as);
+ _asr_async_free(as);
return (NULL);
}
@@ -210,7 +210,7 @@ gethostnamadr_async_run(struct asr_query *as, struct asr_result *ar)
case ASR_STATE_NEXT_DB:
- if (asr_iter_db(as) == -1) {
+ if (_asr_iter_db(as) == -1) {
async_set_state(as, ASR_STATE_NOT_FOUND);
break;
}
@@ -224,14 +224,14 @@ gethostnamadr_async_run(struct asr_query *as, struct asr_result *ar)
if (as->as_type == ASR_GETHOSTBYNAME) {
type = (as->as.hostnamadr.family == AF_INET) ?
T_A : T_AAAA;
- as->as.hostnamadr.subq = res_search_async_ctx(
+ as->as.hostnamadr.subq = _res_search_async_ctx(
as->as.hostnamadr.name,
C_IN, type, as->as_ctx);
} else {
- asr_addr_as_fqdn(as->as.hostnamadr.addr,
+ _asr_addr_as_fqdn(as->as.hostnamadr.addr,
as->as.hostnamadr.family,
name, sizeof(name));
- as->as.hostnamadr.subq = res_query_async_ctx(
+ as->as.hostnamadr.subq = _res_query_async_ctx(
name, C_IN, T_PTR, as->as_ctx);
}
@@ -253,7 +253,7 @@ gethostnamadr_async_run(struct asr_query *as, struct asr_result *ar)
break;
if (as->as_type == ASR_GETHOSTBYNAME) {
- data = asr_hostalias(as->as_ctx,
+ data = _asr_hostalias(as->as_ctx,
as->as.hostnamadr.name, name, sizeof(name));
if (data == NULL)
data = as->as.hostnamadr.name;
@@ -287,7 +287,7 @@ gethostnamadr_async_run(struct asr_query *as, struct asr_result *ar)
if (as->as.hostnamadr.family != AF_INET)
break;
if (as->as_type == ASR_GETHOSTBYNAME) {
- data = asr_hostalias(as->as_ctx,
+ data = _asr_hostalias(as->as_ctx,
as->as.hostnamadr.name, name, sizeof(name));
if (data == NULL)
data = as->as.hostnamadr.name;
@@ -434,7 +434,7 @@ hostent_file_match(FILE *f, int reqtype, int family, const char *data,
int n, i;
for (;;) {
- n = asr_parse_namedb_line(f, tokens, MAXTOKEN, buf, sizeof(buf));
+ n = _asr_parse_namedb_line(f, tokens, MAXTOKEN, buf, sizeof(buf));
if (n == -1) {
errno = 0; /* ignore errors reading the file */
return (NULL);
@@ -490,14 +490,14 @@ hostent_from_packet(int reqtype, int family, char *pkt, size_t pktlen)
if ((h = hostent_alloc(family)) == NULL)
return (NULL);
- asr_unpack_init(&p, pkt, pktlen);
- asr_unpack_header(&p, &hdr);
+ _asr_unpack_init(&p, pkt, pktlen);
+ _asr_unpack_header(&p, &hdr);
for (; hdr.qdcount; hdr.qdcount--)
- asr_unpack_query(&p, &q);
+ _asr_unpack_query(&p, &q);
strlcpy(dname, q.q_dname, sizeof(dname));
for (; hdr.ancount; hdr.ancount--) {
- asr_unpack_rr(&p, &rr);
+ _asr_unpack_rr(&p, &rr);
if (rr.rr_class != C_IN)
continue;
switch (rr.rr_type) {
@@ -582,7 +582,7 @@ hostent_set_cname(struct hostent_ext *h, const char *name, int isdname)
return (-1);
if (isdname) {
- asr_strdname(name, buf, sizeof buf);
+ _asr_strdname(name, buf, sizeof buf);
buf[strlen(buf) - 1] = '\0';
if (!res_hnok(buf))
return (-1);
@@ -612,7 +612,7 @@ hostent_add_alias(struct hostent_ext *h, const char *name, int isdname)
return (0);
if (isdname) {
- asr_strdname(name, buf, sizeof buf);
+ _asr_strdname(name, buf, sizeof buf);
buf[strlen(buf)-1] = '\0';
if (!res_hnok(buf))
return (-1);
diff --git a/lib/libc/asr/getnameinfo_async.c b/lib/libc/asr/getnameinfo_async.c
index 50d65fc38bc..1453fbd7ccf 100644
--- a/lib/libc/asr/getnameinfo_async.c
+++ b/lib/libc/asr/getnameinfo_async.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: getnameinfo_async.c,v 1.9 2014/03/26 18:13:15 eric Exp $ */
+/* $OpenBSD: getnameinfo_async.c,v 1.10 2015/09/09 15:49:34 deraadt Exp $ */
/*
* Copyright (c) 2012 Eric Faurot <eric@openbsd.org>
*
@@ -43,8 +43,8 @@ getnameinfo_async(const struct sockaddr *sa, socklen_t slen, char *host,
struct asr_ctx *ac;
struct asr_query *as;
- ac = asr_use_resolver(asr);
- if ((as = asr_async_new(ac, ASR_GETNAMEINFO)) == NULL)
+ ac = _asr_use_resolver(asr);
+ if ((as = _asr_async_new(ac, ASR_GETNAMEINFO)) == NULL)
goto abort; /* errno set */
as->as_run = getnameinfo_async_run;
@@ -60,13 +60,13 @@ getnameinfo_async(const struct sockaddr *sa, socklen_t slen, char *host,
as->as.ni.servnamelen = servlen;
as->as.ni.flags = flags;
- asr_ctx_unref(ac);
+ _asr_ctx_unref(ac);
return (as);
abort:
if (as)
- asr_async_free(as);
- asr_ctx_unref(ac);
+ _asr_async_free(as);
+ _asr_ctx_unref(ac);
return (NULL);
}
@@ -140,7 +140,7 @@ getnameinfo_async_run(struct asr_query *as, struct asr_result *ar)
/*
* Create a subquery to lookup the address.
*/
- as->as.ni.subq = gethostbyaddr_async_ctx(addr, addrlen,
+ as->as.ni.subq = _gethostbyaddr_async_ctx(addr, addrlen,
as->as.ni.sa.sa.sa_family,
as->as_ctx);
if (as->as.ni.subq == NULL) {
diff --git a/lib/libc/asr/getnetnamadr_async.c b/lib/libc/asr/getnetnamadr_async.c
index 2caa0cc84de..dcf290c4a16 100644
--- a/lib/libc/asr/getnetnamadr_async.c
+++ b/lib/libc/asr/getnetnamadr_async.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: getnetnamadr_async.c,v 1.20 2015/05/29 08:49:37 eric Exp $ */
+/* $OpenBSD: getnetnamadr_async.c,v 1.21 2015/09/09 15:49:34 deraadt Exp $ */
/*
* Copyright (c) 2012 Eric Faurot <eric@openbsd.org>
*
@@ -60,8 +60,8 @@ getnetbyname_async(const char *name, void *asr)
return (NULL);
}
- ac = asr_use_resolver(asr);
- if ((as = asr_async_new(ac, ASR_GETNETBYNAME)) == NULL)
+ ac = _asr_use_resolver(asr);
+ if ((as = _asr_async_new(ac, ASR_GETNETBYNAME)) == NULL)
goto abort; /* errno set */
as->as_run = getnetnamadr_async_run;
@@ -70,13 +70,13 @@ getnetbyname_async(const char *name, void *asr)
if (as->as.netnamadr.name == NULL)
goto abort; /* errno set */
- asr_ctx_unref(ac);
+ _asr_ctx_unref(ac);
return (as);
abort:
if (as)
- asr_async_free(as);
- asr_ctx_unref(ac);
+ _asr_async_free(as);
+ _asr_ctx_unref(ac);
return (NULL);
}
@@ -86,21 +86,21 @@ getnetbyaddr_async(in_addr_t net, int family, void *asr)
struct asr_ctx *ac;
struct asr_query *as;
- ac = asr_use_resolver(asr);
- if ((as = asr_async_new(ac, ASR_GETNETBYADDR)) == NULL)
+ ac = _asr_use_resolver(asr);
+ if ((as = _asr_async_new(ac, ASR_GETNETBYADDR)) == NULL)
goto abort; /* errno set */
as->as_run = getnetnamadr_async_run;
as->as.netnamadr.family = family;
as->as.netnamadr.addr = net;
- asr_ctx_unref(ac);
+ _asr_ctx_unref(ac);
return (as);
abort:
if (as)
- asr_async_free(as);
- asr_ctx_unref(ac);
+ _asr_async_free(as);
+ _asr_ctx_unref(ac);
return (NULL);
}
@@ -137,7 +137,7 @@ getnetnamadr_async_run(struct asr_query *as, struct asr_result *ar)
case ASR_STATE_NEXT_DB:
- if (asr_iter_db(as) == -1) {
+ if (_asr_iter_db(as) == -1) {
async_set_state(as, ASR_STATE_NOT_FOUND);
break;
}
@@ -154,17 +154,17 @@ getnetnamadr_async_run(struct asr_query *as, struct asr_result *ar)
*/
type = T_PTR;
name = as->as.netnamadr.name;
- as->as.netnamadr.subq = res_search_async_ctx(
+ as->as.netnamadr.subq = _res_search_async_ctx(
name, C_IN, type, as->as_ctx);
} else {
type = T_PTR;
name = dname;
in = htonl(as->as.netnamadr.addr);
- asr_addr_as_fqdn((char *)&in,
+ _asr_addr_as_fqdn((char *)&in,
as->as.netnamadr.family,
dname, sizeof(dname));
- as->as.netnamadr.subq = res_query_async_ctx(
+ as->as.netnamadr.subq = _res_query_async_ctx(
name, C_IN, type, as->as_ctx);
}
@@ -288,7 +288,7 @@ netent_file_match(FILE *f, int reqtype, const char *data)
in_addr_t net;
for (;;) {
- n = asr_parse_namedb_line(f, tokens, MAXTOKEN, buf, sizeof(buf));
+ n = _asr_parse_namedb_line(f, tokens, MAXTOKEN, buf, sizeof(buf));
if (n == -1) {
errno = 0; /* ignore errors reading the file */
return (NULL);
@@ -340,12 +340,12 @@ netent_from_packet(int reqtype, char *pkt, size_t pktlen)
if ((n = netent_alloc(AF_INET)) == NULL)
return (NULL);
- asr_unpack_init(&p, pkt, pktlen);
- asr_unpack_header(&p, &hdr);
+ _asr_unpack_init(&p, pkt, pktlen);
+ _asr_unpack_header(&p, &hdr);
for (; hdr.qdcount; hdr.qdcount--)
- asr_unpack_query(&p, &q);
+ _asr_unpack_query(&p, &q);
for (; hdr.ancount; hdr.ancount--) {
- asr_unpack_rr(&p, &rr);
+ _asr_unpack_rr(&p, &rr);
if (rr.rr_class != C_IN)
continue;
switch (rr.rr_type) {
@@ -411,7 +411,7 @@ netent_set_cname(struct netent_ext *n, const char *name, int isdname)
return (-1);
if (isdname) {
- asr_strdname(name, buf, sizeof buf);
+ _asr_strdname(name, buf, sizeof buf);
buf[strlen(buf) - 1] = '\0';
if (!res_hnok(buf))
return (-1);
@@ -442,7 +442,7 @@ netent_add_alias(struct netent_ext *n, const char *name, int isdname)
return (-1);
if (isdname) {
- asr_strdname(name, buf, sizeof buf);
+ _asr_strdname(name, buf, sizeof buf);
buf[strlen(buf)-1] = '\0';
if (!res_hnok(buf))
return (-1);
diff --git a/lib/libc/asr/getrrsetbyname_async.c b/lib/libc/asr/getrrsetbyname_async.c
index 8bc81e628c0..7b885041e5c 100644
--- a/lib/libc/asr/getrrsetbyname_async.c
+++ b/lib/libc/asr/getrrsetbyname_async.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: getrrsetbyname_async.c,v 1.7 2014/03/26 18:13:15 eric Exp $ */
+/* $OpenBSD: getrrsetbyname_async.c,v 1.8 2015/09/09 15:49:34 deraadt Exp $ */
/*
* Copyright (c) 2012 Eric Faurot <eric@openbsd.org>
*
@@ -42,8 +42,8 @@ getrrsetbyname_async(const char *hostname, unsigned int rdclass,
struct asr_ctx *ac;
struct asr_query *as;
- ac = asr_use_resolver(asr);
- if ((as = asr_async_new(ac, ASR_GETRRSETBYNAME)) == NULL)
+ ac = _asr_use_resolver(asr);
+ if ((as = _asr_async_new(ac, ASR_GETRRSETBYNAME)) == NULL)
goto abort; /* errno set */
as->as_run = getrrsetbyname_async_run;
@@ -54,13 +54,13 @@ getrrsetbyname_async(const char *hostname, unsigned int rdclass,
if (as->as.rrset.name == NULL)
goto abort; /* errno set */
- asr_ctx_unref(ac);
+ _asr_ctx_unref(ac);
return (as);
abort:
if (as)
- asr_async_free(as);
+ _asr_async_free(as);
- asr_ctx_unref(ac);
+ _asr_ctx_unref(ac);
return (NULL);
}
@@ -94,7 +94,7 @@ getrrsetbyname_async_run(struct asr_query *as, struct asr_result *ar)
}
/* Create a delegate the lookup to a subquery. */
- as->as.rrset.subq = res_query_async_ctx(
+ as->as.rrset.subq = _res_query_async_ctx(
as->as.rrset.name,
as->as.rrset.class,
as->as.rrset.type,
@@ -170,7 +170,7 @@ getrrsetbyname_async_run(struct asr_query *as, struct asr_result *ar)
/* The rest of this file is taken from the orignal implementation. */
-/* $OpenBSD: getrrsetbyname_async.c,v 1.7 2014/03/26 18:13:15 eric Exp $ */
+/* $OpenBSD: getrrsetbyname_async.c,v 1.8 2015/09/09 15:49:34 deraadt Exp $ */
/*
* Copyright (c) 2001 Jakob Schlyter. All rights reserved.
diff --git a/lib/libc/asr/res_init.c b/lib/libc/asr/res_init.c
index 309f779aac1..130646e01dc 100644
--- a/lib/libc/asr/res_init.c
+++ b/lib/libc/asr/res_init.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: res_init.c,v 1.4 2014/03/26 18:13:15 eric Exp $ */
+/* $OpenBSD: res_init.c,v 1.5 2015/09/09 15:49:34 deraadt Exp $ */
/*
* Copyright (c) 2012 Eric Faurot <eric@openbsd.org>
*
@@ -41,7 +41,7 @@ res_init(void)
struct asr_ctx *ac;
int i;
- ac = asr_use_resolver(NULL);
+ ac = _asr_use_resolver(NULL);
/*
* The first thread to call res_init() will setup the global _res
@@ -82,7 +82,7 @@ res_init(void)
ac->ac_dbcount = strlen(ac->ac_db);
}
- asr_ctx_unref(ac);
+ _asr_ctx_unref(ac);
return (0);
}
diff --git a/lib/libc/asr/res_mkquery.c b/lib/libc/asr/res_mkquery.c
index 27ed21e4d4a..3b169c13194 100644
--- a/lib/libc/asr/res_mkquery.c
+++ b/lib/libc/asr/res_mkquery.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: res_mkquery.c,v 1.8 2014/03/26 18:13:15 eric Exp $ */
+/* $OpenBSD: res_mkquery.c,v 1.9 2015/09/09 15:49:34 deraadt Exp $ */
/*
* Copyright (c) 2012 Eric Faurot <eric@openbsd.org>
*
@@ -51,10 +51,10 @@ res_mkquery(int op, const char *dname, int class, int type,
dname = fqdn;
}
- if (asr_dname_from_fqdn(dname, dn, sizeof(dn)) == -1)
+ if (_asr_dname_from_fqdn(dname, dn, sizeof(dn)) == -1)
return (-1);
- ac = asr_use_resolver(NULL);
+ ac = _asr_use_resolver(NULL);
memset(&h, 0, sizeof h);
h.id = res_randomid();
@@ -62,11 +62,11 @@ res_mkquery(int op, const char *dname, int class, int type,
h.flags |= RD_MASK;
h.qdcount = 1;
- asr_pack_init(&p, buf, buflen);
- asr_pack_header(&p, &h);
- asr_pack_query(&p, type, class, dn);
+ _asr_pack_init(&p, buf, buflen);
+ _asr_pack_header(&p, &h);
+ _asr_pack_query(&p, type, class, dn);
- asr_ctx_unref(ac);
+ _asr_ctx_unref(ac);
if (p.err)
return (-1);
@@ -100,7 +100,7 @@ res_querydomain(const char *name,
domain = ndom;
}
- if (asr_make_fqdn(name, domain, fqdn, sizeof fqdn) == 0) {
+ if (_asr_make_fqdn(name, domain, fqdn, sizeof fqdn) == 0) {
h_errno = NETDB_INTERNAL;
errno = EINVAL;
return (-1);
diff --git a/lib/libc/asr/res_search_async.c b/lib/libc/asr/res_search_async.c
index 2172bfc0d2d..fd6669ca94f 100644
--- a/lib/libc/asr/res_search_async.c
+++ b/lib/libc/asr/res_search_async.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: res_search_async.c,v 1.15 2015/05/25 19:30:25 eric Exp $ */
+/* $OpenBSD: res_search_async.c,v 1.16 2015/09/09 15:49:34 deraadt Exp $ */
/*
* Copyright (c) 2012 Eric Faurot <eric@openbsd.org>
*
@@ -33,7 +33,6 @@
static int res_search_async_run(struct asr_query *, struct asr_result *);
static size_t domcat(const char *, const char *, char *, size_t);
-static int iter_domain(struct asr_query *, const char *, char *, size_t);
/*
* Unlike res_query_async(), this function returns a valid packet only if
@@ -47,15 +46,15 @@ res_search_async(const char *name, int class, int type, void *asr)
DPRINT("asr: res_search_async(\"%s\", %i, %i)\n", name, class, type);
- ac = asr_use_resolver(asr);
- as = res_search_async_ctx(name, class, type, ac);
- asr_ctx_unref(ac);
+ ac = _asr_use_resolver(asr);
+ as = _res_search_async_ctx(name, class, type, ac);
+ _asr_ctx_unref(ac);
return (as);
}
struct asr_query *
-res_search_async_ctx(const char *name, int class, int type, struct asr_ctx *ac)
+_res_search_async_ctx(const char *name, int class, int type, struct asr_ctx *ac)
{
struct asr_query *as;
char alias[MAXDNAME];
@@ -63,10 +62,10 @@ res_search_async_ctx(const char *name, int class, int type, struct asr_ctx *ac)
DPRINT("asr: res_search_async_ctx(\"%s\", %i, %i)\n", name, class,
type);
- if (asr_hostalias(ac, name, alias, sizeof(alias)))
- return res_query_async_ctx(alias, class, type, ac);
+ if (_asr_hostalias(ac, name, alias, sizeof(alias)))
+ return _res_query_async_ctx(alias, class, type, ac);
- if ((as = asr_async_new(ac, ASR_SEARCH)) == NULL)
+ if ((as = _asr_async_new(ac, ASR_SEARCH)) == NULL)
goto err; /* errno set */
as->as_run = res_search_async_run;
if ((as->as.search.name = strdup(name)) == NULL)
@@ -78,7 +77,7 @@ res_search_async_ctx(const char *name, int class, int type, struct asr_ctx *ac)
return (as);
err:
if (as)
- asr_async_free(as);
+ _asr_async_free(as);
return (NULL);
}
@@ -112,7 +111,7 @@ res_search_async_run(struct asr_query *as, struct asr_result *ar)
*/
as->as_dom_flags = 0;
- r = iter_domain(as, as->as.search.name, fqdn, sizeof(fqdn));
+ r = _asr_iter_domain(as, as->as.search.name, fqdn, sizeof(fqdn));
if (r == -1) {
async_set_state(as, ASR_STATE_NOT_FOUND);
break;
@@ -125,7 +124,7 @@ res_search_async_run(struct asr_query *as, struct asr_result *ar)
async_set_state(as, ASR_STATE_HALT);
break;
}
- as->as.search.subq = res_query_async_ctx(fqdn,
+ as->as.search.subq = _res_query_async_ctx(fqdn,
as->as.search.class, as->as.search.type, as->as_ctx);
if (as->as.search.subq == NULL) {
ar->ar_errno = errno;
@@ -221,7 +220,7 @@ domcat(const char *name, const char *domain, char *buf, size_t buflen)
{
size_t r;
- r = asr_make_fqdn(name, domain, buf, buflen);
+ r = _asr_make_fqdn(name, domain, buf, buflen);
if (r == 0)
return (0);
buf[r - 1] = '\0';
@@ -248,7 +247,7 @@ enum {
* error generating the next name, or the resulting name length.
*/
int
-iter_domain(struct asr_query *as, const char *name, char * buf, size_t len)
+_asr_iter_domain(struct asr_query *as, const char *name, char * buf, size_t len)
{
const char *c;
int dots;
diff --git a/lib/libc/asr/res_send_async.c b/lib/libc/asr/res_send_async.c
index 52dd5ed84e1..b64c6350a6e 100644
--- a/lib/libc/asr/res_send_async.c
+++ b/lib/libc/asr/res_send_async.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: res_send_async.c,v 1.24 2015/09/09 15:40:04 guenther Exp $ */
+/* $OpenBSD: res_send_async.c,v 1.25 2015/09/09 15:49:34 deraadt Exp $ */
/*
* Copyright (c) 2012 Eric Faurot <eric@openbsd.org>
*
@@ -61,9 +61,9 @@ res_send_async(const unsigned char *buf, int buflen, void *asr)
DPRINT_PACKET("asr: res_send_async()", buf, buflen);
- ac = asr_use_resolver(asr);
- if ((as = asr_async_new(ac, ASR_SEND)) == NULL) {
- asr_ctx_unref(ac);
+ ac = _asr_use_resolver(asr);
+ if ((as = _asr_async_new(ac, ASR_SEND)) == NULL) {
+ _asr_ctx_unref(ac);
return (NULL); /* errno set */
}
as->as_run = res_send_async_run;
@@ -73,9 +73,9 @@ res_send_async(const unsigned char *buf, int buflen, void *asr)
as->as.dns.obuflen = buflen;
as->as.dns.obufsize = buflen;
- asr_unpack_init(&p, buf, buflen);
- asr_unpack_header(&p, &h);
- asr_unpack_query(&p, &q);
+ _asr_unpack_init(&p, buf, buflen);
+ _asr_unpack_header(&p, &h);
+ _asr_unpack_query(&p, &q);
if (p.err) {
errno = EINVAL;
goto err;
@@ -87,12 +87,12 @@ res_send_async(const unsigned char *buf, int buflen, void *asr)
if (as->as.dns.dname == NULL)
goto err; /* errno set */
- asr_ctx_unref(ac);
+ _asr_ctx_unref(ac);
return (as);
err:
if (as)
- asr_async_free(as);
- asr_ctx_unref(ac);
+ _asr_async_free(as);
+ _asr_ctx_unref(ac);
return (NULL);
}
@@ -109,21 +109,21 @@ res_query_async(const char *name, int class, int type, void *asr)
DPRINT("asr: res_query_async(\"%s\", %i, %i)\n", name, class, type);
- ac = asr_use_resolver(asr);
- as = res_query_async_ctx(name, class, type, ac);
- asr_ctx_unref(ac);
+ ac = _asr_use_resolver(asr);
+ as = _res_query_async_ctx(name, class, type, ac);
+ _asr_ctx_unref(ac);
return (as);
}
struct asr_query *
-res_query_async_ctx(const char *name, int class, int type, struct asr_ctx *a_ctx)
+_res_query_async_ctx(const char *name, int class, int type, struct asr_ctx *a_ctx)
{
struct asr_query *as;
DPRINT("asr: res_query_async_ctx(\"%s\", %i, %i)\n", name, class, type);
- if ((as = asr_async_new(a_ctx, ASR_SEND)) == NULL)
+ if ((as = _asr_async_new(a_ctx, ASR_SEND)) == NULL)
return (NULL); /* errno set */
as->as_run = res_send_async_run;
@@ -137,7 +137,7 @@ res_query_async_ctx(const char *name, int class, int type, struct asr_ctx *a_ctx
err:
if (as)
- asr_async_free(as);
+ _asr_async_free(as);
return (NULL);
}
@@ -350,13 +350,13 @@ setup_query(struct asr_query *as, const char *name, const char *dom,
return (-1);
}
- if (asr_make_fqdn(name, dom, fqdn, sizeof(fqdn)) > sizeof(fqdn)) {
+ if (_asr_make_fqdn(name, dom, fqdn, sizeof(fqdn)) > sizeof(fqdn)) {
errno = EINVAL;
DPRINT("asr_make_fqdn: name too long\n");
return (-1);
}
- if (asr_dname_from_fqdn(fqdn, dname, sizeof(dname)) == -1) {
+ if (_asr_dname_from_fqdn(fqdn, dname, sizeof(dname)) == -1) {
errno = EINVAL;
DPRINT("asr_dname_from_fqdn: invalid\n");
return (-1);
@@ -376,9 +376,9 @@ setup_query(struct asr_query *as, const char *name, const char *dom,
h.flags |= RD_MASK;
h.qdcount = 1;
- asr_pack_init(&p, as->as.dns.obuf, as->as.dns.obufsize);
- asr_pack_header(&p, &h);
- asr_pack_query(&p, type, class, dname);
+ _asr_pack_init(&p, as->as.dns.obuf, as->as.dns.obufsize);
+ _asr_pack_header(&p, &h);
+ _asr_pack_query(&p, type, class, dname);
if (p.err) {
DPRINT("error packing query");
errno = EINVAL;
@@ -418,7 +418,7 @@ udp_send(struct asr_query *as)
#endif
DPRINT("asr: [%p] connecting to %s UDP\n", as,
- asr_print_sockaddr(AS_NS_SA(as), buf, sizeof buf));
+ _asr_print_sockaddr(AS_NS_SA(as), buf, sizeof buf));
as->as_fd = sockaddr_connect(AS_NS_SA(as), SOCK_DGRAM);
if (as->as_fd == -1)
@@ -495,7 +495,7 @@ tcp_write(struct asr_query *as)
/* First try to connect if not already */
if (as->as_fd == -1) {
DPRINT("asr: [%p] connecting to %s TCP\n", as,
- asr_print_sockaddr(AS_NS_SA(as), buf, sizeof buf));
+ _asr_print_sockaddr(AS_NS_SA(as), buf, sizeof buf));
as->as_fd = sockaddr_connect(AS_NS_SA(as), SOCK_STREAM);
if (as->as_fd == -1)
return (-1); /* errno set */
@@ -671,9 +671,9 @@ validate_packet(struct asr_query *as)
struct asr_dns_rr rr;
int r;
- asr_unpack_init(&p, as->as.dns.ibuf, as->as.dns.ibuflen);
+ _asr_unpack_init(&p, as->as.dns.ibuf, as->as.dns.ibuflen);
- asr_unpack_header(&p, &h);
+ _asr_unpack_header(&p, &h);
if (p.err)
goto inval;
@@ -696,7 +696,7 @@ validate_packet(struct asr_query *as)
as->as.dns.rcode = RCODE(h.flags);
as->as.dns.ancount = h.ancount;
- asr_unpack_query(&p, &q);
+ _asr_unpack_query(&p, &q);
if (p.err)
goto inval;
@@ -716,7 +716,7 @@ validate_packet(struct asr_query *as)
/* Validate the rest of the packet */
for (r = h.ancount + h.nscount + h.arcount; r; r--)
- asr_unpack_rr(&p, &rr);
+ _asr_unpack_rr(&p, &rr);
if (p.err || (p.offset != as->as.dns.ibuflen))
goto inval;