From: Paul Date: Thu, 25 Dec 2008 00:39:16 +0000 (+0000) Subject: add is_normalized_ipmask X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/commitdiff_plain/2f726f7717e35e9536eca7635d09279774ddd516 add is_normalized_ipmask --HG-- branch : paul --- diff --git a/patricia/patricia.h b/patricia/patricia.h index ab709362..d5861956 100644 --- a/patricia/patricia.h +++ b/patricia/patricia.h @@ -98,6 +98,7 @@ void releasenodeext(int index); void node_increment_usercount( patricia_node_t *node); void node_decrement_usercount( patricia_node_t *node); +int is_normalized_ipmask( struct irc_in_addr *sin, unsigned char bitlen ); /* alloc */ void freeprefix (prefix_t *prefix); diff --git a/patricia/patricialib.c b/patricia/patricialib.c index 738929a0..009b1dbc 100644 --- a/patricia/patricialib.c +++ b/patricia/patricialib.c @@ -586,3 +586,14 @@ void node_decrement_usercount( patricia_node_t *node) { node=node->parent; } } + +int is_normalized_ipmask( struct irc_in_addr *sin, unsigned char bitlen ) { + u_char *addr = (u_char *)sin; + + while (bitlen < PATRICIA_MAXBITS) { + if (is_bit_set(addr,bitlen)) + return 0; + bitlen++; + } + return 1; +}