X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fparse.c;h=e65a327e3604ab01b334c44d5ba374fdb478299b;hb=3b3e6ba1d88ceec9d67a739d4fe2f26ba9a6278c;hp=12200aca53465ef6bb53b201e0e4d1595ab6aef6;hpb=6b891b5ad1ef50f90b188d46082e6bac11e758f4;p=adns.git diff --git a/src/parse.c b/src/parse.c index 12200ac..e65a327 100644 --- a/src/parse.c +++ b/src/parse.c @@ -8,7 +8,7 @@ * * It is part of adns, which is * Copyright (C) 1997-2000 Ian Jackson - * Copyright (C) 1999 Tony Finch + * Copyright (C) 1999-2000 Tony Finch * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -43,7 +43,8 @@ int vbuf__append_quoted1035(vbuf *vb, const byte *buf, int len) { break; } } - if (!adns__vbuf_append(vb,buf,i) || !adns__vbuf_append(vb,qbuf,strlen(qbuf))) + if (!adns__vbuf_append(vb,buf,i) || + !adns__vbuf_append(vb,qbuf,strlen(qbuf))) return 0; if (iads,fls->serv,fls->qu,"label in domain runs beyond end of domain"); + adns__diag(fls->ads,fls->serv,fls->qu, + "label in domain runs beyond end of domain"); return adns_s_invalidresponse; } adns_status adns__parse_domain(adns_state ads, int serv, adns_query qu, - vbuf *vb, adns_queryflags flags, - const byte *dgram, int dglen, int *cbyte_io, int max) { + vbuf *vb, parsedomain_flags flags, + const byte *dgram, int dglen, int *cbyte_io, + int max) { findlabel_state fls; - adns__findlabel_start(&fls,ads, serv,qu, dgram,dglen,max, *cbyte_io,cbyte_io); + adns__findlabel_start(&fls,ads, serv,qu, dgram,dglen,max, + *cbyte_io,cbyte_io); vb->used= 0; return adns__parse_domain_more(&fls,ads,qu, vb,flags,dgram); } adns_status adns__parse_domain_more(findlabel_state *fls, adns_state ads, - adns_query qu, vbuf *vb, parsedomain_flags flags, + adns_query qu, vbuf *vb, + parsedomain_flags flags, const byte *dgram) { int lablen, labstart, i, ch, first; adns_status st; @@ -142,7 +147,8 @@ adns_status adns__parse_domain_more(findlabel_state *fls, adns_state ads, return adns_s_nomemory; } else { ch= dgram[labstart]; - if (!ctype_alpha(ch) && !ctype_digit(ch)) return adns_s_answerdomaininvalid; + if (!ctype_alpha(ch) && !ctype_digit(ch)) + return adns_s_answerdomaininvalid; for (i= labstart+1; iads, serv,qu, dgram,dglen,dglen,cbyte,&cbyte); if (eo_dgram) { - adns__findlabel_start(&eo_fls,qu->ads, -1,0, eo_dgram,eo_dglen,eo_dglen,eo_cbyte,0); + adns__findlabel_start(&eo_fls,qu->ads, -1,0, + eo_dgram,eo_dglen,eo_dglen,eo_cbyte,0); mismatch= 0; } else { mismatch= 1;