X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/0f091044f8998faba2becd0f8c3ad9d5bc5976fb..e39ec089064f4a341a6ee46f9b68a6c5d8a8b5b9:/src/types.c diff --git a/src/types.c b/src/types.c index c1d613a..7e671fc 100644 --- a/src/types.c +++ b/src/types.c @@ -31,7 +31,7 @@ #include "internal.h" #define R_NOMEM return adns_s_nomemory -#define CSP_ADDSTR(s) if (!adns__vbuf_appendstr(vb,(s))) R_NOMEM; else; +#define CSP_ADDSTR(s) do { if (!adns__vbuf_appendstr(vb,(s))) R_NOMEM; } while (0) /* * order of sections: @@ -54,7 +54,7 @@ * _strpair (mf,cs) * _intstrpair (mf,cs) * _hinfo (pa) - * _mailbox (pap) + * _mailbox (pap +pap_mailbox822) * _rp (pa) * _soa (pa,mf,cs) * _flat (mf) @@ -791,8 +791,8 @@ static adns_status pa_hinfo(const parseinfo *pai, int cbyte, int max, void *data * _mailbox (pap) */ -static adns_status pap_mailbox(const parseinfo *pai, int *cbyte_io, int max, - char **mb_r) { +static adns_status pap_mailbox822(const parseinfo *pai, int *cbyte_io, int max, + char **mb_r) { int lablen, labstart, i, needquote, c, r, neednorm; const unsigned char *p; char *str; @@ -847,6 +847,16 @@ static adns_status pap_mailbox(const parseinfo *pai, int *cbyte_io, int max, return adns_s_ok; } +static adns_status pap_mailbox(const parseinfo *pai, int *cbyte_io, int max, + char **mb_r) { + if (pai->qu->typei->type & adns__qtf_mail822) { + return pap_mailbox822(pai, cbyte_io, max, mb_r); + } else { + return pap_domain(pai, cbyte_io, max, mb_r, + pai->qu->flags & adns_qf_quoteok_anshost ? pdf_quoteok : 0); + } +} + /* * _rp (pa) */