)]}'
{
  "log": [
    {
      "commit": "c7ec179a95c1ed4fcd3d3be3f981c8c20dce534a",
      "tree": "add6824e168ab26a28390a1d1b9a2c7be1484435",
      "parents": [
        "cddf391bf6839e9f093cef15508669c1f3f92122"
      ],
      "author": {
        "name": "G.Balaji",
        "email": "balajig81@gmail.com",
        "time": "Sat Nov 26 22:04:05 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 23 14:30:50 2012 +0400"
      },
      "message": "bgpd: IPv6 MP-BGP Routes addition and deletion\n\nThis patch contains the following:\n1. Addition of IPv6 SAFI_MULTICAST BGP routes into the BGP Multicast RIB.\n2. Deletion of IPv6 SAFI_MULTICAST BGP routes from the BGP Multicast RIB.\n"
    },
    {
      "commit": "cddf391bf6839e9f093cef15508669c1f3f92122",
      "tree": "38dfaa5a7b98776ba67bb8a812beec8724810839",
      "parents": [
        "5a616c08ce089e25dc0e8da920727af4d11279bf"
      ],
      "author": {
        "name": "G.Balaji",
        "email": "balajig81@gmail.com",
        "time": "Sat Nov 26 21:59:32 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 23 14:30:42 2012 +0400"
      },
      "message": "zebra: IPv4 MP-BGP Routes addition and deletion\n\nThis patch contains the following:\n1. Addition of IPv4 SAFI_MULTICAST BGP routes into the RTM\u0027s RIB.\n2. Deletion of IPv4 SAFI_MULTICAST BGP routes from the RTM\u0027s RIB.\n"
    },
    {
      "commit": "5a616c08ce089e25dc0e8da920727af4d11279bf",
      "tree": "4b5650d6602d06d0188102469e3b402abe81f16a",
      "parents": [
        "6ae93c058725991df5a9ae35cefec368919b5fea"
      ],
      "author": {
        "name": "G.Balaji",
        "email": "balajig81@gmail.com",
        "time": "Sat Nov 26 21:58:42 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 23 14:30:33 2012 +0400"
      },
      "message": "bgpd: IPv4 MP-BGP Routes addition and deletion\n\nThis patch contains the following:\n1. Addition of IPv4 SAFI_MULTICAST BGP routes into the BGP Multicast RIB.\n2. Deletion of IPv4 SAFI_MULTICAST BGP routes from the BGP Multicast RIB.\n"
    },
    {
      "commit": "6ae93c058725991df5a9ae35cefec368919b5fea",
      "tree": "b3f3024fe3241cbfbe0a39f42860c917bcb0ad50",
      "parents": [
        "fc98d16ea77372f4ab4231e8904f8467e8d1ef71"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Dec 27 10:45:36 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Jan 20 17:44:02 2012 +0400"
      },
      "message": "zebra: include MTU option in RA on request (BZ#665)\n\nThis implements a new \"ipv6 nd mtu \u003c1-65535\u003e\" interface-level command.\n\n* doc/ipv6.texi: add description\n* zebra/rtadv.c\n  * rtadv_send_packet(): send option type 5, when configured\n  * ipv6_nd_mtu(): new VTY helper\n  * no_ipv6_nd_mtu(): ditto\n  * rtadv_config_write(): add new option\n  * rtadv_init(): list new helpers\n"
    },
    {
      "commit": "fc98d16ea77372f4ab4231e8904f8467e8d1ef71",
      "tree": "ad69423081bd300c5a60262f947760ac7189744f",
      "parents": [
        "dc00d2bb56aa6a84dd2328133f69db3c3e6d9dc7"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 09 11:36:23 2012 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jan 09 11:36:23 2012 +0000"
      },
      "message": "bgpd: reinstate zlookup checks, required for BGP without zebra\n\n* bgp_nexthop.c: The nexthop lookup cache has to return success for queried\n  nexthops if bgpd isn\u0027t connected to zebra, or else BGP without zebra doesn\u0027t\n  work.\n"
    },
    {
      "commit": "dc00d2bb56aa6a84dd2328133f69db3c3e6d9dc7",
      "tree": "638f95d929b07067f5cac70f21d40a4b94e1f8f9",
      "parents": [
        "f31d6927b2df4340bf9ff1cc9f20d52e168a3766",
        "708a758fb8013d4b40ae09f81e4c5830279bf10c"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 14:47:06 2012 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 14:47:27 2012 +0000"
      },
      "message": "Marker merge for \u0027RE-0.99.17.6\u0027\n\nThis marker merge (i.e. an \u0027ours\u0027 strategy merge) is a placeholder to show\nthat all commits in Quagga-RE stable, to its release RE-0.99.17.6 tag, have\nbeen reviewed and merged into \u0027master\u0027.\n"
    },
    {
      "commit": "f31d6927b2df4340bf9ff1cc9f20d52e168a3766",
      "tree": "638f95d929b07067f5cac70f21d40a4b94e1f8f9",
      "parents": [
        "83a9a2213a73aeb9796b69327c87e89e2d3327ed"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 14:17:42 2012 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 14:21:55 2012 +0000"
      },
      "message": "bgpd: Fix incorrect attribute type code in call to bgp_attr_malformed\n"
    },
    {
      "commit": "83a9a2213a73aeb9796b69327c87e89e2d3327ed",
      "tree": "ed0ef43739f593a3163309a128b179d66ceec4d8",
      "parents": [
        "9ed79b53eb89b8a663eb368ef5f7d47701f231df"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 14:15:03 2012 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 14:15:03 2012 +0000"
      },
      "message": "bgpd: Improve flag error messages in bgp_attr_aspath\n\n* bgpd/bgp_attr.c: (bgp_attr_aspath) error message could be misleading,\n  clearly log what flag was incorrect.\n\n  (Problem noted in \"bgpd: fix error message in bgp_attr_aspath()\" in\n   Quagga-RE)\n"
    },
    {
      "commit": "9ed79b53eb89b8a663eb368ef5f7d47701f231df",
      "tree": "3a0eb140a54197a46957dd41561705853e7c345e",
      "parents": [
        "ce3cdcfbed2ca65d0d3a12b926dd1103910a6056"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 24 18:45:05 2011 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 13:42:23 2012 +0000"
      },
      "message": "lib: use prefix bit length macros\n"
    },
    {
      "commit": "ce3cdcfbed2ca65d0d3a12b926dd1103910a6056",
      "tree": "5f0b3df2ba3a0337e535b1ed590b1adf0891485e",
      "parents": [
        "afcb767922509c4d998f1c567e350b9809c148ab"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 24 18:17:09 2011 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 13:40:11 2012 +0000"
      },
      "message": "ospfd: use IS_LSA_SELF() where appropriate\n"
    },
    {
      "commit": "afcb767922509c4d998f1c567e350b9809c148ab",
      "tree": "ce9f742f0471377337e36235dee73a39e17cb7b0",
      "parents": [
        "d8bcd9e9c6a1801b52b166fa3873eb468ac3c5cb"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Oct 23 22:32:44 2011 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 12:57:35 2012 +0000"
      },
      "message": "bgpd: rewrite attr flag error logging\n\n* bgp_attr.c\n  * attr_flag_str: new message list\n  * bgp_attr_flags_diagnose(): new function, implements previously added\n    error logging in a generic way\n  * bgp_attr_origin(): use bgp_attr_flags_diagnose()\n  * bgp_attr_nexthop(): ditto\n  * bgp_attr_med(): ditto\n  * bgp_attr_local_pref(): ditto\n  * bgp_attr_atomic(): ditto\n  * bgp_attr_originator_id(): ditto\n  * bgp_attr_cluster_list(): ditto\n  * bgp_mp_reach_parse(): ditto\n  * bgp_mp_unreach_parse(): ditto\n"
    },
    {
      "commit": "d8bcd9e9c6a1801b52b166fa3873eb468ac3c5cb",
      "tree": "9daf5bb631fdd97c3e998e4ddc16ba244a85ed6c",
      "parents": [
        "8216f53b73d8eb375615ad4395deace11d1e22d6"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Oct 07 20:43:59 2011 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 11:46:32 2012 +0000"
      },
      "message": "doc: \"[no] router zebra\" does not belong to ospfd\n"
    },
    {
      "commit": "8216f53b73d8eb375615ad4395deace11d1e22d6",
      "tree": "b5ffdff7813c92555889b1be89c907a9f1a14789",
      "parents": [
        "72f062b6ebd7f279dc3f0b66acdb0b718ff42e40"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Oct 03 14:08:01 2011 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 11:46:11 2012 +0000"
      },
      "message": "ospfd: justify ospf_default_originate_timer()\n\nThe function is implemented in ospf_lsa.c, move its \"extern\" declaration\nto ospf_lsa.h for consistency.\n"
    },
    {
      "commit": "72f062b6ebd7f279dc3f0b66acdb0b718ff42e40",
      "tree": "260bffa9e869cabb392f1914da036e9eabe04017",
      "parents": [
        "5e1731ac1d8593c1317d5d907eda62b52b17470f"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sun Aug 28 22:38:45 2011 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 11:43:07 2012 +0000"
      },
      "message": "ospfd: address more trivial compiler warnings\n\n* ospf_ase.c\n  * ospf_ase_complete_direct_routes(): dismiss unused variable\n"
    },
    {
      "commit": "5e1731ac1d8593c1317d5d907eda62b52b17470f",
      "tree": "ca5db73351b53967c095d4e98289cb1c78155738",
      "parents": [
        "0e8032d69961ae196c11ba6ead856084c7acf7c2"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Sat Aug 20 22:45:58 2011 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 11:39:50 2012 +0000"
      },
      "message": "ospf6d: ospf6_lsa_cmd_init() does not exist\n"
    },
    {
      "commit": "0e8032d69961ae196c11ba6ead856084c7acf7c2",
      "tree": "f9adf1934b0b34fd3e4db4896bc83c05e471d234",
      "parents": [
        "b64bfc1c4a552fc0b4dd024d5f77171ec848a5df"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Tue Aug 09 14:42:58 2011 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 11:31:50 2012 +0000"
      },
      "message": "bgpd: improve \"show ip bgp scan detail\"\n\n* bgp_nexthop.c (show_ip_bgp_scan_tables): access proper structure field\n  in AF_INET6 case, handle ifindex NH type properly\n"
    },
    {
      "commit": "b64bfc1c4a552fc0b4dd024d5f77171ec848a5df",
      "tree": "f03661d27a79ae5810c861c643d85d810e885b87",
      "parents": [
        "318f0d8a7f5e8e87086bbf2a9e7c4b35638951ac"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Aug 08 19:36:44 2011 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 11:31:35 2012 +0000"
      },
      "message": "bgpd: dismiss some zlookup checks\n\nbgp_nexthop_onlink(): zlookup is not used here at all\nbgp_nexthop_lookup_ipv6(): rely on the detection performed by \"query\"\n  function (this also changes the fallback value to 0), reorder if-block\nbgp_nexthop_lookup(): idem\n"
    },
    {
      "commit": "318f0d8a7f5e8e87086bbf2a9e7c4b35638951ac",
      "tree": "deab95315df2b315ba5b03162c43b61cb6c9ff2b",
      "parents": [
        "8e80bdf20f493a71bcf74262ed3aa3a2437f4df6"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Aug 05 21:47:08 2011 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 11:31:17 2012 +0000"
      },
      "message": "bgpd: add \"show ip bgp scan detail\" command\n\n* bgp_nexthop.c: (show_ip_bgp_scan) transform into\n  show_ip_bgp_scan_tables(), which uses inet_ntop() and can dump\n  nexthops on request; (show_ip_bgp_scan_detail_cmd) new function\n"
    },
    {
      "commit": "8e80bdf20f493a71bcf74262ed3aa3a2437f4df6",
      "tree": "b1ebddbda4b8f12a28c3ce6299ebe931105a25b6",
      "parents": [
        "23be94ea00fadace0007b6ffa6c9107124249e91"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Fri Aug 05 18:52:52 2011 +0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Jan 08 11:30:55 2012 +0000"
      },
      "message": "bgpd: touch nexthop handling code\n\nbgp_nexthop_lookup_ipv6(): declare variables where they are actually\nused, drop no-op initialization (the field is already 0)\nbgp_nexthop_lookup(): ditto\nbgp_nexthop_check_ebgp(): rename to bgp_nexthop_onlink()\nbgp_nexthop_cache_changed(): rename to bgp_nexthop_cache_different()\n"
    },
    {
      "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": "708a758fb8013d4b40ae09f81e4c5830279bf10c",
      "tree": "8fec3a00a90988af941fb190f88418842b26706a",
      "parents": [
        "f382ad5696a2b0d4cc1dd16752638c9c4dc2b2f8"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Jan 05 17:46:53 2012 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Thu Jan 05 17:46:53 2012 +0400"
      },
      "message": "version RE-0.99.17.6\n"
    },
    {
      "commit": "f382ad5696a2b0d4cc1dd16752638c9c4dc2b2f8",
      "tree": "44bf34d182f4d8776d4f7098337bff616730a6b4",
      "parents": [
        "2894cdc344ab15d8a80906d77cfe90378f82f71d"
      ],
      "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:51:33 2012 +0400"
      },
      "message": "doc: update BGP RFC references\n"
    },
    {
      "commit": "2894cdc344ab15d8a80906d77cfe90378f82f71d",
      "tree": "c908c8e0528c9ba49c67aace7b8d74c0d1241edd",
      "parents": [
        "6dd6c307bf697184a77fd777c0226399de630be5"
      ],
      "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:51:27 2012 +0400"
      },
      "message": "zebra: fix IPv6 RA wrt interface removal (BZ#480)\n"
    },
    {
      "commit": "6dd6c307bf697184a77fd777c0226399de630be5",
      "tree": "2ae25db5453e21fc5bdf6fd228bf3314ccf19eeb",
      "parents": [
        "b4b315989f9f73bdab4224eb3df80781fa986143"
      ],
      "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:51:20 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": "b4b315989f9f73bdab4224eb3df80781fa986143",
      "tree": "c6873bb8b08305ca8834f3d6b0bc3d088612f8de",
      "parents": [
        "830526a51292e6241f7b6415e070f3780fe18e1e"
      ],
      "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:51:11 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": "830526a51292e6241f7b6415e070f3780fe18e1e",
      "tree": "42cf042cfc95db7be191be0fe538386b78e45c05",
      "parents": [
        "65cd7a4a66145cf666df707781c3e46297158c58"
      ],
      "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:50:57 2012 +0400"
      },
      "message": "lib: fix some strtoul() use cases\n\n...otherwise 4294967295 is not a valid value on 32bit systems\n"
    },
    {
      "commit": "65cd7a4a66145cf666df707781c3e46297158c58",
      "tree": "ffb6551b3c022e64c1cae19e86eb49172f3bda0c",
      "parents": [
        "36d3e8d828e18c5c4cd097f659e3984ff02532cb"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Wed Nov 10 13:03:02 2010 -0800"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 19:50:50 2012 +0400"
      },
      "message": "ospf6d: Route locking (memory) cleanup\n\n* ospf6_route.c: (ospf6_route_best_next) Allows unlock route, even\n  when there\u0027s no next route.  This is consistent with how\n  ospf6_route_next() behaves.\n\n* ospf6_intra.c: (ospf6_intra_prefix_lsa_remove) Make sure the last\n  route considered is always unlocked.  This is needed when the for\n  loop terminates because ospf6_route_is_prefix() returns zero.\n\nSigned-off-by: Vyacheslav Trushkin \u003cme@dogonthesun.net\u003e\n"
    },
    {
      "commit": "36d3e8d828e18c5c4cd097f659e3984ff02532cb",
      "tree": "d7ec4c0bb657f303e39d8c784f1b3ac45a72d8a9",
      "parents": [
        "a809d1cc54a621f4b31397ee5b8b79151baa4bf2"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Wed Nov 10 13:01:41 2010 -0800"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 19:50:41 2012 +0400"
      },
      "message": "ospf6d: Have ospf6d cleanup when it terminates normally\n\nA clean exit makes it easier to use memory debuggers.\n\n* ospf6_asbr.c: (ospf6_asbr_terminate) Add a function to do route map\n  cleanup.\n* ospf6_lsa.c: (ospf6_lsa_terminate) Add a function to cleanup the lsa\n  handler vector.\n* ospf6_main.c: (ospf6_exit) Add an function that causes ospf6d to\n  gracefully exit.\n* ospf6_message.c: (ospf6_message_terminate) Add a function that frees\n  the send and receive buffers.\n* ospf6_top.c: (ospf6_delete) Enable the ospf6_delete() function.\n  Disable ospf6 before freeing everything.\n\nSigned-off-by: Vyacheslav Trushkin \u003cme@dogonthesun.net\u003e\n\nConflicts:\n\n\tospf6d/ospf6_lsa.h\n"
    },
    {
      "commit": "a809d1cc54a621f4b31397ee5b8b79151baa4bf2",
      "tree": "2e8badac33516de66c4a0cdff9d3c7812ff65fa4",
      "parents": [
        "13351032d1d1632dbaf540cf33b7bebbc748c415"
      ],
      "author": {
        "name": "Tom Goff",
        "email": "thomas.goff@boeing.com",
        "time": "Wed Nov 10 13:00:54 2010 -0800"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 19:50:32 2012 +0400"
      },
      "message": "lib: Add a function to delete all interfaces\n\nif.c: (if_terminate) This adds a cleanup function that can be called\n    when a daemon exits, similar to vty_terminate().\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": "13351032d1d1632dbaf540cf33b7bebbc748c415",
      "tree": "afbef258221ec2d954b6bcf3f9cf1b70c73be054",
      "parents": [
        "85136e904861775bdf6fbbbd4f0080f06e749bcb"
      ],
      "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 17:28:01 2012 +0400"
      },
      "message": "ospf6d: add verifying user\u0027s privileges\n"
    },
    {
      "commit": "85136e904861775bdf6fbbbd4f0080f06e749bcb",
      "tree": "5e8321c2ab0203e6dfc38d324db82d26c07a48a7",
      "parents": [
        "7eed92b9653b09f064e827e887c29ee11122b4fe"
      ],
      "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 17:27:53 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": "7eed92b9653b09f064e827e887c29ee11122b4fe",
      "tree": "967341976629f684906b35f79ae96d7855ef4b0a",
      "parents": [
        "45b341f72df6d7dd89133dfd21f43cf1cca74ce5"
      ],
      "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 17:27:44 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": "45b341f72df6d7dd89133dfd21f43cf1cca74ce5",
      "tree": "246e9cc5029eab48ad46d51359017fe22fe6e819",
      "parents": [
        "b31d8fc3016615571f79161b8405aa4033cdfb8d"
      ],
      "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 17:27:34 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": "b31d8fc3016615571f79161b8405aa4033cdfb8d",
      "tree": "f17abe1585b337f1751c496e9ac99714bebcb79b",
      "parents": [
        "89e9f82e0b717c0e39bbffa104f9d9f817c19b46"
      ],
      "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 17:27:26 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": "89e9f82e0b717c0e39bbffa104f9d9f817c19b46",
      "tree": "93bf15e1698b686741ee6574f65a3e7a5155dc2c",
      "parents": [
        "07bb964ef11d34235570427cd9bc4111956e31b7"
      ],
      "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 17:27:19 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": "07bb964ef11d34235570427cd9bc4111956e31b7",
      "tree": "decf3cbdd503891aeab2deb3a0ff086e48a487db",
      "parents": [
        "94e7cd90feb6af51b7e21d5289dc0edc1ba94a99"
      ],
      "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": "Mon Jan 02 17:27:13 2012 +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": "94e7cd90feb6af51b7e21d5289dc0edc1ba94a99",
      "tree": "5bb3b96f954826535d5c32376684844523284b49",
      "parents": [
        "4f5e717413b6627310a245d16f945660c9d60736"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Wed Dec 07 01:35:11 2011 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "infrastation@yandex.ru",
        "time": "Mon Jan 02 17:27:05 2012 +0400"
      },
      "message": "Revert \"lib: address -Wunused-but-set-variable\"\n\nStephen Hemminger\u0027s commits contain all the changes and\nseveral other warning fixes.\n\nThis reverts commit 6947dbebdc91b6272f8107a6e0dd211457438606.\n"
    },
    {
      "commit": "4f5e717413b6627310a245d16f945660c9d60736",
      "tree": "b5ad40f737c27f99b973d7fd3c55b6bd766605bc",
      "parents": [
        "7e7a2d38b2d5d5edd3be7d6754d67c3231ee215e"
      ],
      "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": "Mon Jan 02 17:16:07 2012 +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": "7e7a2d38b2d5d5edd3be7d6754d67c3231ee215e",
      "tree": "e50e725a1b472ba7db5f33b490786b4c1c1149f4",
      "parents": [
        "8502229b7ed198d994017e4fd04000d429ca9c8d"
      ],
      "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": "Mon Jan 02 17:15:55 2012 +0400"
      },
      "message": "zebra: fix warnings in forward proc\n\nCheck result of fgets(), and don\u0027t set variable that is\nnever used.\n"
    },
    {
      "commit": "8502229b7ed198d994017e4fd04000d429ca9c8d",
      "tree": "895acf581aa6e900eacc45adaa24bbddfef3640d",
      "parents": [
        "a80e20d17597253e74e22aed6b1a85417f667b49"
      ],
      "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": "Mon Jan 02 17:15:42 2012 +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": "a80e20d17597253e74e22aed6b1a85417f667b49",
      "tree": "907fa6925ce75160bf43db876eca29b123c72609",
      "parents": [
        "840faaeb00f1617649332dad82952e21e7c7fda7"
      ],
      "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": "Mon Jan 02 17:15:31 2012 +0400"
      },
      "message": "ospfd: remove unused code\n\nThe code for nssa_range and other bits that were written but\nnever used.\n"
    },
    {
      "commit": "840faaeb00f1617649332dad82952e21e7c7fda7",
      "tree": "571cda4238b579ce571bf17cc42423fa12b9ba06",
      "parents": [
        "4fafd3deef6eecab229e8b35189ffbc1f1ce9806"
      ],
      "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": "Mon Jan 02 17:15:19 2012 +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": "4fafd3deef6eecab229e8b35189ffbc1f1ce9806",
      "tree": "c9d566aacaa7da44c5189343872c91e19bc80411",
      "parents": [
        "c17fbd6b1eb38e71aba65c593fa41f2e54f0b896"
      ],
      "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": "Mon Jan 02 17:15:09 2012 +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": "c17fbd6b1eb38e71aba65c593fa41f2e54f0b896",
      "tree": "f7c7a582f1e7cc2c6e6afb0ed77936867d59001c",
      "parents": [
        "ed269db39a167251f9b7e8e261c7f53902c094f9"
      ],
      "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": "Mon Jan 02 17:14:33 2012 +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": "ed269db39a167251f9b7e8e261c7f53902c094f9",
      "tree": "9b5de1634c4434f87d7ee67f28483a1379915a90",
      "parents": [
        "ce77002e908e8c9eeff780a6a34143af6758a17f"
      ],
      "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": "Mon Jan 02 17:14:17 2012 +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": "ce77002e908e8c9eeff780a6a34143af6758a17f",
      "tree": "76fed1f3dd8861625469f1ec9bba7c00e0cac894",
      "parents": [
        "e1fabbb86c2558b336b83de443a4fde4b2a8db90"
      ],
      "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 17:10:55 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": "e1fabbb86c2558b336b83de443a4fde4b2a8db90",
      "tree": "901bc9ebd8070f59f9ebdd6075e857c346f50fec",
      "parents": [
        "bf19277c341e6c1b94046c628c0e6d0f0b20d536"
      ],
      "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 17:10:42 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": "bf19277c341e6c1b94046c628c0e6d0f0b20d536",
      "tree": "d25071a4826b9966bfca1e13c29e1c913ba18723",
      "parents": [
        "7b0d1c6d31d50fbf74f84cb60daaedd904b35171"
      ],
      "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:39 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": "7b0d1c6d31d50fbf74f84cb60daaedd904b35171",
      "tree": "13a852a2b92f784a3e6f27ba7e26f888c8d0a620",
      "parents": [
        "6258c2ae35ec40c07e87c010423e6b93ac39bd66"
      ],
      "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:23:50 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": "6258c2ae35ec40c07e87c010423e6b93ac39bd66",
      "tree": "829ac6b557349ea29d25c55a6ae5b8465a2aeaef",
      "parents": [
        "1b960ed436a5515747ff4f4d15b1389e43f3b63c"
      ],
      "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:21:02 2011 +0400"
      },
      "message": "zebra: spelling\n"
    },
    {
      "commit": "1b960ed436a5515747ff4f4d15b1389e43f3b63c",
      "tree": "d771ad8efa2fcf060e674e94c157655238fbc0d5",
      "parents": [
        "42140fb1b1f88310565c6b1d36645aa15c58424d"
      ],
      "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:20:54 2011 +0400"
      },
      "message": "build: delete .cvsignore files\n"
    },
    {
      "commit": "42140fb1b1f88310565c6b1d36645aa15c58424d",
      "tree": "f428a743144b0dfe1899834ed7e14e993c0fe2ef",
      "parents": [
        "d5cd9a9758932dc644eb8b3f0eff3d2e17a7d677"
      ],
      "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:20:46 2011 +0400"
      },
      "message": "ospfd: spelling\n"
    },
    {
      "commit": "d5cd9a9758932dc644eb8b3f0eff3d2e17a7d677",
      "tree": "c95a1d4d56ae734e231710f94b958cca82c75d9a",
      "parents": [
        "271ee735ed3a42a1fe52f6401ddf72bd5d3e4f10"
      ],
      "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:15:48 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": "271ee735ed3a42a1fe52f6401ddf72bd5d3e4f10",
      "tree": "6e8995fe61efdf88513c697e1d84d4108fabbf3a",
      "parents": [
        "844ee4a8acf1a7b34e6a4a0bdf701496302a7416"
      ],
      "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:13:06 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": "844ee4a8acf1a7b34e6a4a0bdf701496302a7416",
      "tree": "0019e577d1255b5058fba8d74ef90da654b6bd81",
      "parents": [
        "1c8afb7c20600165f882d87d7564c6c982c65665"
      ],
      "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:12:16 2011 +0400"
      },
      "message": "isisd: indent longopts array\n"
    },
    {
      "commit": "1c8afb7c20600165f882d87d7564c6c982c65665",
      "tree": "c964ed5023726fb9b025cdb0d13eb6c4e929d39b",
      "parents": [
        "fd31c50bc30d002e334c9764293f1c4f04a99515"
      ],
      "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:11:03 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"
    }
  ],
  "next": "fd31c50bc30d002e334c9764293f1c4f04a99515"
}
