From 2cc21a3fc9a0195184c92f503ce247b014868c09 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 10 Dec 2016 01:49:06 +0000 Subject: [PATCH] types.c: Pass real adns_rrtype to all cs_* functions and some csp_* No functional change yet. Signed-off-by: Ian Jackson --- src/general.c | 2 +- src/internal.h | 2 +- src/types.c | 37 +++++++++++++++++++------------------ 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/general.c b/src/general.c index c4d1f55..8b8ba51 100644 --- a/src/general.c +++ b/src/general.c @@ -219,7 +219,7 @@ adns_status adns_rr_info(adns_rrtype type, if (!datap) return adns_s_ok; adns__vbuf_init(&vb); - st= typei->convstring(&vb,datap); + st= typei->convstring(&vb,type,datap); if (st) goto x_freevb; if (!adns__vbuf_append(&vb,"",1)) { st= adns_s_nomemory; goto x_freevb; } assert(strlen(vb.buf) == vb.used-1); diff --git a/src/internal.h b/src/internal.h index 007efbd..45d8ab1 100644 --- a/src/internal.h +++ b/src/internal.h @@ -170,7 +170,7 @@ typedef struct typeinfo { * Previously, used alloc_interim, now use alloc_final. */ - adns_status (*convstring)(vbuf *vb, const void *data); + adns_status (*convstring)(vbuf *vb, adns_rrtype, const void *data); /* Converts the RR data to a string representation in vbuf. * vbuf will be appended to (it must have been initialised), * and will not be null-terminated by convstring. diff --git a/src/types.c b/src/types.c index 78db1e2..0c4860d 100644 --- a/src/types.c +++ b/src/types.c @@ -221,7 +221,7 @@ static adns_status pa_txt(const parseinfo *pai, int cbyte, return adns_s_ok; } -static adns_status cs_txt(vbuf *vb, const void *datap) { +static adns_status cs_txt(vbuf *vb, adns_rrtype rrt, const void *datap) { const adns_rr_intstr *const *rrp= datap; const adns_rr_intstr *current; adns_status st; @@ -238,7 +238,7 @@ static adns_status cs_txt(vbuf *vb, const void *datap) { * _hinfo (cs) */ -static adns_status cs_hinfo(vbuf *vb, const void *datap) { +static adns_status cs_hinfo(vbuf *vb, adns_rrtype rrt, const void *datap) { const adns_rr_intstrpair *rrp= datap; adns_status st; @@ -316,7 +316,7 @@ static adns_status csp_genaddr(vbuf *vb, int af, const void *p) { return adns_s_ok; } -static adns_status cs_inaddr(vbuf *vb, const void *datap) { +static adns_status cs_inaddr(vbuf *vb, adns_rrtype rrt, const void *datap) { return csp_genaddr(vb, AF_INET,datap); } @@ -338,7 +338,7 @@ static int di_in6addr(adns_state ads, return dip_genaddr(ads,AF_INET6,datap_a,datap_b); } -static adns_status cs_in6addr(vbuf *vb, const void *datap) { +static adns_status cs_in6addr(vbuf *vb, adns_rrtype rrt, const void *datap) { return csp_genaddr(vb,AF_INET6,datap); } @@ -499,7 +499,7 @@ static adns_status csp_addr(vbuf *vb, const adns_rr_addr *rrp) { return adns_s_ok; } -static adns_status cs_addr(vbuf *vb, const void *datap) { +static adns_status cs_addr(vbuf *vb, adns_rrtype rrt, const void *datap) { const adns_rr_addr *rrp= datap; return csp_addr(vb,rrp); @@ -785,7 +785,7 @@ static adns_status csp_domain(vbuf *vb, const char *domain) { return adns_s_ok; } -static adns_status cs_domain(vbuf *vb, const void *datap) { +static adns_status cs_domain(vbuf *vb, adns_rrtype rrt, const void *datap) { const char *const *domainp= datap; return csp_domain(vb,*domainp); } @@ -1001,7 +1001,8 @@ static void mf_hostaddr(adns_query qu, void *datap) { mfp_hostaddr(qu,rrp); } -static adns_status csp_hostaddr(vbuf *vb, const adns_rr_hostaddr *rrp) { +static adns_status csp_hostaddr(vbuf *vb, adns_rrtype rrt, + const adns_rr_hostaddr *rrp) { const char *errstr; adns_status st; char buf[20]; @@ -1034,10 +1035,10 @@ static adns_status csp_hostaddr(vbuf *vb, const adns_rr_hostaddr *rrp) { return adns_s_ok; } -static adns_status cs_hostaddr(vbuf *vb, const void *datap) { +static adns_status cs_hostaddr(vbuf *vb, adns_rrtype rrt, const void *datap) { const adns_rr_hostaddr *rrp= datap; - return csp_hostaddr(vb,rrp); + return csp_hostaddr(vb,rrt,rrp); } /* @@ -1121,19 +1122,19 @@ static adns_status csp_intofinthost(vbuf *vb, int i) { return adns_s_ok; } -static adns_status cs_inthostaddr(vbuf *vb, const void *datap) { +static adns_status cs_inthostaddr(vbuf *vb, adns_rrtype rrt, const void *datap) { const adns_rr_inthostaddr *rrp= datap; adns_status st; st = csp_intofinthost(vb,rrp->i); if (st) return st; - return csp_hostaddr(vb,&rrp->ha); + return csp_hostaddr(vb,rrt,&rrp->ha); } /* * _inthost (cs) */ -static adns_status cs_inthost(vbuf *vb, const void *datap) { +static adns_status cs_inthost(vbuf *vb, adns_rrtype rrt, const void *datap) { const adns_rr_intstr *rrp= datap; adns_status st; @@ -1361,7 +1362,7 @@ static adns_status pa_rp(const parseinfo *pai, int cbyte, return adns_s_ok; } -static adns_status cs_rp(vbuf *vb, const void *datap) { +static adns_status cs_rp(vbuf *vb, adns_rrtype rrt, const void *datap) { const adns_rr_strpair *rrp= datap; adns_status st; @@ -1407,7 +1408,7 @@ static void mf_soa(adns_query qu, void *datap) { adns__makefinal_str(qu,&rrp->rname); } -static adns_status cs_soa(vbuf *vb, const void *datap) { +static adns_status cs_soa(vbuf *vb, adns_rrtype rrt, const void *datap) { const adns_rr_soa *rrp= datap; char buf[20]; int i; @@ -1517,7 +1518,7 @@ static adns_status csp_srv_begin(vbuf *vb, const adns_rr_srvha *rrp return adns_s_ok; } -static adns_status cs_srvraw(vbuf *vb, const void *datap) { +static adns_status cs_srvraw(vbuf *vb, adns_rrtype rrt, const void *datap) { const adns_rr_srvraw *rrp= datap; adns_status st; @@ -1525,12 +1526,12 @@ static adns_status cs_srvraw(vbuf *vb, const void *datap) { return csp_domain(vb,rrp->host); } -static adns_status cs_srvha(vbuf *vb, const void *datap) { +static adns_status cs_srvha(vbuf *vb, adns_rrtype rrt, const void *datap) { const adns_rr_srvha *rrp= datap; adns_status st; st= csp_srv_begin(vb,(const void*)datap); if (st) return st; - return csp_hostaddr(vb,&rrp->ha); + return csp_hostaddr(vb,rrt,&rrp->ha); } static void postsort_srv(adns_state ads, void *array, int nrrs,int rrsz, @@ -1621,7 +1622,7 @@ static adns_status pa_opaque(const parseinfo *pai, int cbyte, return adns_s_ok; } -static adns_status cs_opaque(vbuf *vb, const void *datap) { +static adns_status cs_opaque(vbuf *vb, adns_rrtype rrt, const void *datap) { const adns_rr_byteblock *rrp= datap; char buf[10]; int l; -- 2.30.2