diff options
author | 2013-07-12 14:36:21 +0000 | |
---|---|---|
committer | 2013-07-12 14:36:21 +0000 | |
commit | 5bd9e5c284f6235d605131b22206379ec6631db2 (patch) | |
tree | 746b9f2fc974ad8c0a70f90e1a7ea63fbbfed8b0 /lib/libc/asr/asr_utils.c | |
parent | Simple partial sync to bsd.lv: (diff) | |
download | wireguard-openbsd-5bd9e5c284f6235d605131b22206379ec6631db2.tar.xz wireguard-openbsd-5bd9e5c284f6235d605131b22206379ec6631db2.zip |
Make some symbols static and prefix all visible symbols with asr_
to prevent collisions with third-party programs.
suggested by sthen@, ok theo@
Diffstat (limited to 'lib/libc/asr/asr_utils.c')
-rw-r--r-- | lib/libc/asr/asr_utils.c | 85 |
1 files changed, 73 insertions, 12 deletions
diff --git a/lib/libc/asr/asr_utils.c b/lib/libc/asr/asr_utils.c index e05905c58bb..f5a1da8a528 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.7 2013/04/14 22:23:08 deraadt Exp $ */ +/* $OpenBSD: asr_utils.c,v 1.8 2013/07/12 14:36:21 eric Exp $ */ /* * Copyright (c) 2009-2012 Eric Faurot <eric@faurot.net> * @@ -62,7 +62,7 @@ dname_check_label(const char *s, size_t l) } ssize_t -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; @@ -165,7 +165,7 @@ dname_expand(const unsigned char *data, size_t len, size_t offset, } void -pack_init(struct pack *pack, char *buf, size_t len) +asr_pack_init(struct pack *pack, char *buf, size_t len) { pack->buf = buf; pack->len = len; @@ -174,7 +174,7 @@ pack_init(struct pack *pack, char *buf, size_t len) } void -unpack_init(struct unpack *unpack, const char *buf, size_t len) +asr_unpack_init(struct unpack *unpack, const char *buf, size_t len) { unpack->buf = buf; unpack->len = len; @@ -255,7 +255,7 @@ unpack_dname(struct unpack *p, char *dst, size_t max) } int -unpack_header(struct unpack *p, struct header *h) +asr_unpack_header(struct unpack *p, struct header *h) { if (unpack_data(p, h, HFIXEDSZ) == -1) return (-1); @@ -270,7 +270,7 @@ unpack_header(struct unpack *p, struct header *h) } int -unpack_query(struct unpack *p, struct query *q) +asr_unpack_query(struct unpack *p, struct query *q) { unpack_dname(p, q->q_dname, sizeof(q->q_dname)); unpack_u16(p, &q->q_type); @@ -280,7 +280,7 @@ unpack_query(struct unpack *p, struct query *q) } int -unpack_rr(struct unpack *p, struct rr *rr) +asr_unpack_rr(struct unpack *p, struct rr *rr) { uint16_t rdlen; size_t save_offset; @@ -393,7 +393,7 @@ pack_dname(struct pack *p, const char *dname) } int -pack_header(struct pack *p, const struct header *h) +asr_pack_header(struct pack *p, const struct header *h) { struct header c; @@ -408,7 +408,7 @@ pack_header(struct pack *p, const struct header *h) } int -pack_query(struct pack *p, uint16_t type, uint16_t class, const char *dname) +asr_pack_query(struct pack *p, uint16_t type, uint16_t class, const char *dname) { pack_dname(p, dname); pack_u16(p, type); @@ -418,7 +418,7 @@ pack_query(struct pack *p, uint16_t type, uint16_t class, const char *dname) } int -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; @@ -429,9 +429,9 @@ sockaddr_from_str(struct sockaddr *sa, int family, const char *str) switch (family) { case PF_UNSPEC: - if (sockaddr_from_str(sa, PF_INET, str) == 0) + if (asr_sockaddr_from_str(sa, PF_INET, str) == 0) return (0); - return 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) @@ -486,3 +486,64 @@ sockaddr_from_str(struct sockaddr *sa, int family, const char *str) return (-1); } + +ssize_t +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; + + switch (family) { + case AF_INET: + in_addr = ntohl(*((const in_addr_t *)addr)); + snprintf(dst, max, + "%d.%d.%d.%d.in-addr.arpa.", + in_addr & 0xff, + (in_addr >> 8) & 0xff, + (in_addr >> 16) & 0xff, + (in_addr >> 24) & 0xff); + break; + case AF_INET6: + in6_addr = (const struct in6_addr *)addr; + snprintf(dst, max, + "%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x." + "%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x." + "ip6.arpa.", + in6_addr->s6_addr[15] & 0xf, + (in6_addr->s6_addr[15] >> 4) & 0xf, + in6_addr->s6_addr[14] & 0xf, + (in6_addr->s6_addr[14] >> 4) & 0xf, + in6_addr->s6_addr[13] & 0xf, + (in6_addr->s6_addr[13] >> 4) & 0xf, + in6_addr->s6_addr[12] & 0xf, + (in6_addr->s6_addr[12] >> 4) & 0xf, + in6_addr->s6_addr[11] & 0xf, + (in6_addr->s6_addr[11] >> 4) & 0xf, + in6_addr->s6_addr[10] & 0xf, + (in6_addr->s6_addr[10] >> 4) & 0xf, + in6_addr->s6_addr[9] & 0xf, + (in6_addr->s6_addr[9] >> 4) & 0xf, + in6_addr->s6_addr[8] & 0xf, + (in6_addr->s6_addr[8] >> 4) & 0xf, + in6_addr->s6_addr[7] & 0xf, + (in6_addr->s6_addr[7] >> 4) & 0xf, + in6_addr->s6_addr[6] & 0xf, + (in6_addr->s6_addr[6] >> 4) & 0xf, + in6_addr->s6_addr[5] & 0xf, + (in6_addr->s6_addr[5] >> 4) & 0xf, + in6_addr->s6_addr[4] & 0xf, + (in6_addr->s6_addr[4] >> 4) & 0xf, + in6_addr->s6_addr[3] & 0xf, + (in6_addr->s6_addr[3] >> 4) & 0xf, + in6_addr->s6_addr[2] & 0xf, + (in6_addr->s6_addr[2] >> 4) & 0xf, + in6_addr->s6_addr[1] & 0xf, + (in6_addr->s6_addr[1] >> 4) & 0xf, + in6_addr->s6_addr[0] & 0xf, + (in6_addr->s6_addr[0] >> 4) & 0xf); + break; + default: + return (-1); + } + return (0); +} |