X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/f1e474dda132e6d9626bc9930fd9025616de81fb..31144a72ed24e2d3cd62f5f1239e219737beeff4:/src/parse.c diff --git a/src/parse.c b/src/parse.c index ad23419..957b572 100644 --- a/src/parse.c +++ b/src/parse.c @@ -85,7 +85,7 @@ adns_status adns__findlabel_next(findlabel_state fls, return adns_s_serverfaulty; } -adns_status adns__parse_domain(adns_state ads, int serv, vbuf *vb, +adns_status adns__parse_domain(adns_state ads, int serv, vbuf *vb, int flags, const byte *dgram, int dglen, int *cbyte_io, int max) { findlabel_state fls; @@ -102,7 +102,7 @@ adns_status adns__parse_domain(adns_state ads, int serv, vbuf *vb, if (!lablen) break; if (vb->used) if (!adns__vbuf_append(&qu->ans,".",1)) return adns_s_nolocalmem; - if (qu->flags & adns_qf_anyquote) { + if (flags & adns_qf_anyquote) { if (!vbuf__append_quoted1035(&qu->ans,dgram+labstart,lablen)) return adns_s_nolocalmem; } else { @@ -119,6 +119,25 @@ adns_status adns__parse_domain(adns_state ads, int serv, vbuf *vb, if (!adns__vbuf_append(&qu->ans,"",1)) return adns_s_nolocalmem; return adns_s_ok; } + +const char *adns__diag_domain(adns_state ads, int serv, vbuf *vb, int flags, + const byte *dgram, int dglen, int cbyte) { + adns_status st; + + st= adns__parse_domain(ads,serv,vb,qu->flags, dgram,dglen, &cbyte,dglen); + if (st) { + vb->used= 0; + adns__vbuf_appendstr(vb,""); + adns__vbuf_append(vb,"",1); + } + if (!vb.used) { + adns__vbuf_appendstr(vb,""); + adns__vbuf_append(vb,"",1); + } + return vb->buf; +} adns_status adns__findrr(adns_state ads, int serv, const byte *dgram, int dglen, int *cbyte_io,