)]}'
{
  "log": [
    {
      "commit": "23be94ea00fadace0007b6ffa6c9107124249e91",
      "tree": "40f161dfc675f1129f50f456c96151b9af56757b",
      "parents": [
        "f63f06da2e7be6b17c72dd6110aae179f42f3700"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jan 06 16:07:39 2012 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jan 06 16:19:36 2012 +0000"
      },
      "message": "lib/if: trivial, fix rarely used if debug function to print everything\n\n* if.c: (if_dump) loop that doesn\u0027t do anything, wants to be\n  before the zlog of what it\u0027s meant to print out so all the connected\n  addresses get printed out. Trival: just a debug function\n"
    },
    {
      "commit": "f63f06da2e7be6b17c72dd6110aae179f42f3700",
      "tree": "a36b625a9ea06d0720a240276ed1b8af33193ed7",
      "parents": [
        "651e70d7f419ee7af75113f80e688c0100e9cff5"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Apr 08 12:44:43 2011 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jan 06 16:18:18 2012 +0000"
      },
      "message": "general: remove inline qualifiers and move in-header functions to objects\n\n* (general) Move functions in headers into files, to be compiled into\n  shared object files. Remove inline qualifier from functions. Let the\n  compiler do the work.\n"
    },
    {
      "commit": "651e70d7f419ee7af75113f80e688c0100e9cff5",
      "tree": "ecd5e15290306f9f1db42c08fd452a08977dce5a",
      "parents": [
        "fb5174a27e4122edf849c524861dfcd92d8b19f5"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 27 18:06:45 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 19:14:18 2012 +0400"
      },
      "message": "doc: update BGP RFC references\n"
    },
    {
      "commit": "fb5174a27e4122edf849c524861dfcd92d8b19f5",
      "tree": "1e2b4b43c033f072c27fd1de3ea94dc3ae8124ca",
      "parents": [
        "4f1735fd6ac5d0881bafa9bd421e00645b6c60fd"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 27 10:18:47 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 19:14:08 2012 +0400"
      },
      "message": "zebra: fix IPv6 RA wrt interface removal (BZ#480)\n"
    },
    {
      "commit": "4f1735fd6ac5d0881bafa9bd421e00645b6c60fd",
      "tree": "ec6039710bef675594c4ce50aa488bfb64e4157b",
      "parents": [
        "cba1fab2d7e22921a03b8b886772daec8b5977c4"
      ],
      "author": {
        "name": "Matthias Ferdinand",
        "email": "mf@14v.de",
        "time": "Mon Dec 26 16:35:30 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 19:13:58 2012 +0400"
      },
      "message": "zebra: fix ifindex test condition (BZ#487)\n\nWhen the same ip address is used on several interfaces,\nand one of them gets deleted (or equivalent: set to down and\nthen address removed), rib_delete_ipv[46] will also remove\nthe connected route from other interfaces.\n\nrib_delete_ipv[46] is called twice when an interface is\ndeleted:\n    - for the \"ifdown\" event\n    - for the address removal\n(note: this may be specific to the netlink interface of linux)\nThe second call does not find the connected route to that same\nifindex anymore, but deletes similar connected routes to any\nother ifindex instead.\n\nReason: the ifindex check is on the same level as the check\nfor ZEBRA_ROUTE_CONNECT/NEXTHOP_TYPE_IFINDEX. If everything\nmatches except for the ifindex, the \"else\" part (intended for\ndifferent route types) is executed, thus removing the route\nfrom the wrong interface.\n\nfix: move ifindex check inside the \"then\" part of the check\nfor ZEBRA_ROUTE_CONNECT/NEXTHOP_TYPE_IFINDEX. Now connected\nroutes to other ifindexes will not spill over to the \"else\"\npart for different route types anymore.\n"
    },
    {
      "commit": "cba1fab2d7e22921a03b8b886772daec8b5977c4",
      "tree": "b650afe06f6074434f50d6c24b5a6a5c17dc4d81",
      "parents": [
        "664711c1f4cc218073783ff6ce362093debd7b53"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Thu Dec 22 18:24:19 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 19:13:48 2012 +0400"
      },
      "message": "ospf6d: fix compiler warning messages\n\n* fix disagreement with C99 in zlog_debug calls\nFormat specifier in some zlog_debug calls for size_t values\nwas changed in order to C99 (\u0027%u\u0027 -\u003e \u0027%zu\u0027).\n\n* fix -Wsign-compare warnings\nType of return value of ospf6_packet_max() was changed.\n"
    },
    {
      "commit": "664711c1f4cc218073783ff6ce362093debd7b53",
      "tree": "5566b0c8b9d22de55772717ad6c701ea85b6241e",
      "parents": [
        "6fd16207fee6d4d09f29ed7ecf26303a7220e473"
      ],
      "author": {
        "name": "Ulrich Weber",
        "email": "ulrich.weber@sophos.com",
        "time": "Wed Dec 21 02:24:11 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 19:13:28 2012 +0400"
      },
      "message": "lib: fix some strtoul() use cases\n\n...otherwise 4294967295 is not a valid value on 32bit systems\n"
    },
    {
      "commit": "6fd16207fee6d4d09f29ed7ecf26303a7220e473",
      "tree": "fbc4a0ad11f99c5b7547e1aea47dce536c14f64d",
      "parents": [
        "4e677f52db2276b92bcc201b4379a66a83d45caa"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Tue Dec 20 20:52:31 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 18:38:11 2012 +0400"
      },
      "message": "ospf6d: add verifying user\u0027s privileges\n"
    },
    {
      "commit": "4e677f52db2276b92bcc201b4379a66a83d45caa",
      "tree": "9abc7790ba98ed7a865cba20c7f4fd3947dbf9e3",
      "parents": [
        "fe40bfa2e1b913e24d6b8374fd83a19d00ad7c1c"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Dec 18 16:27:02 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 18:38:04 2012 +0400"
      },
      "message": "ospfd: fix bug in NSSA ABR status check\n\n* ospf_abr.c\n  * ospf_abr_nssa_am_elected(): feed \"best\" instead of \"address of best\"\n    into IPV4_ADDR_CMP(), because \"best\" is a pointer; also, mean s_addr\n    field of the structures to get better typed pointers\n"
    },
    {
      "commit": "fe40bfa2e1b913e24d6b8374fd83a19d00ad7c1c",
      "tree": "a804e85ac21df3fa613be8fed54f2c6cff830459",
      "parents": [
        "733cd9e5792648de50da3c00805aacb51cb27048"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Dec 18 15:40:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 18:37:54 2012 +0400"
      },
      "message": "lib: address type-punned pointers in prefix_same()\n\nIPV4_ADDR_SAME() wasn\u0027t passed the right union member, this could cause\na bug due to strict-aliasing. IPV6_ADDR_SAME() case got its fix before\nthe error could be created by macro upgrade.\n"
    },
    {
      "commit": "733cd9e5792648de50da3c00805aacb51cb27048",
      "tree": "606ec20aa51f16b7a49fd9f5ede27893bee9ace9",
      "parents": [
        "de5ccb96023181765c9904ab40e645c397f536d6"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Dec 17 19:39:30 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 18:37:42 2012 +0400"
      },
      "message": "bgpd: justify checks for IPv4 class D/E\n\n* lib/prefix.h\n  * IPV4_CLASS_DE(): make consistent with counterpart macros\n* bgp_packet.c\n  * bgp_open_receive(): test using macro instead of \"\u003e\u003d\"\n* bgp_route.c\n  * bgp_update_rsclient(): idem\n  * bgp_update_main(): idem\n"
    },
    {
      "commit": "de5ccb96023181765c9904ab40e645c397f536d6",
      "tree": "6f933ed4a727da24167cac66138418de4088d135",
      "parents": [
        "2ea1ab1c30c765cd4703794fcfaf044454fb533c"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Mon Dec 12 20:30:10 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 18:37:32 2012 +0400"
      },
      "message": "ospfd: fix packet reception for FreeBSD 10.\n\n* ospf_packet.c (ospf_recv_packet): FreeBSD, starting from version 10, will not\n  subtract the IP header size from ip_len.\n\nThis is the patch from FreeBSD\u0027s ports/net/quagga/files/patch-ospfd__ospf_packet.c,\nby Boris Kovalenko.\n"
    },
    {
      "commit": "2ea1ab1c30c765cd4703794fcfaf044454fb533c",
      "tree": "650e97a5a9e8cc1fb8666ff6ce87647df3e0e604",
      "parents": [
        "2654e43ca2eaa8d93268c9ec85ac2dd968e5fb94"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Sun Dec 11 18:48:47 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 18:37:24 2012 +0400"
      },
      "message": "zebra: ZEBRA_HELLO and mopping up routes (BZ#448)\n\nZEBRA_HELLO message is used by routing daemons to inform zebra\nwhat type of routes daemon will be announcing to zebra. Also\nzebra uses route_type_oaths array to track which daemon announces\nwhich protocol. Zebra mops up routes if daemon didn\u0027t for some\nreason.\n"
    },
    {
      "commit": "2654e43ca2eaa8d93268c9ec85ac2dd968e5fb94",
      "tree": "db36db2373e4cff83f6f7284aa8822ce5083dea6",
      "parents": [
        "d171bf58ef12ace43d48565e6870722dece1e6ed"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Dec 16 16:25:02 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 18:36:58 2012 +0400"
      },
      "message": "lib: fix type-punning in ip_masklen()\n\nip_masklen() was likely to return incorrect results after being compiled\nwith -fstrict-aliasing (-O2, -O3, -Os)\n"
    },
    {
      "commit": "d171bf58ef12ace43d48565e6870722dece1e6ed",
      "tree": "2cdd66f99933f4e0f0d175ce31599cbb6cbb981f",
      "parents": [
        "8c7f49d27767886b3706dfca11c1e13abeab7c63"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Dec 04 23:21:55 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 18:23:24 2012 +0400"
      },
      "message": "lib: optimize ip_masklen()\n\nThe new implementation makes use of a 64KB mapping table, which makes it\npossible to compute masklen faster and with constant execution time. The\nmap also allows for additional version of the function, which can detect\nerrors in input argument.\n\nThe previous implementation had a variable cost of execution, which\ndepended on masklen in a non-linear manner, and at its worst (/31) was\n4 times slower, than the new implementation. The only case of old\nfunction just slightly outperforming the new one is /0, which is of\nlittle practical interest.\n"
    },
    {
      "commit": "8c7f49d27767886b3706dfca11c1e13abeab7c63",
      "tree": "6a0b18574e1ac20d0402908913e0700f6799a02f",
      "parents": [
        "223da1a912305f2cac6f72c3b480ce103a25d7d6"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Jan 01 16:33:12 2012 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Jan 01 16:37:45 2012 +0400"
      },
      "message": "Revert \"lib: optimize apply_mask_ipv6()\"\n\nExperience with IPv4 counterpart of this function suggests, that\nthis way of type-punning is likely to cause errors.\n"
    },
    {
      "commit": "223da1a912305f2cac6f72c3b480ce103a25d7d6",
      "tree": "5ecb7b554a0844b17a3782a891f4a8f45499baac",
      "parents": [
        "9206f9ecd5526778bf449bbb12f056d681d3b040"
      ],
      "author": {
        "name": "Jaroslav Fojtik",
        "email": "jafojtik@seznam.cz",
        "time": "Sun Dec 11 18:22:16 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Dec 21 16:42:35 2011 +0400"
      },
      "message": "ospfd: more info in LSA checksum warning (BZ#685)\n"
    },
    {
      "commit": "9206f9ecd5526778bf449bbb12f056d681d3b040",
      "tree": "cd11853fe47a30bb2a28838f6ad8f8d49300b4fa",
      "parents": [
        "b48cebbba0dc01ad7d1fbd7cbcc39a11e1ae972d"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Sun Dec 18 19:43:40 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Dec 18 20:21:21 2011 +0400"
      },
      "message": "fix set never used warnings\n\n(This patch was modified to leave calls to stream_getl() in place, they\nare necessary for the stream\u0027s internal pointer to advance to the\ncorrect position. -- Denis)\n\nSigned-off-by: Denis Ovsienko \u003cinfrastation@yandex.ru\u003e\n\nFix gcc warnings about varables that are set but never used.\n\n* bgpd/bgp_attr.c\n  * cluster_unintern(): ret\n  * transit_unintern(): ret\n  * bgp_attr_default_intern(): attre\n  * bgp_mp_reach_parse(): rd_high, rd_low\n* bgpd/bgp_route.c\n  * bgp_announce_check_rsclient(): bgp\n* bgpd/bgp_zebra.c\n  * zebra_read_ipv4(): ifindex\n  * zebra_read_ipv6(): ifindex\n* bgpd/bgpd.c\n  * bgp_config_write_peer(): filter\n* lib/distribute.c\n  * distribute_list_all(): dist\n  * distribute_list(): dist\n  * distribute_list_prefix_all(): dist\n  * distribute_list_prefix(): dist\n* lib/if_rmap.c\n  * if_rmap(): if_rmap\n* lib/vty.c\n  * vty_accept(): vty\n* lib/zclient.c\n  * zclient_read(): ret\n* zebra/irdp_interface.c\n  * if_group(): zi\n* zebra/rt_netlink.c\n  * kernel_read(): ret, sock\n"
    },
    {
      "commit": "b48cebbba0dc01ad7d1fbd7cbcc39a11e1ae972d",
      "tree": "a2fbe8ca90af5b9a7482de1483df40f70fb6e120",
      "parents": [
        "bb915f5fa60de1a5b7e6089fcfc680281a590463"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Wed Dec 14 14:11:29 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Dec 14 14:11:29 2011 +0400"
      },
      "message": "ospf6d: always remove the result of a previous SPF calculation\n\nThis is needed to avoid stale routes in some cases; the regression was\nintroduced by commit 1d19234e79c77a7d55194b513f2a77c6a691bc2c.\n\n* ospf6_spf.c: (ospf6_spf_calculation) Call ospf6_spf_table_finish()\n  before possibly returning if no router-LSA is found for the root of\n  the SPF tree.\n"
    },
    {
      "commit": "bb915f5fa60de1a5b7e6089fcfc680281a590463",
      "tree": "e5ee800f9a18c1b8ebbe390e1762ad93fc778d9e",
      "parents": [
        "32ca97392057d279eeddd1aef36c1836880e8b89"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 21:11:39 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 21:11:39 2011 +0400"
      },
      "message": "bgpd: fix regression in ORF procesing (BZ#688)\n\nThis issue has been pointed out by Lou Berger and Tim Browski.\n\n* bgp_packet.c\n  * bgp_route_refresh_receive(): restore if() condition, which was\n    broken by commit fdbc8e77c88f751924299d0bc752371d5cc31116\n"
    },
    {
      "commit": "32ca97392057d279eeddd1aef36c1836880e8b89",
      "tree": "64aaa4d3554429a613cf02a84412e2007f793819",
      "parents": [
        "caff7905e2d28e4d5e25c0a4ffacbb22e28a7121"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Oct 18 22:02:52 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 19:30:49 2011 +0400"
      },
      "message": "lib: optimize apply_mask_ipv6()\n"
    },
    {
      "commit": "caff7905e2d28e4d5e25c0a4ffacbb22e28a7121",
      "tree": "f760ccc091c5636d4c2fe8a23d2f6571323272f3",
      "parents": [
        "21f569e37d62e3c1de6e41a4e5667c0e28279bb8"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Oct 18 18:33:53 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 19:30:45 2011 +0400"
      },
      "message": "lib: optimize apply_mask_ipv4()\n"
    },
    {
      "commit": "21f569e37d62e3c1de6e41a4e5667c0e28279bb8",
      "tree": "c68c14d1d069ce03147133887764d9a7664f1d2b",
      "parents": [
        "051954f574b9c26458518a7029aeed118f0da620"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 21:11:10 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 19:30:39 2011 +0400"
      },
      "message": "lib: make masklen2ip6() safer and faster\n"
    },
    {
      "commit": "051954f574b9c26458518a7029aeed118f0da620",
      "tree": "1242bbe347bacf918be149f7bb743466c0c61f74",
      "parents": [
        "9663386f16e6285a322747514527fdf1d19788e4"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Oct 11 15:17:45 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 19:30:29 2011 +0400"
      },
      "message": "lib: fix endianness of masklen2ip()\n"
    },
    {
      "commit": "9663386f16e6285a322747514527fdf1d19788e4",
      "tree": "3853168faeff0a571727f4bf2bae44cbbe5479f8",
      "parents": [
        "5031ed1347191ee3e0767cfa44e7047c36d37bd1"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 08 18:15:21 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 19:30:17 2011 +0400"
      },
      "message": "lib: make masklen2ip() safer and faster\n"
    },
    {
      "commit": "5031ed1347191ee3e0767cfa44e7047c36d37bd1",
      "tree": "2b0e4904eb5b481407f1347c0fb4011c7a90ac16",
      "parents": [
        "fa0796661c9cd68f20882ceb16e9d304a12a6acd"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Oct 14 21:59:58 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 19:27:34 2011 +0400"
      },
      "message": "ospf6d: decode message type with LOOKUP()\n\n* ospf6_message.h\n  * OSPF6_MESSAGE_TYPE_CANONICAL(): dismiss\n  * OSPF6_MESSAGE_TYPE_NAME(): dismiss\n* ospf6_message.c\n  * ospf6_message_type_str: rewrite as a message list, add max value\n  * ospf6_packet_examin(): update to use LOOKUP()\n  * ospf6_receive(): idem\n  * ospf6_send(): idem\n"
    },
    {
      "commit": "fa0796661c9cd68f20882ceb16e9d304a12a6acd",
      "tree": "67a1b7b3254f8276ab654505d06bb74fd76faa61",
      "parents": [
        "0ead5c183c36b36c8545ef8b04b778f5238a5db9"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 08 17:22:45 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 19:27:14 2011 +0400"
      },
      "message": "ospf6d: make some old sizing checks assertions\n\nAs long as ospf6_packet_examin() is now the single checkpoint for\nreceived packets, most of the old checks performed elsewhere can\nbe converted into assert() constructs. Malformed input data at\nrespective points can be attributed solely to a programming error,\nnot a malformed packet.\n\n* ospf6_message.c\n  * ospf6_hello_print()\n  * ospf6_dbdesc_print()\n  * ospf6_lsreq_print()\n  * ospf6_lsupdate_print()\n  * ospf6_lsack_print()\n  * ospf6_hello_recv()\n  * ospf6_dbdesc_recv_master()\n  * ospf6_dbdesc_recv_slave()\n  * ospf6_lsreq_recv()\n  * ospf6_lsupdate_recv()\n  * ospf6_lsupdate_recv()\n  * ospf6_lsack_recv()\n  * ospf6_receive()\n"
    },
    {
      "commit": "0ead5c183c36b36c8545ef8b04b778f5238a5db9",
      "tree": "443e8b019b3440f2d810189f2bab098c44307363",
      "parents": [
        "ca0512692156d5bbb902523d2f123fc89dbec1ab"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Oct 14 20:56:19 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 19:25:06 2011 +0400"
      },
      "message": "lib: spelling\n"
    },
    {
      "commit": "ca0512692156d5bbb902523d2f123fc89dbec1ab",
      "tree": "6dd0206cb175c3e790023f9e5d5d755b57181b0d",
      "parents": [
        "e0ca5fde7be5b5ce90dae78c2477e8245aecb8e9"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Sun Oct 04 16:21:49 2009 +0200"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 19:23:38 2011 +0400"
      },
      "message": "lib: add sockopt helper for setting IPV6_V6ONLY and use it\n\ngetaddrinfo returns a list of socket parameters for listening. it\nwill contain both IPv4 and IPv6 listening sockets. unless we use\nIPV6_V6ONLY on the IPv6 ones, only the socket listed first will\nwork. if the IPv4 one came first, the IPv6 one would get an\n\"Address in use\" error.\n\nthis functionality was already present for bgpd and its listening\nsockets. as it is needed for vtys as well, make it a common helper.\n\nConflicts:\n\n\tlib/sockunion.c\n"
    },
    {
      "commit": "e0ca5fde7be5b5ce90dae78c2477e8245aecb8e9",
      "tree": "0e0b32ddbed4a84a3b2de9dd7217165cb81f52fa",
      "parents": [
        "ebf08631cad8a420fc6bfb7c45af5496dc11023e"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Wed Sep 16 01:52:42 2009 +0200"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 19:13:17 2011 +0400"
      },
      "message": "lib: put route_types.txt to real use\n\nthis replaces most occurences of routing protocol lists by preprocessor\ndefines from route_types.h. the latter is autogenerated from\nroute_types.txt by a perl script (previously awk). adding a routing\nprotocol now is mostly a matter of changing route_types.txt and log.c.\n\nConflicts:\n\n\tlib/route_types.awk\n"
    },
    {
      "commit": "ebf08631cad8a420fc6bfb7c45af5496dc11023e",
      "tree": "d3435af62b269b198b73a4e167a6daea19e9573e",
      "parents": [
        "7052f22880f439a6ee691dd9436e1bda932f7b3b"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Thu Aug 27 00:27:40 2009 +0200"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 19:12:55 2011 +0400"
      },
      "message": "zebra: fix redistribution of new protocols\n\nredistribute is currently limited to \"known\" protocols. there is no\nreason for this limitation, so, remove it.\n"
    },
    {
      "commit": "7052f22880f439a6ee691dd9436e1bda932f7b3b",
      "tree": "d9e6713dd7c559039816e1c20347676e7d6c9cd1",
      "parents": [
        "ca9f342c2c35523b7bb34631b4f75cad1232355b"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Thu Aug 27 00:28:28 2009 +0200"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 19:12:49 2011 +0400"
      },
      "message": "rib: default distance value for new protocols (v2)\n\nadding protocols and forgetting to update zebra_rib.c currently causes\na beyond end of array access for the default distance value. fix by\nmaking 150 the default distance for unknown routing protocols.\n\n150 is higher than all other IGPs but lower than iBGP (200)\n"
    },
    {
      "commit": "ca9f342c2c35523b7bb34631b4f75cad1232355b",
      "tree": "597b2299aa3d54ae7907621f5284a49c57001c34",
      "parents": [
        "a34eb3689ca0bb88e2ae7b95b01eb8887048ce15"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Wed Sep 16 02:11:00 2009 +0200"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 19:12:42 2011 +0400"
      },
      "message": "build: fixup autoconf for cross-compiling (to OpenWRT)\n\nMALLOC/REALLOC aren\u0027t used properly (no rpl_malloc), remove them\n\nwhile at it, infer some sane ipforwarding method from the OS value.\n(v2 on that, \"\u003d\u003d\" is not a proper operator for standard \"test\")\n"
    },
    {
      "commit": "a34eb3689ca0bb88e2ae7b95b01eb8887048ce15",
      "tree": "7f4c565c45f719c11529bbd8d5baf64537c0718d",
      "parents": [
        "85a2ebf2a14d8d7b40fd25b1217f953dbf69f065"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Wed Nov 25 20:36:06 2009 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 19:05:24 2011 +0400"
      },
      "message": "zebra: set the interface link-layer socket address\n\n* kernel_socket.c: (ifm_read) The reorganization from commit\n  6fe70d1b35c189cb1e488b2c26551ba7baac6148 removed setting the\n  interface link-layer socket address structure on routing socket\n  platforms.  This restores saving the link-layer information because\n  it might be used elsewhere: rtm_write() when no gateway is given,\n  if_dump_vty() and rtadv_send_packet().\n"
    },
    {
      "commit": "85a2ebf2a14d8d7b40fd25b1217f953dbf69f065",
      "tree": "4392945f66f4d66e4f056885449f5dbeff658399",
      "parents": [
        "05e54ee3df973194f2a00e3ea0b1da7bebc71fd6"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Dec 05 19:36:06 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:27:10 2011 +0400"
      },
      "message": "zebra: spelling\n"
    },
    {
      "commit": "05e54ee3df973194f2a00e3ea0b1da7bebc71fd6",
      "tree": "c07e2bbad0c55fe03eb2975b98f121de6ae55707",
      "parents": [
        "ad8d4802a3078de694539fa9bae12322fc82042f"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Dec 03 17:45:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:27:01 2011 +0400"
      },
      "message": "build: delete .cvsignore files\n"
    },
    {
      "commit": "ad8d4802a3078de694539fa9bae12322fc82042f",
      "tree": "b99a8a6a31ce269067dae6de71cabdb7dcf4d547",
      "parents": [
        "3414d03545205eda9fb47890e01b780485a613c6"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Dec 02 20:02:40 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:26:53 2011 +0400"
      },
      "message": "ospfd: spelling\n"
    },
    {
      "commit": "3414d03545205eda9fb47890e01b780485a613c6",
      "tree": "cee18b7543db0e84c41446c6f1b55a484da14374",
      "parents": [
        "b51146856e660bcec723f535c17dc1c38b2f6efc"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Wed Nov 30 21:03:44 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:26:45 2011 +0400"
      },
      "message": "lib: clearing zclient.c for some cases of building\n\nlib/zclient.c: using of HAVE_TCP_ZEBRA in zclient_socket_*\ndefinitions extended by else clause.\n"
    },
    {
      "commit": "b51146856e660bcec723f535c17dc1c38b2f6efc",
      "tree": "8f501c98b3714e1d5ed381bd4d82fece4106aa8c",
      "parents": [
        "2f658673fa477b58ed38caf94c156c95948de382"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Fri Nov 25 18:51:48 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:26:28 2011 +0400"
      },
      "message": "quagga: option \"-z\" (\"--socket \u003cpath\u003e\") added\n\nAll daemons modified to support custom path to zserv\nsocket.\n\nlib: generalize a zclient connection\n\nzclient_socket_connect added. zclient_socket and\nzclient_socket_un were hidden under static expression.\n\"zclient_serv_path_set\" modified.\n"
    },
    {
      "commit": "2f658673fa477b58ed38caf94c156c95948de382",
      "tree": "cb2725e46707ec8d6341eb3354159a992c8f6bde",
      "parents": [
        "1add115a9cfd3a2ee33a61731008b6ece90ec61d"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Fri Nov 25 17:56:21 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:26:18 2011 +0400"
      },
      "message": "isisd: indent longopts array\n"
    },
    {
      "commit": "1add115a9cfd3a2ee33a61731008b6ece90ec61d",
      "tree": "934e618a134821e75266fef036153498c8017c9e",
      "parents": [
        "9a9446eabb8f153251d6d93d225a68ca44b436ac"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Tue Nov 22 20:15:10 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:25:54 2011 +0400"
      },
      "message": "bgpd: implement \u0027match probability\u0027 in route-maps\n\nNew clause \u0027match probability \u003cpercentage value\u003e\u0027\nwas added in route-maps (bgpd/bgp_routemap.c modified).\n"
    },
    {
      "commit": "9a9446eabb8f153251d6d93d225a68ca44b436ac",
      "tree": "00ca15de108d23f938220fed8ac1daf7a73aa050",
      "parents": [
        "6989880ad7699cb6bf0cfc0fbb95da51430652cf"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Mon Nov 21 20:26:39 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:25:43 2011 +0400"
      },
      "message": "ospf6d: justify multicast group management\n\n* ospf6_network.[ch]\n  * ospf6_sso(): new function supersedes ospf6_join_allspfrouters(),\n    ospf6_leave_allspfrouters(), ospf6_join_alldrouters() and\n    ospf6_leave_alldrouters()\n* ospf6_interface.c\n  * ospf6_interface_state_change(): update respectively\n  * interface_up(): ditto\n  * interface_down(): ditto\n"
    },
    {
      "commit": "6989880ad7699cb6bf0cfc0fbb95da51430652cf",
      "tree": "d1cb56e502df05b7cadabd3390a29c32429c930e",
      "parents": [
        "bde12e3fd5e498a266e813a5751c1b2d21e46ca5"
      ],
      "author": {
        "name": "Ulrich Weber",
        "email": "ulrich.weber@sophos.com",
        "time": "Thu Nov 17 21:35:08 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:25:33 2011 +0400"
      },
      "message": "ripngd: limit max of \"timers basic\" to 65535 as documented\n\nand use VTY_GET_INTEGER_RANGE instead of calling strtoul\n"
    },
    {
      "commit": "bde12e3fd5e498a266e813a5751c1b2d21e46ca5",
      "tree": "3a3a77cc2321925f3d00d192b994a4440da129a0",
      "parents": [
        "42a7debf3c76b8001ce820e104a29d2f693c7cb7"
      ],
      "author": {
        "name": "Ulrich Weber",
        "email": "ulrich.weber@sophos.com",
        "time": "Wed Nov 16 19:32:12 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:25:25 2011 +0400"
      },
      "message": "bgp: use VTY_GET_INTEGER_RANGE() in bgp_clear()\n\nSecond patch replaces \"VTY_GET_LONG (\"AS\", as_ul, arg);\"\nby \"VTY_GET_INTEGER_RANGE (\"AS\", as, arg, 1, BGP_AS4_MAX);\"\nas done in all other code, which parses AS numbers.\n"
    },
    {
      "commit": "42a7debf3c76b8001ce820e104a29d2f693c7cb7",
      "tree": "0a8bd305f1a2b37ea704998604e49ab1874fe0c4",
      "parents": [
        "004b1238a21b9b6c28640f37213dc85f0da39abe"
      ],
      "author": {
        "name": "Vyacheslav Trushkin",
        "email": "me@dogonthesun.net",
        "time": "Wed Nov 16 14:22:03 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 13 14:25:03 2011 +0400"
      },
      "message": "ospf6d: implement \u0027match interface\u0027 for route-maps\n\nospf6_routemap_rule_match_interface* was imported from ospfd\ndaemon with minor changes. new CLI options defined.\n\n`ospf6_routemap_rule_match_interface\u0027 was changed to support\nIPv6 (ospfv3) route\u0027s external information.\n"
    },
    {
      "commit": "004b1238a21b9b6c28640f37213dc85f0da39abe",
      "tree": "ba53bb8efe76832ece8fd0545d50f2ddee82f2d5",
      "parents": [
        "3c14ebb0810e73ad899ae45e5fb2758153057e0e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Dec 07 00:55:15 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Dec 07 01:31:16 2011 +0400"
      },
      "message": "lib: fix SMUX compiler warnings\n\nMake progname a string, and cast when calling asn1.\nRemove variable set but never used.\n"
    },
    {
      "commit": "3c14ebb0810e73ad899ae45e5fb2758153057e0e",
      "tree": "7a96a4bb8b2b276ee4458871c28c3b97c64d29a6",
      "parents": [
        "c143c38bc707194d52aec544e62e5485c6c4bc08"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Dec 07 01:29:49 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Dec 07 01:29:49 2011 +0400"
      },
      "message": "lib: fix compile warnings from set-never-used\n\nThe if_dump code had empty loop, that caused set-never-used warning.\n"
    },
    {
      "commit": "c143c38bc707194d52aec544e62e5485c6c4bc08",
      "tree": "7938595b9e34ac8787d5c1a7a589c46f25db0fdc",
      "parents": [
        "d7a083844db63b3dda412c755ce69bf13f41961f"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Dec 07 01:25:46 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Dec 07 01:25:46 2011 +0400"
      },
      "message": "ospf6d: fix compile warning from falling off end of main\n\nospf6 main always calls ospf6_exit() which always calls exit.\nUse attributes to tell GCC that this is ok.\n"
    },
    {
      "commit": "d7a083844db63b3dda412c755ce69bf13f41961f",
      "tree": "1b3601cff5e6375f95d65b95f28afc0719fd6621",
      "parents": [
        "04d5e24d7425a52f13abcb6d2a30aa6246d837e7"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Dec 07 00:09:56 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Dec 07 01:24:09 2011 +0400"
      },
      "message": "zebra: fix warnings in forward proc\n\nCheck result of fgets(), and don\u0027t set variable that is\nnever used.\n"
    },
    {
      "commit": "04d5e24d7425a52f13abcb6d2a30aa6246d837e7",
      "tree": "a90bcdbe8f51f30c94dc5f10f4b5749e6dd6094e",
      "parents": [
        "46901400a3401a4a6caa40435241b4546bb2a5c5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Dec 07 00:04:46 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Dec 07 01:23:58 2011 +0400"
      },
      "message": "bgpd: cleanup privs on termination\n\nWhen doing valgrind testing, the privledges from zprivs_init() need\nto be cleaned up on exit.\n"
    },
    {
      "commit": "46901400a3401a4a6caa40435241b4546bb2a5c5",
      "tree": "797a251402d8b288835078ee2da4228dfc319d53",
      "parents": [
        "075e12f57d6c0b115cd177c7b244d9810460e3ff"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Dec 10 17:19:09 2009 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Dec 07 01:23:48 2011 +0400"
      },
      "message": "vty_serv_sock_family unused\n\nIf the vty_serv_sock_addrinfo is being used, then vty_serv_sock_family\nis unsed. Fix by adjusting ifdef/else/endif\n"
    },
    {
      "commit": "075e12f57d6c0b115cd177c7b244d9810460e3ff",
      "tree": "755a8a7960a918c77f38a15d931634e9d9170879",
      "parents": [
        "f04a80a5d209dbb54f6fec5d0149b7c0e489d29e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Dec 06 23:54:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Dec 07 01:23:32 2011 +0400"
      },
      "message": "ospfd: remove unused code\n\nThe code for nssa_range and other bits that were written but\nnever used.\n"
    },
    {
      "commit": "f04a80a5d209dbb54f6fec5d0149b7c0e489d29e",
      "tree": "aaf8378930b524b1bfc9c5326d738a172c255b4b",
      "parents": [
        "fb01f87f4f50744206222343a780721af19fe56c"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Dec 06 14:51:10 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 06 15:03:00 2011 +0400"
      },
      "message": "bgpd: store nexthop info for redistributed IPV6 routes\n\nBGP was ignoring nexthop info for static and other redistributed\nroutes for IPv6.  Build extra attribute info to store the nexthop.\nSee also:\n  https://bugzilla.vyatta.com/show_bug.cgi?id\u003d6073\n"
    },
    {
      "commit": "fb01f87f4f50744206222343a780721af19fe56c",
      "tree": "3c425d161ddac2a24c2c2fec91e3e794163a8ffd",
      "parents": [
        "b24b19f719fdd9c3d61a0c93552cd64d832d964c"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Dec 06 14:46:42 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 06 15:02:52 2011 +0400"
      },
      "message": "ospfd: avoid redundant lookup in ospf_redistribute_withdraw\n\nThe old algorithim looked up every node twice as it withdrew\nthe entry. It looks up entry once in redistribute_withdraw, then\nlooks it up again info_delete. Use result of first lookup\nto do the free directly.\n\nThis may explain the slow performance observed in\n https://bugzilla.vyatta.com/show_bug.cgi?id\u003d4421\n"
    },
    {
      "commit": "b24b19f719fdd9c3d61a0c93552cd64d832d964c",
      "tree": "f46e5b9f02f311c45f9c78e096ba4fa7102f0fc8",
      "parents": [
        "6a2e0f36b103386e57dbe3a6ee4716e809111198"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Dec 06 14:09:18 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 06 15:02:44 2011 +0400"
      },
      "message": "lib: fix memory leak on connect() failure\n\nChange sockunion_log() to not use strdup(). This fixes a small memory\nleak that occurs on every failed connect(), and is simpler/cleaner.\n"
    },
    {
      "commit": "6a2e0f36b103386e57dbe3a6ee4716e809111198",
      "tree": "2cfdd15813caa8b83ea3b98731a6f7a92db7e9c5",
      "parents": [
        "ce0af6ff5a4f200035ed4134da72a67f49a21dd6"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Dec 06 14:04:12 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 06 15:02:34 2011 +0400"
      },
      "message": "lib: call filter delete hook before freeing access list\n\nThe delete_hook was being run after calling access list delete function.\nThis would cause ospf to dereference a NULL, in ospf_filter_update\nbecause \u0027access-\u003ename\u0027 was already freed.\n\nSee also:\n    https://bugzilla.vyatta.com/show_bug.cgi?id\u003d7654\n"
    },
    {
      "commit": "ce0af6ff5a4f200035ed4134da72a67f49a21dd6",
      "tree": "1f085a210596f3f5875030c92ba3252933102149",
      "parents": [
        "1ffe5e794c3cd4a2ef84cac937d377de89b721f8"
      ],
      "author": {
        "name": "Oleg A. Arkhangelsky",
        "email": "sysoleg@yandex.ru",
        "time": "Sat Dec 03 15:18:19 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Dec 03 15:18:19 2011 +0400"
      },
      "message": "bgpd: fix memory leak for extra attributes\n\nthis fixes commit b881c7074bb698aeb1b099175b325734fc6e44d2\n"
    },
    {
      "commit": "1ffe5e794c3cd4a2ef84cac937d377de89b721f8",
      "tree": "cdb5aa8d0ebc890a744fa67bc27ce881f9e48f65",
      "parents": [
        "2fbd6f5a62f654c59aec5e1707c859d6ed79c6b0"
      ],
      "author": {
        "name": "Roderick Schertler",
        "email": "roderick@argon.org",
        "time": "Wed Nov 16 15:03:14 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Nov 22 21:03:37 2011 +0400"
      },
      "message": "doc: rectify \"match ip next-hop\" in ripd (BZ#537)\n"
    },
    {
      "commit": "2fbd6f5a62f654c59aec5e1707c859d6ed79c6b0",
      "tree": "cc70afc89da575cdb739d7e1723632e7b75b654c",
      "parents": [
        "1727d2e2b939c8670d0f0e0d1a0e5eb0a8be2135"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Tue Feb 02 20:20:35 2010 +0100"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 19:42:05 2011 +0400"
      },
      "message": "bgpd: remove unused function bgp_bind_address\n\nbgp_bind_address is replaced with sockunion_bind.\n"
    },
    {
      "commit": "1727d2e2b939c8670d0f0e0d1a0e5eb0a8be2135",
      "tree": "3bdfda661f96113d61eae25059608d468a8ea4cc",
      "parents": [
        "17e52061bacec93e84324b23382e5ec61e1f16d0"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Tue Feb 02 20:18:23 2010 +0100"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 19:41:59 2011 +0400"
      },
      "message": "bgpd: fix update-source for IPv6 (BZ#548)\n\nif update-source was given as interface name, bgpd was unconditionally\ntrying to bind to an IPv4 address from that interface.\n\nchange function to find the best-matching (number of address bits)\nsame-family address on the interface.\n"
    },
    {
      "commit": "17e52061bacec93e84324b23382e5ec61e1f16d0",
      "tree": "bae9f3f8f8e89b531e5df167d33427627ea709fc",
      "parents": [
        "681b84e8f50a09ff871d9e6536e8d8afb115ce13"
      ],
      "author": {
        "name": "David Lamparter",
        "email": "equinox@diac24.net",
        "time": "Tue Feb 02 20:16:35 2010 +0100"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Nov 21 19:41:51 2011 +0400"
      },
      "message": "lib: prefix2sockunion, prefix_common_bits helper functions\n\nprefix2sockunion converts a struct prefix* to a union sockunion *;\nprefix_common_bits counts the number of common bits in the prefix\u0027s\naddress part.\n"
    },
    {
      "commit": "681b84e8f50a09ff871d9e6536e8d8afb115ce13",
      "tree": "6821d2c2472934073cc86ff332de7339105af4de",
      "parents": [
        "3cf1288bfd855e339fe2283c79a3ef3746e61737"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Tue Jul 12 17:53:33 2011 +0400"
      },
      "committer": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Thu Nov 17 21:50:47 2011 +0400"
      },
      "message": "ospf6d: check MTU with message header size in mind\n\n* ospf6_message.c: (ospf6_packet_max): new function, return maximum IPv6\n  payload on an interface; (ospf6_hello_send, ospf6_dbdesc_send,\n  ospf6_dbdesc_send_newone, ospf6_lsreq_send, ospf6_lsupdate_send_neighbor,\n  ospf6_lsupdate_send_interface, ospf6_lsack_send_neighbor,\n  ospf6_lsack_send_interface): compare message size with the maximum\n  payload instead of the MTU.\n"
    },
    {
      "commit": "3cf1288bfd855e339fe2283c79a3ef3746e61737",
      "tree": "bbc6600328c20861512c4e26928ffce4cf9c5878",
      "parents": [
        "5c88f19d5b166c6afa8a9b8501badb785afa553b"
      ],
      "author": {
        "name": "Dylan Hall",
        "email": "dylan@deedums.com",
        "time": "Thu Oct 27 15:28:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Nov 15 21:35:11 2011 +0400"
      },
      "message": "bgpd: fix \"nexthop-local unchanged\" (BZ#350)\n"
    },
    {
      "commit": "5c88f19d5b166c6afa8a9b8501badb785afa553b",
      "tree": "98261a13d284bb6b3fe0028a3d17e50c763fc324",
      "parents": [
        "4de148e5d6f6f7885b2c0952a236a3bc3ec36250"
      ],
      "author": {
        "name": "Chris Luke",
        "email": "chrisy@flirble.org",
        "time": "Tue Oct 18 17:26:51 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Nov 15 20:57:02 2011 +0400"
      },
      "message": "bgpd: justify capabilities for TOS setting\n\nTo set the TOS bits on TCP connections, platforms that restrict\ncapabilities need the priv level to be raised before the sockopt\nis set, and this requires the ZCAP_NET_ADMIN priv.\n\n* bgp_main.c: update _caps_p to include ZCAP_NET_ADMIN\n* bgp_network.c\n  * bgp_connect(): request ZPRIVS_RAISE/ZPRIVS_LOWER\n  * bgp_listener(): request ZPRIVS_RAISE earlier\n"
    },
    {
      "commit": "4de148e5d6f6f7885b2c0952a236a3bc3ec36250",
      "tree": "5360772467235934673f5b7e3c039424bcc61329",
      "parents": [
        "1758dbaa3b69bd6e95fb501c40f044f751557e76"
      ],
      "author": {
        "name": "Thomas Ries",
        "email": "tries@gmx.net",
        "time": "Thu Oct 27 17:43:38 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Nov 15 20:50:48 2011 +0400"
      },
      "message": "ospfd: improve fix to CVE-2011-3326 (BZ#586)\n\nMake ospf_flood() propagate error returned by ospf_lsa_install() further\nto properly discard the malformed LSA, not just prevent the immediate\ncrash.\n"
    },
    {
      "commit": "1758dbaa3b69bd6e95fb501c40f044f751557e76",
      "tree": "7021223a0aea1c052e831f1bc044bc3c49ad09ab",
      "parents": [
        "267551879e57a5c590f9e12b3a7d6985b28b3dac"
      ],
      "author": {
        "name": "Sergey Y. Afonin",
        "email": "asy@altlinux.ru",
        "time": "Thu Oct 27 17:01:11 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Nov 15 20:45:17 2011 +0400"
      },
      "message": "bgpd: revised fix to --dryrun (BZ#622)\n"
    },
    {
      "commit": "267551879e57a5c590f9e12b3a7d6985b28b3dac",
      "tree": "aeb0f826f3ea541de99d0988794f1454ab3b9e35",
      "parents": [
        "b4cd2421518be7e18046e974e25b9bf4cf769bd2"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Oct 26 19:34:30 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Oct 26 19:38:49 2011 +0400"
      },
      "message": "bgpd: fix 2 more cases of length error reporting\n\n* bgp_attr.c (bgp_attr_originator_id, bgp_attr_cluster_list): provide\n  required arguments to bgp_attr_malformed()\n"
    },
    {
      "commit": "b4cd2421518be7e18046e974e25b9bf4cf769bd2",
      "tree": "43a94afcebc8b878040f771de5f0e542bb6bc440",
      "parents": [
        "bbb04bf3bb03be27fbf17b6b3ee903b168201cf0"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 22 22:32:26 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 22 22:32:26 2011 +0400"
      },
      "message": "bgpd: check AGGREGATOR attr flags (BZ#678)\n\n* bgp_attr.c\n  * bgp_attr_aggregator(): check Optional/Transitive flag bits\n"
    },
    {
      "commit": "bbb04bf3bb03be27fbf17b6b3ee903b168201cf0",
      "tree": "8db00c5a6db16254146e064bfb350f536cc90e02",
      "parents": [
        "abc384f85b622471ef5ba6c86acc540856da05cf"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Oct 18 14:20:04 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Oct 19 17:28:01 2011 +0400"
      },
      "message": "bgpd: fix more regressions in attr flag checks\n\nCommit 05a4936b713b9882171d0f7fb20b8439df23939e fixed some of the\nattributes involved, but not all. This commit should do it.\n\n* bgp_attr.c\n  * bgp_attr_originator_id()\n  * bgp_attr_cluster_list()\n  * bgp_mp_reach_parse()\n  * bgp_mp_unreach_parse()\n"
    },
    {
      "commit": "abc384f85b622471ef5ba6c86acc540856da05cf",
      "tree": "5bb225c251c3667b12e7b5cb08dd1455dde5b072",
      "parents": [
        "565b828dc00cafd477dd69ce15f0f551ece67710"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Oct 18 13:55:07 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Oct 18 13:55:07 2011 +0400"
      },
      "message": "bgpd: use bgp_attr_malformed()\n\nSome of the recent attribute flags/length checks copied from QRE use\nbgp_notify_send_with_data() directly, but master branch assumes\nusing bgp_attr_malformed().\n\n* bgp_attr.c\n  * bgp_attr_med()\n  * bgp_attr_local_pref()\n  * bgp_attr_atomic()\n  * bgp_attr_originator_id()\n  * bgp_attr_cluster_list()\n  * bgp_mp_reach_parse()\n  * bgp_mp_unreach_parse()\n"
    },
    {
      "commit": "565b828dc00cafd477dd69ce15f0f551ece67710",
      "tree": "e1d5c6c38f89b6d022339df14c9b5224de7c0ca9",
      "parents": [
        "f8627ff1ef7642c8ee4758b1f046ef0d166dfbec"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 10 21:08:33 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 19:07:02 2011 +0400"
      },
      "message": "bgpd: add flag checks for MP_(UN)REACH_NLRI\n\n* bgp_attr.[ch]\n  * bgp_mp_reach_parse(): add extra arguments and a uniform flag\n    check block\n  * bgp_mp_unreach_parse(): idem\n  * bgp_attr_parse(): provide extra arguments\n* bgp_mp_attr_test.c\n  * parse_test(): justify respective calls\n"
    },
    {
      "commit": "f8627ff1ef7642c8ee4758b1f046ef0d166dfbec",
      "tree": "60fa75de6532991858f718aebfcabc19a745f081",
      "parents": [
        "0b83044b91d7ea50824cfd803d77213b9ff38ed9"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 10 16:52:20 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 19:03:56 2011 +0400"
      },
      "message": "bgpd: fix spelling of CLUSTER_LIST\n"
    },
    {
      "commit": "0b83044b91d7ea50824cfd803d77213b9ff38ed9",
      "tree": "a18f7841fa039c1236ef5ea4770c0f0a5b81d3b1",
      "parents": [
        "d595b566bca1de8b026c469a31ae50f2aee11781"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Sep 30 15:12:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 19:03:31 2011 +0400"
      },
      "message": "bgpd: check CLUSTER_LIST attribute flags\n\n* bgp_attr.c\n  * bgp_attr_cluster_list(): accept extra argument, add checks for\n    \"optional\", \"transitive\" and \"partial\" bits, log each error\n    condition independently\n  * bgp_attr_parse(): provide extra arguments\n"
    },
    {
      "commit": "d595b566bca1de8b026c469a31ae50f2aee11781",
      "tree": "1572e36687c8666c8f0c8519addc94f9d2c886af",
      "parents": [
        "566b36ebf903fd873c974ba34c19097d8fb48ce4"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Sep 30 15:08:54 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 19:02:55 2011 +0400"
      },
      "message": "bgpd: check ORIGINATOR_ID attribute flags\n\n* bgp_attr.c\n  * bgp_attr_originator_id(): accept extra argument, add checks for\n    \"optional\", \"transitive\" and \"partial\" bits, log each error\n    condition independently\n  * bgp_attr_parse(): provide extra arguments\n"
    },
    {
      "commit": "566b36ebf903fd873c974ba34c19097d8fb48ce4",
      "tree": "8205c1387ca019b608e745049c6ebee0c32d6cff",
      "parents": [
        "ad61af67b548fa787d4c1da0024ba30f8c3b19c8"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Tue Sep 27 19:27:17 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 19:00:02 2011 +0400"
      },
      "message": "vtysh: [build] silence preprocessor errors in some cases\n\n* extract.pl.in: use configured CPPFLAGS in cpp invocation.\n"
    },
    {
      "commit": "ad61af67b548fa787d4c1da0024ba30f8c3b19c8",
      "tree": "3d0cdb58217702b51b9bdac6e8b11e4a68d0b54d",
      "parents": [
        "6d0732c8abad7ace509d033a41814ea03a3a1b16"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Oct 12 15:07:34 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:59:26 2011 +0400"
      },
      "message": "lib: compile even without IPV6_TCLASS\n"
    },
    {
      "commit": "6d0732c8abad7ace509d033a41814ea03a3a1b16",
      "tree": "d20c537d0e16cb5245047d8ecd9990201a4fb3b6",
      "parents": [
        "a5b228b3792937c93b589938a2545b9311b7938e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Sep 28 14:23:35 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 17 18:59:19 2011 +0400"
      },
      "message": "IPv6 transport class suppport\n\nIPv6 supports the same concept of differentiated service for routing\nprotocols as IPv4, but like too many things, the standards committee\ndecided that having two names for the same thing wasn\u0027t good enough and\nintroduced a third more generic term transport class.\n\nThe socket option to set transport class works the same as IPv4, but the\narguments are different.\n\n* lib/sockopt.[ch]\n  * setsockopt_ipv6_tclass(): new function\n* bgpd/bgp_network.c\n  * bgp_connect(): set socket option\n  * bgp_listener(): set socket option\n* ospf6d/ospf6_network.c\n  * ospf6_set_transport_class(): new function\n  * ospf6_serv_sock(): set socket option\n* ripngd/ripngd.c\n  * ripng_make_socket(): set socket option\n"
    },
    {
      "commit": "a5b228b3792937c93b589938a2545b9311b7938e",
      "tree": "59c22c60531b0fe2a4ceeb0d8cc1070af1312a9d",
      "parents": [
        "21cc76941abc60b5b5ece0a71ace0b69d6f4572c"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Oct 12 13:54:21 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Oct 12 13:59:09 2011 +0400"
      },
      "message": "bgpd: fix regression in improved attr flag checks\n\nCommit 2febf323411c1aed9d7694898f852ce2ef36a7e5 assumed every flag\nbit except optional/transitive/partial unset, which at times could\nnot be true for \"extended length\" bit.\n\n* bgp_attr.c\n  * bgp_attr_origin(): exclude BGP_ATTR_FLAG_EXTLEN from comparison\n  * bgp_attr_nexthop(): idem\n  * bgp_attr_med(): idem\n  * bgp_attr_local_pref(): idem\n  * bgp_attr_atomic(): idem\n"
    },
    {
      "commit": "21cc76941abc60b5b5ece0a71ace0b69d6f4572c",
      "tree": "a81b361e0771c7a3bcddebad35158edad00f219f",
      "parents": [
        "a624cae2b210a0e81c80c473f86b73e2be169962"
      ],
      "author": {
        "name": "Peter Pentchev",
        "email": "roam@ringlet.net",
        "time": "Mon Sep 12 16:30:31 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 08 20:17:21 2011 +0400"
      },
      "message": "bgpd: fix parsing of graceful restart cap. (#663)\n\n\"While setting up a testbed, I ran across a little problem in the\nparsing of the \"graceful restart\" BGP capability that resulted in\nQuagga not actually activating it for the peer in question - when\nthe peer sent a single AFI/SAFI block.\"\n\n* bgp_open.c\n  * bgp_capability_restart(): actually process the last AFI/SAFI block\n"
    },
    {
      "commit": "a624cae2b210a0e81c80c473f86b73e2be169962",
      "tree": "b229e5943b651405d5b2277ecb5fbcdc1a747354",
      "parents": [
        "b84b62dfb6ee9daf46c9e4c2c372b179f33be44c"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 08 13:54:48 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Oct 08 14:18:00 2011 +0400"
      },
      "message": "bgpd: improve attr length error handling (BZ#679)\n\n* bgp_attr.c\n  * bgp_attr_parse(): provide extra argument to bgp_attr_aggregator()\n  * bgp_attr_local_pref(): use bgp_notify_send_with_data()\n  * bgp_attr_atomic(): idem\n  * bgp_attr_aggregator(): idem\n\nConflicts:\n\n\tbgpd/bgp_attr.c\n"
    },
    {
      "commit": "b84b62dfb6ee9daf46c9e4c2c372b179f33be44c",
      "tree": "052307acd804e98d224bc4d3246f16c9d02fbad9",
      "parents": [
        "2d42e68aa032ed2f11471aee444935918d35c8bb"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 15:47:25 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Sep 30 14:11:13 2011 +0400"
      },
      "message": "bgpd: improve attr flags checks\n\nDo not check each of the Optional/Transitive/Partial attribute\nflag bits, when their only valid combination is known in advance,\nbut still perform bit-deep error message logging. This change\nassumes unused (low-order) 4 bits of the flag octet cleared.\n\n* bgp_attr.c\n  * bgp_attr_origin(): rewrite check\n  * bgp_attr_nexthop(): idem\n  * bgp_attr_med(): idem\n  * bgp_attr_local_pref(): idem\n  * bgp_attr_atomic(): idem\n\nConflicts:\n\n\tbgpd/bgp_attr.c\n"
    },
    {
      "commit": "2d42e68aa032ed2f11471aee444935918d35c8bb",
      "tree": "a58e0b96bdb43fb6ed66a94afc0d44b737ca4c89",
      "parents": [
        "214bcaa13e092d9fff8f233e62ba28ca7eefbc43"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 15:35:39 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Sep 30 10:32:02 2011 +0400"
      },
      "message": "bgpd: ignore 4 bits of attribute flags byte\n"
    },
    {
      "commit": "214bcaa13e092d9fff8f233e62ba28ca7eefbc43",
      "tree": "eb429544fd7d6727f35cd3fc24b6426a6d577eb3",
      "parents": [
        "bc3443ebf032b5fcc9e0ccb94641e4e899cd17d8"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Sep 24 13:20:43 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Sep 30 10:30:36 2011 +0400"
      },
      "message": "bgpd: add missing \"partial\" flag checks (BZ#676)\n\nORIGIN handling function used to have \"partial\" bit check and recent\ncommits added it for NEXT_HOP, MULTI_EXIT_DISC and ATOMIC_AGGREGATE\ncases. This commit adds \"partial\" check for AS_PATH and LOCAL_PREF\ncases, which should leave attributes 1 through 6 inclusive completely\ncovered with attribute flags checks.\n\n* bgp_attr.c\n  * bgp_attr_origin(): use bit-by-bit checks for better diagnostics\n  * bgp_attr_aspath(): add flag check\n  * bgp_attr_local_pref(): idem\n\nConflicts:\n\n\tbgpd/bgp_attr.c\n"
    },
    {
      "commit": "bc3443ebf032b5fcc9e0ccb94641e4e899cd17d8",
      "tree": "06d6c8b912958c989ba59e45349e17a3f8d973ac",
      "parents": [
        "0a28130d35bbba47faf47bf9451ba0eb195fcbb7"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 22 12:48:14 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Sep 30 01:24:35 2011 +0400"
      },
      "message": "bgpd: improve NEXT_HOP attribute checks (BZ#680)\n\n* lib/prefix.h\n  * IPV4_CLASS_DE(): new helper macro\n* bgp_attr.c\n  * bgp_attr_nexthop(): add check for \"partial\" bit, refresh flag error\n    reporting, explain meaning of RFC4271 section 6.3 and implement it\n\nConflicts:\n\n\tbgpd/bgp_attr.c\n"
    },
    {
      "commit": "0a28130d35bbba47faf47bf9451ba0eb195fcbb7",
      "tree": "94bcda95ba12a50a81aa7ea893d809ba237b2262",
      "parents": [
        "42e6d745d105018a9469dabad65bd4cf942dcf3c"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Jul 17 19:33:21 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 29 22:19:08 2011 +0400"
      },
      "message": "bgpd: rename SAFI 3 according to RFC4760\n\n- SAFI value 3 is reserved.  It was assigned by RFC 2858 for a use\n  that was never fully implemented, so it is deprecated by this\n  document.\n\n* zebra.h: rename macro\n* bgp_fsm.c: (bgp_graceful_restart_timer_expire,\n  bgp_graceful_stale_timer_expire, bgp_stop, bgp_establish): update\n* bgpd.c: (peer_nsf_stop): update\n* bgp_open.c: (bgp_capability_vty_out): SAFI 3 isn\u0027t a recognized case\n  any more\n"
    },
    {
      "commit": "42e6d745d105018a9469dabad65bd4cf942dcf3c",
      "tree": "9e653fe2e44d2e3f8510fcb8451931e3b6153ebc",
      "parents": [
        "beb1ca03bfe707d6d1fcad21fcbaa63af49c82f8"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Jul 14 12:36:19 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 29 22:14:11 2011 +0400"
      },
      "message": "bgpd: more SAFI fixes\n\n(with resolved conflict in bgpd/bgp_packet.c)\n\nTwo macros resolving to the same integer constant broke a case block and\na more thorough merge of BGP_SAFI_VPNV4 and BGP_SAFI_VPNV6 was\nperformed.\n\n* bgpd.h: MPLS-labeled VPN SAFI is AFI-independent, switch to single\n* macro\n* bgp_capability_test.c: update test data\n* bgp_mp_attr_test.c: idem\n* bgp_route.c: (bgp_maximum_prefix_overflow, bgp_table_stats_vty) update\n  macro and check conditions (where appropriate)\n* bgp_packet.c: (bgp_route_refresh_send, bgp_capability_send,\n  bgp_update_receive, bgp_route_refresh_receive): idem\n* bgp_open.c: (bgp_capability_vty_out, bgp_afi_safi_valid_indices,\n  bgp_open_capability_orf, bgp_open_capability): idem\n* bgp_attr.c: (bgp_mp_reach_parse, bgp_packet_attribute,\n  bgp_packet_withdraw): idem\n"
    },
    {
      "commit": "beb1ca03bfe707d6d1fcad21fcbaa63af49c82f8",
      "tree": "78ffcd5ec7e9bb80e92c108f5ca0268ec6cff262",
      "parents": [
        "48f99b0c2bfed8d3880732d188e1d5964f575ee4"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Jul 13 16:53:13 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 29 22:07:54 2011 +0400"
      },
      "message": "bgpd: fix SAFI for for MPLS labeled VPN-IPv6\n\n* bgpd.h: change value of BGP_SAFI_VPNV6 to 128 (RFC4659, BZ#659)\n* bgp_route.c: (bgp_table_stats_vty) fix length argument to strncmp()\n"
    },
    {
      "commit": "48f99b0c2bfed8d3880732d188e1d5964f575ee4",
      "tree": "deff24887c5590909e625b1b00dd6496fad6190d",
      "parents": [
        "3aad46bdaa0a2700e43252904b9481750c8cb45d"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 29 16:55:23 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 29 16:55:23 2011 +0400"
      },
      "message": "release: 0.99.20\n"
    },
    {
      "commit": "3aad46bdaa0a2700e43252904b9481750c8cb45d",
      "tree": "2f98b0538dc45324910201ee445460a68f6e5389",
      "parents": [
        "52ecbbea36439758590f0c31a0ec147fec041d7a"
      ],
      "author": {
        "name": "YAMAMOTO Shigeru",
        "email": "shigeru@iij.ad.jp",
        "time": "Wed Sep 28 21:00:14 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 29 16:27:29 2011 +0400"
      },
      "message": "ospfd: fix regression in recent commit\n\ncommit \u0027717750433839762d23a5f8d88fe0b4d57c8d490a\u0027 causes SEGV error,\nwhen \u0027oi \u003d ospf_if_lookup_recv_if (ospf, iph-\u003eip_src, ifp);\u0027 returns\nNULL.\n\n* ospf_packet.c\n  * ospf_read(): change a place of calling \u0027ospf_verify_header()\u0027\n"
    },
    {
      "commit": "52ecbbea36439758590f0c31a0ec147fec041d7a",
      "tree": "7bbf3187dbace4a7e51f45826920f1cc6138beae",
      "parents": [
        "4b4e07d2d83bdbe46ccf4b4a2fd2aa3842370098"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Sep 15 15:40:47 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:46:14 2011 +0400"
      },
      "message": "ospfd: remove unused macro\n"
    },
    {
      "commit": "4b4e07d2d83bdbe46ccf4b4a2fd2aa3842370098",
      "tree": "dde2abd7124f6d89e7d4695482f1abb8f4a0a447",
      "parents": [
        "51abba509a0997f05427a8acbe74dd07d8d6026e"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Wed Sep 21 23:13:22 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:46:04 2011 +0400"
      },
      "message": "bgpd: don\u0027t be confused by \"unspecific\" subcode in the NOTIFY message.\n\n* bgp_debug.c (bgp_notify_open_msg, bgp_notify_update_msg,\n  bgp_notify_cease_msg, bgp_notify_capability_msg): add messages for\n  \"unspecific\" subcode.\n"
    },
    {
      "commit": "51abba509a0997f05427a8acbe74dd07d8d6026e",
      "tree": "c9f19fc4eaf2aa01d96bde18b9ec09f1b92724e4",
      "parents": [
        "eda3529e9cf163ccbcf47c889b16fd707d2aed76"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Wed Sep 21 17:41:41 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:45:53 2011 +0400"
      },
      "message": "lib: provide more information in case of failed LOOKUP.\n\n* log.[ch]\n  * mes_lookup: add a parameter with the name of the message list, print\n    the name in case of failure.\n  * LOOKUP macro: pass the name of the message list.\n"
    },
    {
      "commit": "eda3529e9cf163ccbcf47c889b16fd707d2aed76",
      "tree": "60f295c940d7c17a799db549ab20f41a5707d3bc",
      "parents": [
        "bcc6c59ac5e9c1e8cf9693b4768f6b8cad5e559a"
      ],
      "author": {
        "name": "Dmitrij Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Thu Sep 15 20:00:33 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:45:37 2011 +0400"
      },
      "message": "configure: test for glibc backtrace even without glibc.\n\nOther platform may have compatible facilities.\n"
    },
    {
      "commit": "bcc6c59ac5e9c1e8cf9693b4768f6b8cad5e559a",
      "tree": "110dc04ffd64f9a259015231981165e92a225502",
      "parents": [
        "e6ec1c3648cf3304c1a36341487659aadb9dce95"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Sep 10 23:29:19 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:43:27 2011 +0400"
      },
      "message": "ospfd: spelling\n"
    },
    {
      "commit": "e6ec1c3648cf3304c1a36341487659aadb9dce95",
      "tree": "de881144ddce2cdf272a36b0c8e94030b4379b90",
      "parents": [
        "7ccf5e59c13773097dd551b8a7384b99b7f46927"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Sep 10 21:50:53 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:43:15 2011 +0400"
      },
      "message": "bgpd: spelling\n"
    },
    {
      "commit": "7ccf5e59c13773097dd551b8a7384b99b7f46927",
      "tree": "205ee10231ebf765cf3097c5578c78c0d302a268",
      "parents": [
        "171c9a996dd75a8b9aa596288c974f9ac0fbc5d6"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Sep 10 16:53:30 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:43:03 2011 +0400"
      },
      "message": "bgpd: spelling\n"
    },
    {
      "commit": "171c9a996dd75a8b9aa596288c974f9ac0fbc5d6",
      "tree": "61c7aae794eee1d93fb4bafaca4e73c16bc3b947",
      "parents": [
        "7dbeea9d4f43fda84971d0bcffb6da88228dab53"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Sep 10 16:40:23 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:42:52 2011 +0400"
      },
      "message": "ospfd: use existing macro for consistency\n"
    },
    {
      "commit": "7dbeea9d4f43fda84971d0bcffb6da88228dab53",
      "tree": "b54b34743454a755fb719a98c4a1b1023170bf00",
      "parents": [
        "87362ceb5d493f12e8c937b533190a1996d2df22"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Aug 28 22:29:52 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:42:14 2011 +0400"
      },
      "message": "zebra: add missing includes\n"
    },
    {
      "commit": "87362ceb5d493f12e8c937b533190a1996d2df22",
      "tree": "80e844bd2ace54bdfb8db4914f5e4171ffbcb6d4",
      "parents": [
        "05b7709dad416146376cc4f41db0c866b3738f5b"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Aug 27 22:19:34 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:41:33 2011 +0400"
      },
      "message": "ospf6d: address more trivial compiler warnings\n\n* ospf6_main.c: include required headers\n* ospf6_asbr.h: idem\n* ospf6_spf.c\n  * ospf6_spf_install(): remove unused variables\n"
    },
    {
      "commit": "05b7709dad416146376cc4f41db0c866b3738f5b",
      "tree": "bf17ceea5864f3bd4d6beb0a5dff4ba5b718b339",
      "parents": [
        "10d04cdb4198b69073ea0cdd4c26a64d6697b33e"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Aug 23 11:36:27 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Sep 27 21:41:00 2011 +0400"
      },
      "message": "ospfd: sizing macros cleanup\n\n* ospf_spf.c\n  * ROUTER_LSA_TOS_SIZE: prepend OSPF_ and move to ospf_lsa.h\n  * ROUTER_LSA_MIN_SIZE: replace with existing OSPF_ROUTER_LSA_LINK_SIZE\n"
    }
  ],
  "next": "10d04cdb4198b69073ea0cdd4c26a64d6697b33e"
}
