diff options
Diffstat (limited to 'pjlib-util/src/pjlib-util/dns.c')
-rw-r--r-- | pjlib-util/src/pjlib-util/dns.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/pjlib-util/src/pjlib-util/dns.c b/pjlib-util/src/pjlib-util/dns.c index 53066add..13a0467a 100644 --- a/pjlib-util/src/pjlib-util/dns.c +++ b/pjlib-util/src/pjlib-util/dns.c @@ -690,3 +690,54 @@ PJ_DEF(void) pj_dns_packet_dup(pj_pool_t *pool, } } + +PJ_DEF(void) pj_dns_init_srv_rr( pj_dns_parsed_rr *rec, + const pj_str_t *res_name, + unsigned dnsclass, + unsigned ttl, + unsigned prio, + unsigned weight, + unsigned port, + const pj_str_t *target) +{ + pj_bzero(rec, sizeof(*rec)); + rec->name = *res_name; + rec->type = PJ_DNS_TYPE_SRV; + rec->dnsclass = (pj_uint16_t) dnsclass; + rec->ttl = ttl; + rec->rdata.srv.prio = (pj_uint16_t) prio; + rec->rdata.srv.weight = (pj_uint16_t) weight; + rec->rdata.srv.port = (pj_uint16_t) port; + rec->rdata.srv.target = *target; +} + + +PJ_DEF(void) pj_dns_init_cname_rr( pj_dns_parsed_rr *rec, + const pj_str_t *res_name, + unsigned dnsclass, + unsigned ttl, + const pj_str_t *name) +{ + pj_bzero(rec, sizeof(*rec)); + rec->name = *res_name; + rec->type = PJ_DNS_TYPE_CNAME; + rec->dnsclass = (pj_uint16_t) dnsclass; + rec->ttl = ttl; + rec->rdata.cname.name = *name; +} + + +PJ_DEF(void) pj_dns_init_a_rr( pj_dns_parsed_rr *rec, + const pj_str_t *res_name, + unsigned dnsclass, + unsigned ttl, + const pj_in_addr *ip_addr) +{ + pj_bzero(rec, sizeof(*rec)); + rec->name = *res_name; + rec->type = PJ_DNS_TYPE_A; + rec->dnsclass = (pj_uint16_t) dnsclass; + rec->ttl = ttl; + rec->rdata.a.ip_addr = *ip_addr; +} + |