X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcheck.c;h=3972ebef153c97f4449c8ea0269637596488f776;hb=4c6fd94de34c2949a89271350f963ce0b12375e1;hp=aae65bf0c366ec1c641eb330dfb626bf96444399;hpb=3d5cde09d167be1609d27d0d93de2096250a310c;p=adns.git diff --git a/src/check.c b/src/check.c index aae65bf..3972ebe 100644 --- a/src/check.c +++ b/src/check.c @@ -3,12 +3,11 @@ * - consistency checks */ /* - * This file is - * Copyright (C) 1997-1999 Ian Jackson - * - * It is part of adns, which is - * Copyright (C) 1997-2000 Ian Jackson - * Copyright (C) 1999 Tony Finch + * This file is part of adns, which is + * Copyright (C) 1997-2000,2003,2006 Ian Jackson + * Copyright (C) 1999-2000,2003,2006 Tony Finch + * Copyright (C) 1991 Massachusetts Institute of Technology + * (See the file INSTALL for full details.) * * 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 @@ -31,24 +30,26 @@ void adns_checkconsistency(adns_state ads, adns_query qu) { adns__consistency(ads,qu,cc_user); } -#define DLIST_CHECK(list, nodevar, part, body) \ - if ((list).head) { \ - assert(! (list).head->part back); \ - for ((nodevar)= (list).head; (nodevar); (nodevar)= (nodevar)->part next) { \ - assert((nodevar)->part next \ - ? (nodevar) == (nodevar)->part next->part back \ - : (nodevar) == (list).tail); \ - body \ - } \ +#define DLIST_CHECK(list, nodevar, part, body) \ + if ((list).head) { \ + assert(! (list).head->part back); \ + for ((nodevar)= (list).head; \ + (nodevar); \ + (nodevar)= (nodevar)->part next) { \ + assert((nodevar)->part next \ + ? (nodevar) == (nodevar)->part next->part back \ + : (nodevar) == (list).tail); \ + body \ + } \ } -#define DLIST_ASSERTON(node, nodevar, list, part) \ - do { \ - for ((nodevar)= (list).head; \ - (nodevar) != (node); \ - (nodevar)= (nodevar)->part next) { \ - assert((nodevar)); \ - } \ +#define DLIST_ASSERTON(node, nodevar, list, part) \ + do { \ + for ((nodevar)= (list).head; \ + (nodevar) != (node); \ + (nodevar)= (nodevar)->part next) { \ + assert((nodevar)); \ + } \ } while(0) static void checkc_query_alloc(adns_state ads, adns_query qu) { @@ -74,12 +75,15 @@ static void checkc_notcpbuf(adns_state ads) { } static void checkc_global(adns_state ads) { + const struct sortlist *sl; int i; assert(ads->udpsocket >= 0); - for (i=0; insortlist; i++) - assert(!(ads->sortlist[i].base.s_addr & ~ads->sortlist[i].mask.s_addr)); + for (i=0; insortlist; i++) { + sl= &ads->sortlist[i]; + assert(adns__addr_match_p(sl->af,&sl->base, sl->af,&sl->base,&sl->mask)); + } assert(ads->tcpserver >= 0 && ads->tcpserver < ads->nservers);