X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Faddrfam.c;fp=src%2Faddrfam.c;h=ddae5cb7e7e48f08c1ef6e5bf44322233e0675d8;hb=e9fe1bdb18b284d70758b2f102691b746e3ed2e9;hp=d087016247dfef865b19afd6ce4ff9fe6695b5b4;hpb=0b062eccea099e977fddf82c4d08167c638a10aa;p=adns.git diff --git a/src/addrfam.c b/src/addrfam.c index d087016..ddae5cb 100644 --- a/src/addrfam.c +++ b/src/addrfam.c @@ -579,8 +579,8 @@ static const struct revparse_domain { #define REVDOMAIN_MAP(rps, labnum) \ ((labnum) ? (rps)->map : (1 << NREVDOMAINS) - 1) -int adns__revparse_label(struct revparse_state *rps, int labnum, - const char *dgram, int labstart, int lablen) { +bool adns__revparse_label(struct revparse_state *rps, int labnum, + const char *dgram, int labstart, int lablen) { const char *label = dgram+labstart; unsigned f= REVDOMAIN_MAP(rps, labnum); const struct revparse_domain *rpd; @@ -604,16 +604,16 @@ int adns__revparse_label(struct revparse_state *rps, int labnum, mismatch: f &= ~d; - if (!f) return -1; + if (!f) return 0; } rps->map= f; - return 0; + return 1; } -int adns__revparse_done(struct revparse_state *rps, - const char *dgram, int nlabels, - adns_rrtype *rrtype_r, adns_sockaddr *addr_r) { +bool adns__revparse_done(struct revparse_state *rps, + const char *dgram, int nlabels, + adns_rrtype *rrtype_r, adns_sockaddr *addr_r) { unsigned f= REVDOMAIN_MAP(rps, nlabels); const struct revparse_domain *rpd; unsigned d; @@ -624,7 +624,7 @@ int adns__revparse_done(struct revparse_state *rps, if (nlabels >= rpd->nrevlab && !rpd->tail[nlabels - rpd->nrevlab]) { found = i; continue; } f &= ~d; - if (!f) return -1; + if (!f) return 0; } assert(found >= 0); assert(f == (1 << found)); @@ -632,5 +632,5 @@ int adns__revparse_done(struct revparse_state *rps, *rrtype_r= rpd->rrtype; addr_r->sa.sa_family= rpd->af; rpd->rev_mkaddr(addr_r, rps->ipv[found]); - return 0; + return 1; }