diff options
author | Riza Sulistyo <riza@teluu.com> | 2016-06-21 06:55:10 +0000 |
---|---|---|
committer | Riza Sulistyo <riza@teluu.com> | 2016-06-21 06:55:10 +0000 |
commit | 2fb94652ccf7a0ea85e267cfe1d652db0a98893c (patch) | |
tree | 3b73db74746aa536da94e7439715626864b1492c /pjlib-util/src/pjlib-util | |
parent | b80242b94843137edd58e9075a892c7971b7bf55 (diff) |
Re #1933: Update pjnath-test for IPv6 support.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5350 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjlib-util/src/pjlib-util')
-rw-r--r-- | pjlib-util/src/pjlib-util/dns.c | 15 | ||||
-rw-r--r-- | pjlib-util/src/pjlib-util/dns_server.c | 14 |
2 files changed, 29 insertions, 0 deletions
diff --git a/pjlib-util/src/pjlib-util/dns.c b/pjlib-util/src/pjlib-util/dns.c index dccb8f0c..df47c83b 100644 --- a/pjlib-util/src/pjlib-util/dns.c +++ b/pjlib-util/src/pjlib-util/dns.c @@ -749,3 +749,18 @@ PJ_DEF(void) pj_dns_init_a_rr( pj_dns_parsed_rr *rec, rec->rdata.a.ip_addr = *ip_addr; } + +PJ_DEF(void) pj_dns_init_aaaa_rr(pj_dns_parsed_rr *rec, + const pj_str_t *res_name, + unsigned dnsclass, + unsigned ttl, + const pj_in6_addr *ip_addr) +{ + pj_bzero(rec, sizeof(*rec)); + rec->name = *res_name; + rec->type = PJ_DNS_TYPE_AAAA; + rec->dnsclass = (pj_uint16_t) dnsclass; + rec->ttl = ttl; + rec->rdata.aaaa.ip_addr = *ip_addr; +} + diff --git a/pjlib-util/src/pjlib-util/dns_server.c b/pjlib-util/src/pjlib-util/dns_server.c index d86ea5a5..5e80ceb4 100644 --- a/pjlib-util/src/pjlib-util/dns_server.c +++ b/pjlib-util/src/pjlib-util/dns_server.c @@ -311,6 +311,20 @@ static int print_rr(pj_uint8_t *pkt, int size, pj_uint8_t *pos, p += 6; size -= 6; + } else if (rr->type == PJ_DNS_TYPE_AAAA) { + + if (size < 18) + return -1; + + /* RDLEN is 16 */ + write16(p, 16); + + /* Address */ + pj_memcpy(p+2, &rr->rdata.aaaa.ip_addr, 16); + + p += 18; + size -= 18; + } else if (rr->type == PJ_DNS_TYPE_CNAME || rr->type == PJ_DNS_TYPE_NS || rr->type == PJ_DNS_TYPE_PTR) { |