From 37730a6b4302b5564f2cf0665f13e8ddf758f265 Mon Sep 17 00:00:00 2001 From: snar Date: Thu, 9 May 2013 13:37:01 +0000 Subject: [PATCH] 0.1.19 --- CHANGES | 100 +++++++++++++++++++++++++----------------------- bgpq_expander.c | 8 ++-- configure | 18 ++++----- configure.in | 2 +- sx_prefix.c | 10 ++--- 5 files changed, 71 insertions(+), 67 deletions(-) diff --git a/CHANGES b/CHANGES index 075485a..78e15fd 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +0.1.19 (2013-05-09) + - CLANG compilation issues fixed. + - bgpq3.spec added. Thanks to Arnoud Vermeer. + 0.1.18 (2013-01-08) - JSON output format. Thanks to Job Snijders (Atrato Networks). @@ -7,10 +11,10 @@ - bug in aggregation documentation fixed. Thanks to Nikolay Shopik. 0.1.16 (2012-01-19) - - new option -m : maximum length of accepted prefixes. - Suggested by Eugene Demidov, used to discard 'too long prefixes' - (like /30-/32) even if they are registered in IRR. By default - limit is not set and all prefixes accepted. + - new option -m : maximum length of accepted prefixes. + Suggested by Eugene Demidov, used to discard 'too long prefixes' + (like /30-/32) even if they are registered in IRR. By default + limit is not set and all prefixes accepted. - documentation redesigned into text/markdown and text/html (manpage supported still). @@ -25,7 +29,7 @@ - never publically released. 0.1.12 (2010-10-08) - - Fixed bug preventing AS262144 (that's AS4.0 in asdot) to expand. + - Fixed bug preventing AS262144 (that's AS4.0 in asdot) to expand. Thanks to Sergey Matveychuk 0.1.11 (2010-04-19) @@ -36,70 +40,70 @@ 0.1.9 (2009-03-27) - RIPE changed ASN32 notation to asplain. And RADB does not support - asplain indexing (yet?).... Fixed. Thanks to Pavel Gluchouk. + asplain indexing (yet?).... Fixed. Thanks to Pavel Gluchouk. 0.1.8 (2008-12-25) - - new flag -D for Cisco asdot notation. Cisco behaviour is a bit + - new flag -D for Cisco asdot notation. Cisco behaviour is a bit strange for me, but, well, that's their decision: When the asdot format is enabled as the default, any regular expressions to match 4-byte autonomous system numbers must be written using the asdot format, or else the regular expression match will fail. (c) http://www.cisco.com/en/US/docs/ios/12_0s/release/ntes/120SNEWF.html - #wp3521658 (note the URL wrap). + #wp3521658 (note the URL wrap). 0.1.7 (2008-12-19): - - man page. Finally :) - - option -h now means not help, but now it can be used to point to - alternate IRRD host, like in old bgpq. + - man page. Finally :) + - option -h now means not help, but now it can be used to point to + alternate IRRD host, like in old bgpq. 0.1.6 (2008-08-08): - - maxsockbuf call added, that can help with pipelining of really large - as-sets. - - new key -M for juniper route-filters, f.e.: + - maxsockbuf call added, that can help with pipelining of really large + as-sets. + - new key -M for juniper route-filters, f.e.: bgpq3 -JEM "protocol bgp;\n community no-export" -l PolicyName/TermName - will generate term with additional match conditions, like: + will generate term with additional match conditions, like: - policy-options { - policy-statement PolicyName { - term TermName { - replace: - from { - protocol bgp; - community no-export; - route-filter 10.0.0.0/24 exact; - } - } - } - } + policy-options { + policy-statement PolicyName { + term TermName { + replace: + from { + protocol bgp; + community no-export; + route-filter 10.0.0.0/24 exact; + } + } + } + } 0.1.5 (2008-06-02): - - route-set's expansion added. Fully functional for IPv4 prefixes, but - not for IPv6 - only those prefixes explicitely marked as 'member-of: RS..' - will be expanded. This is due to limitation in IRRd. - - extended access-lists (Cisco) and route-filters (Juniper) generation - is supported now with new -E key. For Cisco ipv6 access-lists is not - yet supported. + - route-set's expansion added. Fully functional for IPv4 prefixes, but + not for IPv6 - only those prefixes explicitely marked as 'member-of: RS..' + will be expanded. This is due to limitation in IRRd. + - extended access-lists (Cisco) and route-filters (Juniper) generation + is supported now with new -E key. For Cisco ipv6 access-lists is not + yet supported. 0.1.4 (2008-05-30): - - bugfix for juniper as-path group generation. Thanks to Alexander Shikoff. + - bugfix for juniper as-path group generation. Thanks to Alexander Shikoff. 0.1.3 (2008-05-20): - - aggregation (-A) now supported for Cisco prefix-lists. - - pipelining now can be enabled for RIPE-style queries too (ipv6). - - more-specific routes (-R len) feature ported from bgpq - - pipelining now set by default. -T flag now disables pipelining. - - strlcpy.c imported into sources. Not found on Linux :) + - aggregation (-A) now supported for Cisco prefix-lists. + - pipelining now can be enabled for RIPE-style queries too (ipv6). + - more-specific routes (-R len) feature ported from bgpq + - pipelining now set by default. -T flag now disables pipelining. + - strlcpy.c imported into sources. Not found on Linux :) 0.1.2 (2008-05-19): - - final support for asn32, now with correct syntax for Juniper. - - experimental 'pipelining' mode (flag -T), much faster when - working with big as-set's. - - RIPE-style query (-i origin) now requests only route6 objects. + - final support for asn32, now with correct syntax for Juniper. + - experimental 'pipelining' mode (flag -T), much faster when + working with big as-set's. + - RIPE-style query (-i origin) now requests only route6 objects. 0.1.1 (2008-05-16): - - initial support for asn32 added (flag -3). By default it's off, - and when bgpq sees 32-bit asn in resolver queue, it either replaces - it with AS23456 (in as-path generation mode) or queries radb for - prefixes with that origin. - Note: for now only JunOS 9.1 can handle asn32, not Cisco IOS.. + - initial support for asn32 added (flag -3). By default it's off, + and when bgpq sees 32-bit asn in resolver queue, it either replaces + it with AS23456 (in as-path generation mode) or queries radb for + prefixes with that origin. + Note: for now only JunOS 9.1 can handle asn32, not Cisco IOS.. diff --git a/bgpq_expander.c b/bgpq_expander.c index 885008f..45f4294 100644 --- a/bgpq_expander.c +++ b/bgpq_expander.c @@ -353,11 +353,11 @@ bgpq_pipeline(FILE* f, int (*callback)(char*, void*), void* udata, bp=malloc(sizeof(struct bgpq_prequest)); if(!bp) { - sx_report(SX_FATAL,"Unable to allocate %i bytes: %s\n", + sx_report(SX_FATAL,"Unable to allocate %lu bytes: %s\n", sizeof(struct bgpq_prequest),strerror(errno)); exit(1); }; - memset(bp,0,sizeof(bp)); + memset(bp,0,sizeof(struct bgpq_prequest)); ret=fwrite(request,1,strlen(request),f); @@ -494,7 +494,7 @@ bgpq_expand_radb(FILE* f, int (*callback)(char*, void*), void* udata, sx_report(SX_FATAL,"EOF from radb (expand,radb)\n"); exit(1); }; - SX_DEBUG(debug_expander>2,"expander: initially got %i bytes, '%s'\n", + SX_DEBUG(debug_expander>2,"expander: initially got %lu bytes, '%s'\n", strlen(request),request); if(request[0]=='A') { char* eon, *c; @@ -516,7 +516,7 @@ bgpq_expand_radb(FILE* f, int (*callback)(char*, void*), void* udata, }; exit(1); }; - SX_DEBUG(debug_expander>2,"expander: final reply of %i bytes, '%s'\n", + SX_DEBUG(debug_expander>2,"expander: final reply of %lu bytes, '%s'\n", strlen(recvbuffer),recvbuffer); for(c=recvbuffer; c. # @@ -579,8 +579,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='bgpq3' PACKAGE_TARNAME='bgpq3' -PACKAGE_VERSION='0.1.18' -PACKAGE_STRING='bgpq3 0.1.18' +PACKAGE_VERSION='0.1.19' +PACKAGE_STRING='bgpq3 0.1.19' PACKAGE_BUGREPORT='snar@snar.spb.ru' PACKAGE_URL='' @@ -1186,7 +1186,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.18 to adapt to many kinds of systems. +\`configure' configures bgpq3 0.1.19 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1247,7 +1247,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bgpq3 0.1.18:";; + short | recursive ) echo "Configuration of bgpq3 0.1.19:";; esac cat <<\_ACEOF @@ -1326,7 +1326,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -bgpq3 configure 0.1.18 +bgpq3 configure 0.1.19 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1494,7 +1494,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.18, which was +It was created by bgpq3 $as_me 0.1.19, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3368,7 +3368,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=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.18, which was +This file was extended by bgpq3 $as_me 0.1.19, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -3430,7 +3430,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -bgpq3 config.status 0.1.18 +bgpq3 config.status 0.1.19 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.in b/configure.in index 12d9553..9b31af1 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,4 @@ -AC_INIT(bgpq3,0.1.18,snar@snar.spb.ru) +AC_INIT(bgpq3,0.1.19,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 d5f19fa..e86c76a 100644 --- a/sx_prefix.c +++ b/sx_prefix.c @@ -187,7 +187,7 @@ sx_radix_node_new(struct sx_prefix* prefix) return rn; }; -inline int +int sx_prefix_eqbits(struct sx_prefix* a, struct sx_prefix* b) { int i; @@ -206,7 +206,7 @@ sx_prefix_eqbits(struct sx_prefix* a, struct sx_prefix* b) return b->masklen; }; -inline int +int sx_prefix_isbitset(struct sx_prefix* p, int n) { unsigned char s; @@ -649,7 +649,7 @@ sx_radix_tree_aggregate(struct sx_radix_tree* tree) static void setGlueUpTo(struct sx_radix_node* node, void* udata) { - unsigned refine=(unsigned)udata; + unsigned refine=*(unsigned*)udata; if(node && node->prefix.masklen <= refine) { node->isGlue=1; }; @@ -663,11 +663,11 @@ sx_radix_node_refine(struct sx_radix_node* node, unsigned refine) node->aggregateLow=node->prefix.masklen; node->aggregateHi=refine; if(node->l) { - sx_radix_node_foreach(node->l, setGlueUpTo, (void*)refine); + sx_radix_node_foreach(node->l, setGlueUpTo, &refine); sx_radix_node_refine(node->l, refine); }; if(node->r) { - sx_radix_node_foreach(node->r, setGlueUpTo, (void*)refine); + sx_radix_node_foreach(node->r, setGlueUpTo, &refine); sx_radix_node_refine(node->r, refine); }; } else if(!node->isGlue && node->prefix.masklen==refine) {