diff --git a/CHANGES b/CHANGES index ad68851..d8a4dbf 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +0.1.11 (2010-04-19) + - Fixed another bug in aggregation (-A) mode, thanks to Dmitry Tejblum. + 0.1.10 (2009-06-13) - Fixed bug in aggregation (-A) mode, thanks to Sergey Gonchar. diff --git a/configure b/configure index 3cc7263..a7fa69f 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.62 for bgpq3 0.1.9. +# Generated by GNU Autoconf 2.62 for bgpq3 0.1.11. # # Report bugs to . # @@ -596,8 +596,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='bgpq3' PACKAGE_TARNAME='bgpq3' -PACKAGE_VERSION='0.1.9' -PACKAGE_STRING='bgpq3 0.1.9' +PACKAGE_VERSION='0.1.11' +PACKAGE_STRING='bgpq3 0.1.11' PACKAGE_BUGREPORT='snar@snar.spb.ru' ac_subst_vars='SHELL @@ -1213,7 +1213,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures bgpq3 0.1.9 to adapt to many kinds of systems. +\`configure' configures bgpq3 0.1.11 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1274,7 +1274,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bgpq3 0.1.9:";; + short | recursive ) echo "Configuration of bgpq3 0.1.11:";; esac cat <<\_ACEOF @@ -1353,7 +1353,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -bgpq3 configure 0.1.9 +bgpq3 configure 0.1.11 generated by GNU Autoconf 2.62 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1367,7 +1367,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bgpq3 $as_me 0.1.9, which was +It was created by bgpq3 $as_me 0.1.11, which was generated by GNU Autoconf 2.62. Invocation command line was $ $0 $@ @@ -3465,7 +3465,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by bgpq3 $as_me 0.1.9, which was +This file was extended by bgpq3 $as_me 0.1.11, which was generated by GNU Autoconf 2.62. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -3514,7 +3514,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -bgpq3 config.status 0.1.9 +bgpq3 config.status 0.1.11 configured by $0, generated by GNU Autoconf 2.62, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.in b/configure.in index ceae394..a033636 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,4 @@ -AC_INIT(bgpq3,0.1.9,snar@snar.spb.ru) +AC_INIT(bgpq3,0.1.11,snar@snar.spb.ru) AC_CONFIG_HEADER(config.h) AC_PROG_CC AC_PROG_INSTALL diff --git a/sx_prefix.c b/sx_prefix.c index 7dc144c..56f8bfd 100644 --- a/sx_prefix.c +++ b/sx_prefix.c @@ -539,7 +539,8 @@ sx_radix_node_aggregate(struct sx_radix_node* node) } else if(node->r->isAggregate && node->l->isAggregate && node->r->aggregateHi==node->l->aggregateHi && node->r->aggregateLow==node->l->aggregateLow) { - if(node->r->prefix.masklen==node->prefix.masklen+1) { + if(node->r->prefix.masklen==node->prefix.masklen+1 && + node->l->prefix.masklen==node->prefix.masklen+1) { if(node->isGlue) { node->r->isGlue=1; node->l->isGlue=1; @@ -579,7 +580,8 @@ sx_radix_node_aggregate(struct sx_radix_node* node) node->r->isAggregate && node->l->son->isAggregate && node->r->aggregateHi==node->l->son->aggregateHi && node->r->aggregateLow==node->l->son->aggregateLow) { - if(node->r->prefix.masklen==node->prefix.masklen+1) { + if(node->r->prefix.masklen==node->prefix.masklen+1 && + node->l->prefix.masklen==node->prefix.masklen+1) { if(node->isGlue) { node->r->isGlue=1; node->l->son->isGlue=1; @@ -601,7 +603,8 @@ sx_radix_node_aggregate(struct sx_radix_node* node) node->l->isAggregate && node->r->son->isAggregate && node->l->aggregateHi==node->r->son->aggregateHi && node->l->aggregateLow==node->r->son->aggregateLow) { - if(node->l->prefix.masklen==node->prefix.masklen+1) { + if(node->l->prefix.masklen==node->prefix.masklen+1 && + node->r->prefix.masklen==node->prefix.masklen+1) { if(node->isGlue) { node->l->isGlue=1; node->r->son->isGlue=1;