)]}'
{
  "log": [
    {
      "commit": "6da598018c6f866694ecb80a391815a40daaa951",
      "tree": "dbfe3daef285536d13e748584a6358dee0100c6b",
      "parents": [
        "03e232a4588187992f3538985d541289dc272464"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Fri Aug 17 14:16:30 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Fri Aug 17 14:16:30 2007 +0000"
      },
      "message": "Fixed bug #394 \"RTF_DONE is ignored in rtm_read()\"\n"
    },
    {
      "commit": "03e232a4588187992f3538985d541289dc272464",
      "tree": "6bb2c36ccb39c678b49d29fd3d379e0de313a17d",
      "parents": [
        "dc95824ae13d65156dd873a6e784d9a0eed2f39f"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Tue Aug 14 09:46:48 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Tue Aug 14 09:46:48 2007 +0000"
      },
      "message": "Merged own patch for bug #390 (rewrite zebra/zebra_rib.c:nexthop_active_update())\n"
    },
    {
      "commit": "dc95824ae13d65156dd873a6e784d9a0eed2f39f",
      "tree": "fa53aa99e517d9cfe5c56474051afdaa1bc9a666",
      "parents": [
        "068fd77cff0ce09b6390641abd84fc09a89c49db"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Mon Aug 13 16:03:06 2007 +0000"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "linux@pilot.org.ua",
        "time": "Mon Aug 13 16:03:06 2007 +0000"
      },
      "message": "Merged own patch for the bug #391 (debugging and comments mostly).\n"
    },
    {
      "commit": "068fd77cff0ce09b6390641abd84fc09a89c49db",
      "tree": "0a71721ce90997f1fe0c45d677f3625dbd890369",
      "parents": [
        "ed6ef902df72cc8267e274ed515a47af52c9fed7"
      ],
      "author": {
        "name": "vize",
        "email": "vize",
        "time": "Fri Aug 10 06:25:20 2007 +0000"
      },
      "committer": {
        "name": "vize",
        "email": "vize",
        "time": "Fri Aug 10 06:25:20 2007 +0000"
      },
      "message": "Use the proper field length for the peer\u0027s address (netlink_interface_addr)\n"
    },
    {
      "commit": "ed6ef902df72cc8267e274ed515a47af52c9fed7",
      "tree": "0416ad08fe181227b10f6e1c0e331b7a01a205db",
      "parents": [
        "8bc9805929d4b3af2e77ef04db278884d82d71fd"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Aug 08 14:13:03 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Aug 08 14:13:03 2007 +0000"
      },
      "message": "[tests] Add bgp_capability_test.c, should have been part of earlier commit\n"
    },
    {
      "commit": "8bc9805929d4b3af2e77ef04db278884d82d71fd",
      "tree": "50f1c2285a05ff303861ab22c26330a8292b73ae",
      "parents": [
        "238497fc85332bb8bb9cb3245d3f691500190559"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Aug 08 11:19:27 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Aug 08 11:19:27 2007 +0000"
      },
      "message": "[isisd] Commit new files which should have been part of previous commit..\n"
    },
    {
      "commit": "238497fc85332bb8bb9cb3245d3f691500190559",
      "tree": "fefd446df957e591658f3aaf40263538f5176944",
      "parents": [
        "e95537f0495401c0dd86669d096387e5cdddf8e0"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Aug 07 18:49:18 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Aug 07 18:49:18 2007 +0000"
      },
      "message": "[isisd] Add support for Solaris DLPI\n\n2007-08-07 James Carlson \u003cjames.d.carlson@sun.com\u003e\n\n\t* configure.ac: Added support for separate link-layer access\n\t  mechanisms in isisd.\n\t* isis_network.c: split up into isis_bpf.c, isis_dlpi.c, and\n\t  isis_pfpacket.c, selected by autoconf, and added DLPI support.\n\t* (general) Fixed to allow compilation and use on Solaris.\n"
    },
    {
      "commit": "e95537f0495401c0dd86669d096387e5cdddf8e0",
      "tree": "48d749b6728bc5b3a60bc0b4f617b7f5ac0be90b",
      "parents": [
        "93bdadae74a9b391152f5511dbced6f08fad6d94"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Aug 07 16:22:05 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Aug 07 16:22:05 2007 +0000"
      },
      "message": "[ospfd] Finish explanatory comment started in previous commit..\n\n2007-08-07 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_spf.c: (ospf_spf_next) Finish off the explanatory\n\t  comment made in previous commit\n"
    },
    {
      "commit": "93bdadae74a9b391152f5511dbced6f08fad6d94",
      "tree": "95e5f9b12164dfc4b7ffe8d2221641f416c7f369",
      "parents": [
        "7591d8b862439dfae8b4b16d148ce567b6ff8cb7"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 19:25:11 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 19:25:11 2007 +0000"
      },
      "message": "[zebra] Add extra debug logging for RIB and RIB queueing\n\n2007-08-06  Denis Ovsienko\n\n\t* zebra_rib.c: (general) Add extra debug logging for RIB and\n\t  RIB queue.\n"
    },
    {
      "commit": "7591d8b862439dfae8b4b16d148ce567b6ff8cb7",
      "tree": "b9d24293663be04e4c80bcd78f8d1f5e86c2c3f1",
      "parents": [
        "fc787e873dff0091069742b34fb3631ac529c92a"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 18:52:45 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 18:52:45 2007 +0000"
      },
      "message": "[ospfd] Fix bad SPF calculation on some topologies - incorrect sorting\n\n2007-08-07 Atis Elsts \u003catis@mikrotik.com\u003e\n\n\t* ospf_spf.c: (ospf_spf_next) Sort heap in correct direction\n\t  after vertex cost is changed, thus fixing incorrect SPF\n\t  calculation on certain topologies.\n\t* lib/pqueue.{c,h}: Export trickle_up\n"
    },
    {
      "commit": "fc787e873dff0091069742b34fb3631ac529c92a",
      "tree": "0e3476ff66b483396f67c2e104ca27ade35be2e3",
      "parents": [
        "5b02255a671a5eee7c1736f6f9d0bab19a65cb2a"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Mon Aug 06 15:50:20 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Mon Aug 06 15:50:20 2007 +0000"
      },
      "message": "Fix last commit - add back in closing paren which was apparently\nuninentionally deleted along with a test.\n"
    },
    {
      "commit": "5b02255a671a5eee7c1736f6f9d0bab19a65cb2a",
      "tree": "dc38fa3d38a073249aef79962f0b69e1055a7e32",
      "parents": [
        "41367172d812354c05b11818346f0d49c2245aef"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 15:27:12 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 15:27:12 2007 +0000"
      },
      "message": "[ospfd] Bug #331, NSSA ASBR regression - failure to set E-bit in NSSA areas\n\n2007-08-06 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (router_lsa_flags) Bug #331, NSSA regression caused\n\t  caused ASBRs to not advertise E-bit into NSSA areas.\n"
    },
    {
      "commit": "41367172d812354c05b11818346f0d49c2245aef",
      "tree": "eb8f83ec0e93cb5a1d8470afd5c79ce55bc853da",
      "parents": [
        "6d58272b4cf96f0daa846210dd2104877900f921"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 15:24:51 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 15:24:51 2007 +0000"
      },
      "message": "[bgpd] Add support for AS_PATHLIMIT / draft-ietf-idr-as-pathlimit\n\n2007-07-31 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) Support for draft-ietf-idr-as-pathlimit-03.\n\t* bgp_attr.h: (struct attr) Add pathlimit struct\n          bgp_attr.c: (attr_str) Add BGP_ATTR_AS_PATHLIMIT string.\n          (attrhash_key_make) tally pathlimit too\n          (attrhash_cmp) cmp pathlimit attr\n          (bgp_attr_aspathlimit) New, parse AS_PATHLIMIT attr.\n          (bgp_attr_parse) ditto\n          (bgp_packet_attribute) Write out AS_PATHLIMIT when set\n          (bgp_dump_routes_attr) ditto\n         * bgp_route.h: (struct bgp_static) Add TTL field\n         * bgp_route.c: (bgp_announce_check) Drop paths that are over\n           their hop-count TTL before sending via EBGP.\n           Mangle ASN in pathlimit for confeds/private as best we can.\n           (bgp_static_update_{rsclient,main}) Add any configure pathlimit\n           information.\n           (bgp_pathlimit_update_parents) New, update atomic-aggr setting for\n           parents of an aspathlimit\u0027ed static.\n           (bgp_static_set) Add TTL argument, for all the \u0027bgp network\u0027\n           commands.\n           Call previous for TTL changed statics.\n           (bgp_static_unset) Call pathlimit_update_parents.\n           (various bgp network commands) Add \u0027pathlimit \u003c0-255\u003e\u0027 qualifier\n           to all the various forms, bar route-map - which can set ttl\n           itself.\n         * bgp_routemap.c: (general) Add support for \u0027set pathlimit ttl\u0027 and\n           \u0027match pathlimit as\u0027.\n         * doc/bgpd.texi: Document \u0027network ... pathlimit \u003cttl\u003e\u0027\n"
    },
    {
      "commit": "6d58272b4cf96f0daa846210dd2104877900f921",
      "tree": "a97f2c9c797bd96b298aa64f03ed69115d63e78b",
      "parents": [
        "dfdb8f18c008e7ad306588c86b12fbef337427ca"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 15:21:45 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 15:21:45 2007 +0000"
      },
      "message": "[bgpd] cleanup, compact and consolidate capability parsing code\n\n2007-07-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) Clean up and compact capability parsing slightly.\n\t  Consolidate validation of length and logging of generic TLV, and\n\t  memcpy of capability data, thus removing such from cap specifc\n\t  code (not always present or correct).\n\t* bgp_open.h: Add structures for the generic capability TLV header\n\t  and for the data formats of the various specific capabilities we\n\t  support.  Hence remove the badly named, or else misdefined, struct\n\t  capability.\n\t* bgp_open.c: (bgp_capability_vty_out) Use struct capability_mp_data.\n\t  Do the length checks *before* memcpy()\u0027ing based on that length\n\t  (stored capability - should have been validated anyway on input,\n\t  but..).\n\t  (bgp_afi_safi_valid_indices) new function to validate (afi,safi)\n\t  which is about to be used as index into arrays, consolidates\n\t  several instances of same, at least one of which appeared to be\n\t  incomplete..\n\t  (bgp_capability_mp) Much condensed.\n\t  (bgp_capability_orf_entry) New, process one ORF entry\n\t  (bgp_capability_orf) Condensed. Fixed to process all ORF entries.\n\t  (bgp_capability_restart) Condensed, and fixed to use a\n\t  cap-specific type, rather than abusing capability_mp.\n\t  (struct message capcode_str) added to aid generic logging.\n\t  (size_t cap_minsizes[]) added to aid generic validation of\n\t  capability length field.\n\t  (bgp_capability_parse) Generic logging and validation of TLV\n\t  consolidated here. Code compacted as much as possible.\n\t* bgp_packet.c: (bgp_open_receive) Capability parsers now use\n\t  streams, so no more need here to manually fudge the input stream\n\t  getp.\n\t  (bgp_capability_msg_parse) use struct capability_mp_data. Validate\n\t  lengths /before/ memcpy. Use bgp_afi_safi_valid_indices.\n\t  (bgp_capability_receive) Exported for use by test harness.\n\t* bgp_vty.c: (bgp_show_summary) fix conversion warning\n\t  (bgp_show_peer) ditto\n\t* bgp_debug.h: Fix storage \u0027extern\u0027 after type \u0027const\u0027.\n        * lib/log.c: (mes_lookup) warning about code not being in\n          same-number array slot should be debug, not warning. E.g. BGP\n          has several discontigious number spaces, allocating from\n          different parts of a space is not uncommon (e.g. IANA\n          assigned versus vendor-assigned code points in some number\n          space).\n"
    },
    {
      "commit": "dfdb8f18c008e7ad306588c86b12fbef337427ca",
      "tree": "260a657aa0326cd895d51118d00a088e2884277d",
      "parents": [
        "f76594a2e32f7e7be3de09b1af92c1d8426a059b"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 14:13:56 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 14:13:56 2007 +0000"
      },
      "message": "Add comment questioning part of previous change (Denis?).\nFix indentation to match accumulated changes.\n"
    },
    {
      "commit": "f76594a2e32f7e7be3de09b1af92c1d8426a059b",
      "tree": "a4760bc1e9ebc565875d909c17a0505d4b095ab4",
      "parents": [
        "14838194d6b56209c914eb9e5782d9331dcbe818"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 14:07:07 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 14:07:07 2007 +0000"
      },
      "message": "Bugzilla #384.\n\n2007-08-02  Denis Ovsienko\n\n\t* rt_socket.c (kernel_rtm_ipv4): Only call rtm_write when changes\n\tare intended.  Don\u0027t set FIB flag on failed additions (such as\n\toccur with multiple paths.\n\n\nhttp://bugzilla.quagga.net/attachment.cgi?id\u003d235\u0026action\u003dview\n"
    },
    {
      "commit": "14838194d6b56209c914eb9e5782d9331dcbe818",
      "tree": "dc01344fa7db38765ea6b3b69c63320ea9b6f77b",
      "parents": [
        "61502cb7d6d636c7e04c6ae2c9e70a05cc6d202b"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 13:38:38 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 13:38:38 2007 +0000"
      },
      "message": "disable gmake workaround now that solaris directory is not built by\ndefault\n"
    },
    {
      "commit": "61502cb7d6d636c7e04c6ae2c9e70a05cc6d202b",
      "tree": "8c8b5e0a389f0cb2b62ad082c33276c658737350",
      "parents": [
        "97cee877c2d3935a6e708dc5a63f43a29cc244ed"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 13:37:30 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 13:37:30 2007 +0000"
      },
      "message": "note the use of GNU make extensions.\n"
    },
    {
      "commit": "97cee877c2d3935a6e708dc5a63f43a29cc244ed",
      "tree": "38d82b487d1a4e4aabcef2b76cb5b8176e34605b",
      "parents": [
        "37ccd1467e8500699fb9047c5ba214f7ffbd1347"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 13:36:56 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 13:36:56 2007 +0000"
      },
      "message": "Add --enable-solaris to descend into solaris-specific build directory.\nWhile it doesn\u0027t take a long time to build, this is currently the only\nthing in the tree that doesn\u0027t work with BSD make, and there\u0027s no\nreason to build solaris package control files on other systems.\n"
    },
    {
      "commit": "37ccd1467e8500699fb9047c5ba214f7ffbd1347",
      "tree": "7c4b9b14bda44d978df68c73021c850e8621ec3b",
      "parents": [
        "45ad592ec84bd10e370c11387ecb36ccb42ea3c8"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 13:23:57 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Thu Aug 02 13:23:57 2007 +0000"
      },
      "message": "workaround buggy solaris/Makefile.am which requires GNU make.\n"
    },
    {
      "commit": "45ad592ec84bd10e370c11387ecb36ccb42ea3c8",
      "tree": "4714a07c180f78c1d714b63d515c045562612c41",
      "parents": [
        "e6a01955a7d26dda6f0ecfb6a787d4c46442303b"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Jul 31 17:35:36 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Jul 31 17:35:36 2007 +0000"
      },
      "message": "[bgpd] Dont schedule dumps multiple times for same command\n\n2007-07-31 Lorenzo Colitti \u003clorenzo@colitti.com\u003e\n\n\t* bgp_dump.c: (general) Add comments to code.\n\t  (bgp_dump_interval_add) remove some redundant lines.\n\t  (bgp_dump_set) Use enum for type argument.\n\t  Avoid scheduling dump twice if exact same command\n\t  is given twice..\n"
    },
    {
      "commit": "e6a01955a7d26dda6f0ecfb6a787d4c46442303b",
      "tree": "c0760744fc4f0ed888f5919ec0e25841c869cda8",
      "parents": [
        "97cabcf760b8343512b5646e60cc228b8dc1350a"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Jul 27 16:48:55 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Jul 27 16:48:55 2007 +0000"
      },
      "message": "2007-07-27 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Bump version to 0.99.8\n"
    },
    {
      "commit": "97cabcf760b8343512b5646e60cc228b8dc1350a",
      "tree": "4aab9c935540e5eafb6f8fba8c4163e305cb809c",
      "parents": [
        "0b8c4f1d811170224e467b305137ac94861daee6"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Jul 06 17:00:24 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Jul 06 17:00:24 2007 +0000"
      },
      "message": "[lib] Add comments regarding setsockopt_multicast_ipv4 arguments.\n\n2007-07-06 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* sockopt.{c,h}: (setsockopt_multicast_ipv4) Add some comments about\n\t  the arguments.\n"
    },
    {
      "commit": "0b8c4f1d811170224e467b305137ac94861daee6",
      "tree": "1f334740ab6492fd10b882b59f459ad470e9c6e3",
      "parents": [
        "fbf24544a2e2ac97192502d34729f57933d1eb4c"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jun 27 11:12:38 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jun 27 11:12:38 2007 +0000"
      },
      "message": "[zebra] rib loop check for RIB_ENTRY_REMOVED checks wrong var\n\n2007-06-25 Denis Ovsienko\n\n\t* zebra_rib.c: (rib_add_ipv4_multipath) Loop through RIB\n\t  is using \u0027same\u0027 variable, but RIB_ENTRY_REMOVED check\n\t  is testing the constant \u0027rib\u0027 variable, fix. Impact\n\t  unknown at this point.\n"
    },
    {
      "commit": "fbf24544a2e2ac97192502d34729f57933d1eb4c",
      "tree": "09e0fef37fc1d8eb2f0b03d35d005854f69bd00e",
      "parents": [
        "536792cd883439237c4098f925ea6921122d12ef"
      ],
      "author": {
        "name": "Hasso Tepper",
        "email": "hasso@quagga.net",
        "time": "Mon Jun 25 19:30:59 2007 +0000"
      },
      "committer": {
        "name": "Hasso Tepper",
        "email": "hasso@quagga.net",
        "time": "Mon Jun 25 19:30:59 2007 +0000"
      },
      "message": "2007-06-25 Hasso Tepper \u003chasso@quagga.net\u003e\n\n\t* configure.ac: Fix typo so it compiles again on BSD systems.\n"
    },
    {
      "commit": "536792cd883439237c4098f925ea6921122d12ef",
      "tree": "5ba9e4a51c477046ce90aa24af08331053030225",
      "parents": [
        "11770e10861ccb684b608396c798aea9da05a1a2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Jun 22 19:11:14 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Jun 22 19:11:14 2007 +0000"
      },
      "message": "[bgpd] bug #368: Fix possible loop between peers going Idle\u003c-\u003eOpenSent\n\n2007-06-22 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_fsm.c: (struct FSM) Bug #368. TCP Errors during OpenSent\n\t  should cycle to Active, not to Idle or else peer bringup can\n\t  race and cycle Idle\u003c-\u003eActive. Reported and fix tested by\n\t  Mukesh Agrawal.\n"
    },
    {
      "commit": "11770e10861ccb684b608396c798aea9da05a1a2",
      "tree": "75a41a63c5f04b8ba7c0b6f5601627ea84802a04",
      "parents": [
        "8454b05606c906cff891fa97b4395d1e2fdb8cde"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Jun 22 16:14:42 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Jun 22 16:14:42 2007 +0000"
      },
      "message": "[build] configure needs to check for struct icmphdr for IRDP\n\n2007-06-22 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: IRDP also depends on struct icmphdr, enabling\n\t  only on in_pktinfo breaks when an OS acquires pktinfo, as\n\t  Solaris NV has. Reported by Jim Carlson.\n"
    },
    {
      "commit": "8454b05606c906cff891fa97b4395d1e2fdb8cde",
      "tree": "9908b74798beb00964ae590402d6b59771cb7466",
      "parents": [
        "b24970241aa19c780a00f0e9c865b98c239a27f2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jun 20 15:22:14 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jun 20 15:22:14 2007 +0000"
      },
      "message": "[vtysh] bug #371: vtysh forgets to print \u0027end\u0027 for write-terminal\n\n2007-06-20 Nicolas Deffayet \u003cnicolas@deffayet.com\u003e\n\n\t* vtysh.c: (vtysh_write_terminal) Write \u0027end\u0027 when done,\n\t  to be consistent with telnet vty, and expected by tools\n\t  like rancid.\n"
    },
    {
      "commit": "b24970241aa19c780a00f0e9c865b98c239a27f2",
      "tree": "f04b9c6a50a944edd461d66da8f65d226437d964",
      "parents": [
        "e733f949448e1cf9fa27e8b618c56a0e4badc1af"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 14 11:17:58 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 14 11:17:58 2007 +0000"
      },
      "message": "[bgpd] bug #370, default-originate was broken by a silly thinko\n\n2007-05-25 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_route.c: (bgp_default_originate) Sanity check added\n\t  previously was broken and always failed, thus this function\n\t  never could run, bug #370.\n"
    },
    {
      "commit": "e733f949448e1cf9fa27e8b618c56a0e4badc1af",
      "tree": "7835ff729868c1421a4f3b59258008731e4ab30a",
      "parents": [
        "0dc0b7080227df8aca6cc2f7961c3c55cb73c509"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Thu Jun 07 13:11:58 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Thu Jun 07 13:11:58 2007 +0000"
      },
      "message": "[ospf6d] Fix silly bug: muse use strcmp to compare strings\n\n2007-06-07 Pavol Rusnak \u003cprusnak@suse.cz\u003e\n\n\t* ospf6_lsa.c: (no_debug_ospf6_lsa_hex_cmd) Fix bug: must use strcmp\n\t  to compare strings.\n"
    },
    {
      "commit": "0dc0b7080227df8aca6cc2f7961c3c55cb73c509",
      "tree": "6e812cc69de4171c069d341fac39372a2c8259fc",
      "parents": [
        "093033144658c5d914429fad5b0a6cf952f20943"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Jun 01 13:21:20 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Jun 01 13:21:20 2007 +0000"
      },
      "message": "[linux] Fix strange compilation problem by explicitly including \u003clinux/types.h\u003e\n\n2007-06-01 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* zebra.h: On linux, we seem to need to include \u003clinux/types.h\u003e before\n\t  \u003csys/sysctl.h\u003e, otherwise we get isisd compilation errors about\n\t  __be16 not being defined.\n"
    },
    {
      "commit": "093033144658c5d914429fad5b0a6cf952f20943",
      "tree": "02e4c24a9ca95a37bb3995bdc6e0f7e3222f2b87",
      "parents": [
        "7ab62c5319bd86a3cfda32351bc4103cf9517f26"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed May 30 20:10:34 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed May 30 20:10:34 2007 +0000"
      },
      "message": "[zebra] Trivial patches so we can compile when IPv6 is not enabled\n\n2007-05-30 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* zebra_routemap.c: (route_set_src_compile) Use \u0027#ifdef HAVE_IPV6\u0027\n\t  as needed.\n\t* zebra_vty.c: (vty_show_ip_route_detail, vty_show_ip_route) Use\n\t  \u0027#ifdef HAVE_IPV6\u0027 as needed.\n\t  (show_ip_protocol) Move function definition outside of\n\t  \u0027#ifdef HAVE_IPV6\u0027 section.\n"
    },
    {
      "commit": "7ab62c5319bd86a3cfda32351bc4103cf9517f26",
      "tree": "695c3a64d3b144c0d9cf81bbedc2ed20bef4f117",
      "parents": [
        "2b5cb411cef38c28c0bfba2502f97770d55306b7"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Thu May 17 15:00:41 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Thu May 17 15:00:41 2007 +0000"
      },
      "message": "[PtP] Fix BSD problems with PtP interfaces: must treat RTA_BRD as peer address\n\n2007-05-17 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* kernel_socket.c: (ifam_read_mesg) Grab RTA_DST and RTA_GATEWAY\n\t  addresses from the message (if present, which seems unlikely on\n\t  current BSD platforms), and show them in the debug messages.\n\t  Also, add ifam_flags to the debug messages.\n\t  (ifam_read) If the interface is point-to-point, then the RTA_BRD\n\t  address should be treated as a peer address.\n"
    },
    {
      "commit": "2b5cb411cef38c28c0bfba2502f97770d55306b7",
      "tree": "4fe33934114059daf14f6110216ee6d036c0486f",
      "parents": [
        "d46d2a24e997883d9e2623b4de36aa4a08ffc89c"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 10 17:05:16 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 10 17:05:16 2007 +0000"
      },
      "message": "[autoconf] Fix missing space character in previous commit\n"
    },
    {
      "commit": "d46d2a24e997883d9e2623b4de36aa4a08ffc89c",
      "tree": "31f05936514cb4125c39fee731631e0571d7cdd6",
      "parents": [
        "6bd1a7bab32b6b077bee687161c43dc0fe82076f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 10 16:53:04 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 10 16:53:04 2007 +0000"
      },
      "message": "[autoconf] GNU_SOURCE can be defined twice, through AC_FUNC_STRNLEN\n\n2007-05-10 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Use AC_GNU_SOURCE to define _GNU_SOURCE, rather\n\t  than having lib/zebra.h do it.\n\t  AC_FUNC_STRNLEN has side-effects with latest autoconf, use\n\t  AC_CHECK_FUNC on strnlen instead.\n\t* lib/zebra.h: Don\u0027t try define _GNU_SOURCE, autoconf should do it.\n"
    },
    {
      "commit": "6bd1a7bab32b6b077bee687161c43dc0fe82076f",
      "tree": "6544cb59bf8fd6a40cbe492e3aafe6d8faa3bbf1",
      "parents": [
        "5dcf71df9649cf9c7afd26e0fd3772486ab262f6"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 10 16:52:26 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 10 16:52:26 2007 +0000"
      },
      "message": "[autoconf] add back check for inet_aton\n\n2007-05-10 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Add back check for inet_aton, which got dropped\n\t  somehow in previous jumbo patch.\n"
    },
    {
      "commit": "5dcf71df9649cf9c7afd26e0fd3772486ab262f6",
      "tree": "7d229786e167830813ce5ec5ee7c632cdafa1cfd",
      "parents": [
        "6f0e3f6e17687eb25b7b77c4fdc8324837d4700f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 10 03:00:09 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 10 03:00:09 2007 +0000"
      },
      "message": "[ospfd] Fix address qualified \u0027ip ospf auth\u0027 commands\n\n2007-05-09 Milan Kocian \u003cmilon@wq.cz\u003e\n\n\t* ospf_vty.c: Fix commands: \u0027ip ospf authentication A.B.C.D\u0027,\n\t  \u0027no ip ospf authentication A.B.C.D\u0027, \u0027no ip ospf\n\t  authentication-key A.B.C.D\u0027. Simply fix argv\u0027s indexes and\n          argc check in DEFUN functions.\n"
    },
    {
      "commit": "6f0e3f6e17687eb25b7b77c4fdc8324837d4700f",
      "tree": "8a94d9212060f0f2ee7cbd0079c2687eed7348dc",
      "parents": [
        "08d3d5b398ae81de7659509f159e814d1bbd4375"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 10 02:38:51 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 10 02:38:51 2007 +0000"
      },
      "message": "[autoconf] bugs 162,303,178: Fix \u0027present but can not be compiled\u0027 warnings\n\n2007-05-09 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: sys/conf.h depends on sys/param.h, at least on\n\t  FBSD 6.2.\n\t  (bug #363) Should check for in_pktinfo for IRDP\n\n2006-05-27 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: General cleanup of header and type checks, introducing\n\t  an internal define, QUAGGA_INCLUDES, to build up a list of\n\t  stuff to include so as to avoid \u0027present but cant be compiled\u0027\n\t  warnings.\n\t  Misc additional checks of things missing according to autoscan.\n\t  Add LIBM, for bgpd\u0027s use of libm, so as to avoid burdening\n\t  LIBS, and all the binaries, with libm linkage.\n\t  Remove the bad practice of using m4 changequote(), just\n\t  quote the []\u0027s in the case statements properly.\n\t  This should fix bugs 162, 303 and 178.\n\t* */*.{c,h}: Update all HAVE_* to the standard autoconf namespaced\n\t  HAVE_* defines. I.e. HAVE_SA_LEN -\u003e HAVE_STRUCT_SOCKADDR_SA_LEN,\n\t* bgpd/Makefile.am: Add LIBM to bgpd\u0027s LDADD, for pow().\n"
    },
    {
      "commit": "08d3d5b398ae81de7659509f159e814d1bbd4375",
      "tree": "adba8d8c3499a5156d24e9b0a3b077f357553158",
      "parents": [
        "fb982c25aa771b7c7425a3c3cce0a2cda0a715de"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 07 16:38:35 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 07 16:38:35 2007 +0000"
      },
      "message": "[ospfd] Bug #330 regression: Fix ospf_spf_add_parent assert\n\n2007-05-07 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_spf.c: (ospf_vertex_new) Dont init vertices to infinity,\n\t  just let 0 be a special case.\n\t  (ospf_spf_add_parent) 0 distance candidate vertex is special,\n\t  cost still to be initialised - asserting that new distance\n\t  is \u003c\u003d existing only makes sense where w already has a cost.\n\t  (ospf_spf_next) Infinite cost links should not be followed,\n\t  bar those of the root.\n"
    },
    {
      "commit": "fb982c25aa771b7c7425a3c3cce0a2cda0a715de",
      "tree": "74aa4dc86b04365d90a1030682796421b0eff011",
      "parents": [
        "5921ef9aae3b5d6ff8663298f649fb9d76594acd"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 04 20:15:47 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 04 20:15:47 2007 +0000"
      },
      "message": "[bgpd] Trim memory usage of BGP routes\n\n2007-05-03 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_route.h: (struct info) Move less frequently used\n\t  fields to a lazily allocated struct info_extra.\n\t  Export bgp_info_extra_get\n\t* bgp_route.c: (bgp_info_extra_new) allocate extra\n\t  (bgp_info_extra_free) Free damp info and the info_extra.\n\t  (bgp_info_extra_get) Retrieve the info_extra of a struct\n\t  info, allocating as required.\n\t  (generally) adjust to use info-\u003eextra\n\t* bgp_damp.c: (generally) use bgp_info_extra_get to access\n\t  dampinfo\n\t* bgp_attr.h: Move rarely allocated attributes from struct attr\n\t  to a struct attr_extra, for a substantial saving in size of\n\t  struct attr.\n\t* bgp_attr.c: (bgp_attr_extra_{new,free}), new, self-explanatory.\n\t  (bgp_attr_extra_get) Get the attr_extra for a given struct\n\t  attr, allocating it if needs be.\n\t  (bgp_attr_dup) Shallow copy the struct attr and its attr_extra.\n\t  (generally) adjust to know about attr-\u003eextra.\n\t* bgp_debug.c: (bgp_dump_attr) ditto\n\t* bgp_vty.c: (show_bgp_memory) print attr and info extra sizes.\n\t* bgp_nexthop.c: (generally) adjust to know about attr-\u003eextra\n\t  and info-\u003eextra.\n\t* bgp_{packet,routemap,snmp,zebra}.c: ditto\n\t* lib/memtypes.c: Add MTYPE_ATTR_EXTRA and MTYPE_BGP_ROUTE_EXTRA\n"
    },
    {
      "commit": "5921ef9aae3b5d6ff8663298f649fb9d76594acd",
      "tree": "5164adafc18404f698563fb9044a11780927926c",
      "parents": [
        "7514fb7739f74311830e9ddd1381d0d228224f61"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 04 20:13:20 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 04 20:13:20 2007 +0000"
      },
      "message": "[zebra] Add zebra_routemap.c\n\n\t* zebra_routemap.c should have been in the commit of Steven\u0027s\n\t  routemap patch.\n"
    },
    {
      "commit": "7514fb7739f74311830e9ddd1381d0d228224f61",
      "tree": "4d4b9a4fdfcea4cb6fa496085327f1aae9a9a380",
      "parents": [
        "5fa05099567bbe42aae87a9bef8fd630b3666a4d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed May 02 16:05:35 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed May 02 16:05:35 2007 +0000"
      },
      "message": "[zebra] Routemap support on received routes, with \u0027set src\u0027 command (linux)\n\n2007-05-01 David L Stevens \u003cdlstevens@us.ibm.com\u003e\n\n\t* (general) These changes collectively add route-map and\n\t  prefix-list support to zebra and fix a bug in \"show\n\t  route-map\" (with no argument).\n\t* doc/main.texi: added route-map, prefix-list, ip protocol\n\t  and set src documentation\n\t* lib/command.h: added PROTOCOL_NODE type\n\t* lib/log.c: (proto_name2num) new function, protocol name to\n\t  number translation.\n\t* lib/routemap.c: (vty_show_route_map) fixed \"show route-map\"\n\t  without route-map name\n\t* lib/routemap.h: added RMAP_ZEBRA type\n\t* lib/zebra.h: added proto_name2num() prototype\n\t* vtysh/extract.pl.in: added VTYSH_ZEBRA flag for route-map and\n\t  plist\n\t* vtysh/Makefile.am: added zebra_routemap.c\n\t* vtysh/vtysh.h: added VTYSH_ZEBRA flag to VTYSH_RMAP\n\t* zebra/connected.c: (connected_up_ipv4) added src preference argument\n\t  to rib_add_ipv4()\n\t* zebra/kernel_socket.c: (rtm_read) ditto\n\t* zebra/main.c: added prefix list initialization\n\t* zebra/Makefile.am: added zebra_routemap.c source file\n\t* zebra/rib.h: added generic address union \"g_addr\" and use in\n\t  existing places that had an explicit union.\n\t  Added \"src\" to struct nexthop.\n\t  Added preferred src arg to nexthop_ipv4_add and rib_add_ipv4.\n\t* zebra/rt_netlink.c: (netlink_routing_table) set preferred source on\n\t  netlink messages.\n\t  (netlink_route_change) ditto\n\t  (netlink_route_multipath) ditto.\n\t* zebra/rtread_getmsg.c: (handle_route_entry) added (NULL) src to\n\t  rib_add_ipv4() call.\n\t* zebra/rtread_proc.c: (proc_route_read) ditto\n\t* zebra/zebra_rib.c: (nexthop_ipv4_add) add src argument.\n\t  (nexthop_ipv4_ifindex_add) ditto\n\t  (rib_add_ipv4) ditto\n\t  (nexthop_active_check) Add route-map processing.\n\t* zebra/zebra_routemap.c: new file for zebra route-map commands.\n\t* zebra/zebra_vty.c: (ip_protocol_cmd) Apply route-map to protocol\n\t  (vty_show_ip_route_detail) added \"src\" printing\n\t  (vty_show_ip_route) ditto\n\t  (show_ip_protocol_cmd) new command, list routemaps.\n\t  (config_write_protocol) write out routemap protocl config.\n\t  (zebra_vty_init) Install the new routemap protocol commands.\n\t* zebra/zserv.c: (zread_ipv4_add) added (NULL) src arg\n\t  (zebra_init) init zebra route-maps.\n\t* zebra/zserv.h: add zebra_route_map_init\n"
    },
    {
      "commit": "5fa05099567bbe42aae87a9bef8fd630b3666a4d",
      "tree": "a385a92453a60d2c36d6f13d1177d153afb71a3f",
      "parents": [
        "f0ec832a78549a85cf4e47d884036c1178f749d3"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Mon Apr 30 19:14:08 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Mon Apr 30 19:14:08 2007 +0000"
      },
      "message": "[build] Improve portability by invoking gcc with -std\u003dgnu99 instead of -std\u003dc99\n\n2007-04-30 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* configure.ac: Change gcc CFLAGS from \u0027-std\u003dc99\u0027 to \u0027-std\u003dgnu99\u0027\n\t  to improve portability.\n"
    },
    {
      "commit": "f0ec832a78549a85cf4e47d884036c1178f749d3",
      "tree": "6c3384cccf81993d69208f13145c33741abd7afc",
      "parents": [
        "a857eb6be5b7f639e76fe3ef7711a3700abe20bc"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Mon Apr 30 16:52:05 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Mon Apr 30 16:52:05 2007 +0000"
      },
      "message": "[ospfd] network command now behaves more logically when a peer prefix is defined\n\n2007-04-30 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospfd/ospfd.c: (ospf_network_match_iface) Comment out\n\t  COMPATIBILITY_MODE.  Going forward, the ospf \"network\" command\n\t  will use a simple test: does the network command prefix\n\t  contain the connected (destination) prefix of the interface?\n\t* doc/ospfd.texi: Add a paragraph to the description of the OSPFv2\n\t  network command to explain how we handle interfaces with\n\t  peer addresses.\n"
    },
    {
      "commit": "a857eb6be5b7f639e76fe3ef7711a3700abe20bc",
      "tree": "022c60adc6c7749854fbc65ca553b842b4a8c4de",
      "parents": [
        "03e214c87bf4537576d2c7e9b2d812d1b0da2f56"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Apr 29 20:13:35 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Apr 29 20:13:35 2007 +0000"
      },
      "message": "[0.99] Version bump to 0.99.7\n\n2007-04-29 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Bump to 0.99.7\n"
    },
    {
      "commit": "03e214c87bf4537576d2c7e9b2d812d1b0da2f56",
      "tree": "46f53f23bc77af0c8e6835853fbc355c3c342ddf",
      "parents": [
        "923de654c8d251d6714a6f9da2e93c236e935042"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Apr 29 18:31:07 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Apr 29 18:31:07 2007 +0000"
      },
      "message": "[bgpd] Use defines for default weight\n\n2007-04-22 Sebastien Tandel \u003csebastien@tandel.be\u003e\n\n\t* bgp_attr.h : Definition of BGP_ATTR_DEFAULT_WEIGHT.\n\t* bgp_attr.c : (bgp_attr_default_intern) now uses\n\t  bgp_attr_default_set instead of duplicating the same code.\n\t  (general) Use of BGP_ATTR_DEFAULT_WEIGHT. Replace two 16 by\n\t  IPV6_MAX_BYTELEN.\n"
    },
    {
      "commit": "923de654c8d251d6714a6f9da2e93c236e935042",
      "tree": "473cc25308810340efb82724101bd428af352958",
      "parents": [
        "e8eb8340c14f53194786b766992f61cc0abf7a8e"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Apr 29 18:25:17 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Apr 29 18:25:17 2007 +0000"
      },
      "message": "[bgpd] Fix warnings: hash callbacks should match hash API declarations\n\n2007-04-22 Sebastien Tandel \u003csebastien@tandel.be\u003e\n\n\t* bgp_advertise.c : (baa_hash_alloc, baa_hash_key, baa_hash_cmp)\n\t  conforms to quagga hash API. Defines _hash_[alloc|key|cmp] with\n\t  void * arguments as defined by the API.\n\t* bgp_aspath.c,h : (aspath_key_make) conforms to quagga hash API.\n\t  Defines _hash_[alloc|key|cmp] with void * arguments as defined by\n\t  the API.\n\t* bgp_attr.c,h : (cluster_hash_alloc, cluster_hash_key_make,\n\t  cluster_hash_cmp, transit_hash_alloc, transit_hash_key_make,\n\t  transit_hash_cmp, attrhash_key_make, attrhash_cmp,\n\t  bgp_attr_hash_alloc) conforms to quagga hash API. Defines\n\t  _hash_[alloc|key|cmp] with void * arguments as defined by the API.\n"
    },
    {
      "commit": "e8eb8340c14f53194786b766992f61cc0abf7a8e",
      "tree": "dc5c6aa366ec2393d0f5467b7c21f91ac264065d",
      "parents": [
        "bd9da7fe8cdbc915f3b43a0632326401f28fe310"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Apr 29 17:32:08 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Apr 29 17:32:08 2007 +0000"
      },
      "message": "[zebra/solaris] fix if_get_index passing wrong arg to lifreq_set_name\n\n2007-04-29 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* if_ioctl_solaris.c: (if_get_index) Fix bogus argument passed\n\t  to lifreq_set_name().\n"
    },
    {
      "commit": "bd9da7fe8cdbc915f3b43a0632326401f28fe310",
      "tree": "d7c7c0993c123f2d28ba2ba4cf891faef428b115",
      "parents": [
        "bcdda30bae1fef67d998211c54c06270ba42864c"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Apr 29 16:50:46 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Apr 29 16:50:46 2007 +0000"
      },
      "message": "[zebra] Fix merge error in previous solaris changeset\n\n2007-04-29 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ioctl{_solaris,}.c: (if_get_mtu) Fix missing ; in last commit.\n"
    },
    {
      "commit": "bcdda30bae1fef67d998211c54c06270ba42864c",
      "tree": "e4daad51d00adb3188154d9961f908aa7f204b90",
      "parents": [
        "d3d7e237fdc661d1d1d00a8b43657d1d719410e6"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sun Apr 29 15:48:22 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sun Apr 29 15:48:22 2007 +0000"
      },
      "message": "[logging] Minor performance tweak\n\n2007-04-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* log.c: (quagga_timestamp) Optimize the subsecond timestamp generation.\n"
    },
    {
      "commit": "d3d7e237fdc661d1d1d00a8b43657d1d719410e6",
      "tree": "5121712aa4d6170794678c0c7200cc05adc7f529",
      "parents": [
        "c749b7227b331daaac23eb271698e4f60301619f"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sun Apr 29 15:24:15 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sun Apr 29 15:24:15 2007 +0000"
      },
      "message": "[logging] Add new \"log timestamp precision\" command for subsecond timestamps\n\n2007-04-29 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* basic.texi: Document the new \u0027log timestamp precision\u0027 command.\n"
    },
    {
      "commit": "c749b7227b331daaac23eb271698e4f60301619f",
      "tree": "8d1e3274f70e8c386dd3b5eea80302f5dc87393c",
      "parents": [
        "1ed72e0b3a643fa1be6f1efa904965798a575cd1"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sun Apr 29 03:53:31 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sun Apr 29 03:53:31 2007 +0000"
      },
      "message": "[logging] Add new \"log timestamp precision\" command for subsecond timestamps\n\n2007-04-28 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* vtysh.c: (vtysh_log_timestamp_precision,\n\t  no_vtysh_log_timestamp_precision) Implement new log timestamp\n\t  precision commands: send to all daemons.\n\t  (vtysh_init_vty) Install new log timestamp precision commands.\n"
    },
    {
      "commit": "1ed72e0b3a643fa1be6f1efa904965798a575cd1",
      "tree": "052341ede20e44b6aa23b1cd799d08f9b762c1c2",
      "parents": [
        "eda9ba743c1eb7c32b2ae9b8989d3555f1890758"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sat Apr 28 22:14:10 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sat Apr 28 22:14:10 2007 +0000"
      },
      "message": "[logging] Add new \"log timestamp precision\" command for subsecond timestamps\n\n2007-04-28 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* command.c: (config_write_host) Save \"log timestamp precision\"\n\t  if not default value.\n\t  (show_logging) Show configured timestamp precision.\n\t  (config_log_timestamp_precision) Enable configuration of timestamp\n\t  precision.\n\t  (no_config_log_timestamp_precision) Restore default timestamp\n\t  precision.\n\t  (cmd_init) Install new timestamp precision commands.\n\t* log.h: (struct zlog) New timestamp_precision field.\n\t  (quagga_timestamp) New function to generate a timestamp with the\n\t  desired precision.\n\t  (struct timestamp_control) Declare a structure for use in avoiding\n\t  repeated duplicate calls to quagga_timestamp.\n\t* log.c: (quagga_timestamp) New function to generate a timestamp\n\t  of the desired precision.\n\t  (time_print) Call quagga_timestamp if the time hasn\u0027t already been\n\t  calculated.\n\t  (vzlog) Initialize a timestamp_control structure and pass it to\n\t  time_print and vty_log.\n\t  (zlog_backtrace) Fix 64-bit problem: cannot print size_t with %u.\n\t* vty.h: Must now include \"log.h\".\n\t  (vty_log) Takes an additional struct timestamp_control argument.\n\t* vty.c: (vty_log_out) Use new struct timestamp_control and new\n\t  quagga_timestamp function to print timestamps of the desired\n\t  precision.\n\t  (vty_time_print) Use new quagga_timestamp function.\n\t  (vty_log) Accept new struct timestamp_control argument and pass it\n\t  down to vty_log_out.\n"
    },
    {
      "commit": "eda9ba743c1eb7c32b2ae9b8989d3555f1890758",
      "tree": "f135b84aff5b76bf82d7fa0f00a1726674661164",
      "parents": [
        "33672eddf14c5b619fc38975d4c1f2888189cbc8"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Apr 27 18:13:15 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Apr 27 18:13:15 2007 +0000"
      },
      "message": "[64-bit] Fix 4 problems with printf formats and 64-bit size_t\n\n2007-04-27 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* lib/smux.c: (smux_trap) Fix printf format to work with 64-bit size_t.\n\t* ospf6d/ospf6_snmp.c: (ospfv3AreaEntry, ospfv3AreaLsdbEntry) Fix some\n\t  zlog_debug printf formats to work with 64-bit size_t.\n"
    },
    {
      "commit": "33672eddf14c5b619fc38975d4c1f2888189cbc8",
      "tree": "6f3d5d1bf2cf861d573db6711ce849b27d3b8b8f",
      "parents": [
        "e8a56f02ee52a0a4f06440f4dfef86a21e6ce5c1"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Apr 27 18:03:11 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Apr 27 18:03:11 2007 +0000"
      },
      "message": "[ripd, ripngd] Remove useless code in rip_vty_out_uptime function\n\n2007-04-27 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ripd/ripd.c: (rip_vty_out_uptime) Remove unused variable timer_now.\n\t* ripngd/ripngd.c: (ripng_vty_out_uptime) Remove unused variable\n\t  timer_now.\n"
    },
    {
      "commit": "e8a56f02ee52a0a4f06440f4dfef86a21e6ce5c1",
      "tree": "3c7ba00f3e9c7185f242f2a90afeb1e0c3abb4e1",
      "parents": [
        "1d720daa61692f9754d500ff530614798b8b3bf2"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sat Apr 21 20:46:31 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sat Apr 21 20:46:31 2007 +0000"
      },
      "message": "[ospfd] Fix bug in \u0027passive-interface default\u0027 behavior\n\n2007-04-21 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_interface.c: (ospf_if_set_multicast) Fix bug: was testing\n\t  interface passive status improperly in light of the recent\n\t  \u0027passive-interface default\u0027 patch.  Now need to test\n\t  OSPF_IF_PASSIVE_STATUS(oi) instead of\n\t  OSPF_IF_PARAM(oi, passive_interface).\n"
    },
    {
      "commit": "1d720daa61692f9754d500ff530614798b8b3bf2",
      "tree": "dffe73ce8fbd4cc94f49b82d8e37de3f37767907",
      "parents": [
        "cb6d86bdc5711c9aeeeea8072ad3b6d730d0c591"
      ],
      "author": {
        "name": "David Young",
        "email": "dyoung@pobox.com",
        "time": "Mon Apr 16 23:13:01 2007 +0000"
      },
      "committer": {
        "name": "David Young",
        "email": "dyoung@pobox.com",
        "time": "Mon Apr 16 23:13:01 2007 +0000"
      },
      "message": "Use \u0027path (category)\u0027 form.\n"
    },
    {
      "commit": "cb6d86bdc5711c9aeeeea8072ad3b6d730d0c591",
      "tree": "81a418f5d19c0b3fbcfd56b7ab214c111473e88c",
      "parents": [
        "33b931eef55a752b997f4122a715b470a4b48911"
      ],
      "author": {
        "name": "David Young",
        "email": "dyoung@pobox.com",
        "time": "Mon Apr 16 23:11:19 2007 +0000"
      },
      "committer": {
        "name": "David Young",
        "email": "dyoung@pobox.com",
        "time": "Mon Apr 16 23:11:19 2007 +0000"
      },
      "message": "Note my change to zebra/connected.c.\n"
    },
    {
      "commit": "33b931eef55a752b997f4122a715b470a4b48911",
      "tree": "541b975944ad407d87a2000f4008cfc7c0c06f75",
      "parents": [
        "93c1749c828cf750fbcc850730b9f2a872e38325"
      ],
      "author": {
        "name": "David Young",
        "email": "dyoung@pobox.com",
        "time": "Mon Apr 16 05:54:02 2007 +0000"
      },
      "committer": {
        "name": "David Young",
        "email": "dyoung@pobox.com",
        "time": "Mon Apr 16 05:54:02 2007 +0000"
      },
      "message": "Only suppress adding a connected route to the kernel if it is\nalready marked \"real\" (ZEBRA_IFC_REAL), i.e., \"in kernel.\" According\nto Paul Jakma, this probably fixes Quagga bug #202.\n"
    },
    {
      "commit": "93c1749c828cf750fbcc850730b9f2a872e38325",
      "tree": "05800e33ebd68d5e6a2629d20ba54ad4db0aaa7c",
      "parents": [
        "6dfa827b7be871fc7301d4db04a99b509c9fd7aa"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sun Apr 15 19:17:24 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sun Apr 15 19:17:24 2007 +0000"
      },
      "message": "[bgpd] Minor performance improvement patch\n\n2007-04-15 Sebastien Tandel \u003csebastien@tandel.be\u003e\n\n\t* bgp_aspath.c: (aspath_as_add, aspath_segment_add) Minor performance\n\t  optimization: while loop should test one pointer instead of two.\n"
    },
    {
      "commit": "6dfa827b7be871fc7301d4db04a99b509c9fd7aa",
      "tree": "426112bb139e33cddab91f5a5ae15127149ab58d",
      "parents": [
        "a1fdf9479637642ae3de0ee6ef5c0958d6e687d8"
      ],
      "author": {
        "name": "Vincent Jardin",
        "email": "vincent.jardin@6wind.com",
        "time": "Thu Apr 12 07:43:49 2007 +0000"
      },
      "committer": {
        "name": "Vincent Jardin",
        "email": "vincent.jardin@6wind.com",
        "time": "Thu Apr 12 07:43:49 2007 +0000"
      },
      "message": "Fix the display of some timers. (show ipv6 ripng and show ipv6 ripng status)\n"
    },
    {
      "commit": "a1fdf9479637642ae3de0ee6ef5c0958d6e687d8",
      "tree": "28dfc85b9bfcbbf5064703484fc60a01c904e5e9",
      "parents": [
        "f5e004f74fecaf84b50f8c1823432077ad7e15b7"
      ],
      "author": {
        "name": "Vincent Jardin",
        "email": "vincent.jardin@6wind.com",
        "time": "Wed Apr 11 15:12:05 2007 +0000"
      },
      "committer": {
        "name": "Vincent Jardin",
        "email": "vincent.jardin@6wind.com",
        "time": "Wed Apr 11 15:12:05 2007 +0000"
      },
      "message": "Fix the display of route timeout in \"show ip rip\". (Use thread_timer_remain_second)\n"
    },
    {
      "commit": "f5e004f74fecaf84b50f8c1823432077ad7e15b7",
      "tree": "bffb42983f6b993c861ac67192646ed82db9fc1f",
      "parents": [
        "6e4ab12f1504caa95edc7702a82f118d0de15a0a"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:43:43 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:43:43 2007 +0000"
      },
      "message": "[zebra] MTU change should propogate to zserv client on BSD/Solaris\n\n2007-04-10 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ioctl{_solaris,}.c: (if_get_mtu) Ping clients via\n          zebra_interface_up_update if MTU is changed.\n"
    },
    {
      "commit": "6e4ab12f1504caa95edc7702a82f118d0de15a0a",
      "tree": "50b6784229f92d404e5d6509848c135395743f2f",
      "parents": [
        "16d2e2410d6e8cf53fac05b956f3e7ee53bc7234"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:36:48 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:36:48 2007 +0000"
      },
      "message": "[bgpd] Bug #354: Take care to keep reads of MP_(UN)REACH_NLRI in bounds\n\n2007-04-08 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_attr.c: (general) Bug #354: parsing of MP_REACH_NLRI and\n\t  MP_UNREACH_NLRI does not take sufficient care to ensure reads\n\t  from stream buffer stay in-bounds. Hence bgpd may attempt to read\n\t  beyond end of stream, if given a crafted packet. As it uses the\n\t  stream access methods to do so, this will typically result in\n\t  assert() being hit in stream.c. Where code is compiled without\n\t  assert() enabled, result is unknown.\n\t  (struct message attr_str) should be static.\n\t  (bgp_mp_reach_parse) Carefully check length remaining in stream\n\t  against amount desired to read from stream, prior to each read,\n\t  particularly where lengths are conditional on data obtained from\n\t  stream - using STREAM_READABLE.\n\t  Remove code to parse SNPA-number, it\u0027s a defunct field and changed\n\t  to a fixed size in latest BGP MP update RFC - log warning if\n\t  SNPA-number is not 0.\n\t  (bgp_mp_unreach_parse) Check withdraw_length carefully against\n\t  STREAM_READABLE.\n\t  (bgp_attr_parse) If attribute-parser function returns error, log\n\t  warning.\n\t  Log attribute type on mismatch.\n"
    },
    {
      "commit": "16d2e2410d6e8cf53fac05b956f3e7ee53bc7234",
      "tree": "4679c5ed9d1ec64d41da13a44c1fcad76e4da9be",
      "parents": [
        "d9a18f1113b915dd0d2a4883a9149f06dd61352e"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:32:10 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:32:10 2007 +0000"
      },
      "message": "[bgpd] V. quick route flap gets mistaken for duplicate, route is then ignored\n\n2007-04-08 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_route.c: (general) Same bug as fixed on 2006-11-28 by ajs for\n\t  bgp static routes, but for main BGP RIB: Quick \u0027flap\u0027 of routes\n\t  can cause bgpd to mistake a new route for a duplicate route,\n\t  due to presence of removed, but not yet processed BGP RIB entry.\n\t  (bgp_update_rsclient) Ignore REMOVED bgp_info for duplicate,\n\t  restore route instead.\n\t  (bgp_update_main) Ditto.\n"
    },
    {
      "commit": "d9a18f1113b915dd0d2a4883a9149f06dd61352e",
      "tree": "0d81d8b3d83b9023ccf396bb1e80085c1dbcdf55",
      "parents": [
        "d9d00a689ea636af58f89cb62291245bb2a1bc7d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:30:20 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:30:20 2007 +0000"
      },
      "message": "[zebra] Retain configured IPv4 address upon removal by kernel\n\n2007-04-08 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* interface.c: (if_delete_update) Address removal triggered\n\t  by kernel shouldn\u0027t remove configured IPv4 address from connected\n\t  list.\n"
    },
    {
      "commit": "d9d00a689ea636af58f89cb62291245bb2a1bc7d",
      "tree": "dd380561afde4c956d0c3de1051fd76057269918",
      "parents": [
        "6dc686a29ecdfa8f8011eee17e4e6276ab175a0d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:28:04 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:28:04 2007 +0000"
      },
      "message": "[testzebra] stubs should call kernel_address_add on IP address install\n\n2007-04-08 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* {ioctl,kernel}_null.c: Install of IP address should\n\t  reflect back to zebra via kernel_address_add..., makes\n\t  testzebra more useful.\n"
    },
    {
      "commit": "6dc686a29ecdfa8f8011eee17e4e6276ab175a0d",
      "tree": "bd4a1f7b1c32318584bec6b4f420089aadc81b07",
      "parents": [
        "37a217a59bfd32381034a0ce0adbac1c34cbec37"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:24:45 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:24:45 2007 +0000"
      },
      "message": "[zebra] Bug #351: Don\u0027t redistribute routes to ipv4 link-local prefixes\n\n2007-04-07 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* lib/prefix.h: Add define to match IPv4 Link-Local addresses\n\t* zebra/redistribute.c: (zebra_check_addr) Don\u0027t redistribute routes\n\t  to IPv4 link-local prefixes, fixes bug #351.\n\t* zebra/redistribute.h: Export zebra_check_addr.\n\t* zebra/router-id.c: (router_id_bad_address) re-use zebra_check_addr\n\t  rather than implementing similar logic.\n"
    },
    {
      "commit": "37a217a59bfd32381034a0ce0adbac1c34cbec37",
      "tree": "2f3d7a298c0b625163cd63bfa9bf32e1aa72012f",
      "parents": [
        "85ef784e8a41a6dd11da42e10368f80c8bdb99d8"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:20:29 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Apr 10 19:20:29 2007 +0000"
      },
      "message": "[bgpd] bug #352: IPv6/Multicast address-family config not written out\n\n2007-04-07 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgpd.c: (general) Fix bug #352\n\t  (bgp_config_write_family_header) write ipv6/multicast\n\t  address family header.\n\t  (bgp_config_write) write out ipv6 multicast AF config.\n"
    },
    {
      "commit": "85ef784e8a41a6dd11da42e10368f80c8bdb99d8",
      "tree": "b2089c197ee4eaefc18a15d1cb30118f2c66daab",
      "parents": [
        "b75ae99e1d95685869fb38049e1936129fe17fc9"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Mar 23 11:19:08 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Mar 23 11:19:08 2007 +0000"
      },
      "message": "[ospfd] Bug #330 regression: failure to calculate routes through networks\n\n2007-03-23 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_spf.c: (ospf_nexthop_calculation) Fix silly regression\n\t  causing ospfd to fail to calculate paths past networks not\n\t  attached to root vertex, introduced with bug #330 fixes.\n"
    },
    {
      "commit": "b75ae99e1d95685869fb38049e1936129fe17fc9",
      "tree": "d7e732cb77ba01c0605594f81ea3e16c42c74b1c",
      "parents": [
        "54afb658829d4bfe5de52685f77af8c8273e78c0"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Mar 23 11:17:28 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Mar 23 11:17:28 2007 +0000"
      },
      "message": "[ospfd] Instrument ospf_spf with more debug log messages\n\n2007-03-23 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_spf.c: (various) Add more debug statements.\n"
    },
    {
      "commit": "54afb658829d4bfe5de52685f77af8c8273e78c0",
      "tree": "ad3c8ea9193d85267afe3a84e2fa03a71309870d",
      "parents": [
        "a4c648281dfdc45687580ea2d20884b5d7dbdc8d"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed Mar 21 21:03:44 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed Mar 21 21:03:44 2007 +0000"
      },
      "message": "[doc] Makefile VPATH patch\n\n2007-03-21 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* Makefile.am: Patch rule for draft-zebra-00.txt to work\n\t  in VPATH build environments.\n"
    },
    {
      "commit": "a4c648281dfdc45687580ea2d20884b5d7dbdc8d",
      "tree": "beca0c3e413f1b9eee1266906a3035b256c8c147",
      "parents": [
        "afb88a669167358ea2be64aa0d10c8c42fa7509c"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed Mar 21 18:57:38 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed Mar 21 18:57:38 2007 +0000"
      },
      "message": "[ripd] Fix \"show ip rip status\" display of time until next update\n\n2007-03-21 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ripd.c: (show_ip_rip_status) Use new thread_timer_remain_second\n\t  function instead of rip_next_thread_timer to display the time until\n\t  next update properly.\n\t  (rip_next_thread_timer) Remove obsolete function.\n"
    },
    {
      "commit": "afb88a669167358ea2be64aa0d10c8c42fa7509c",
      "tree": "2439441fa56db6ecbae310473af7f1e1808916f2",
      "parents": [
        "ad81f8cc2e77275cdeef1267d1ff4173eb89e093"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Tue Mar 20 20:48:27 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Tue Mar 20 20:48:27 2007 +0000"
      },
      "message": "[lib] Make message lookup function more robust.\n\n2007-03-20 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* log.c: (mes_lookup) Make the function more robust: check for\n\t  cases where the index does not match the key value at that position.\n\t  If so, give a warning and fall back to a linear search.\n\t  And improve the error message in cases where even that fails.\n"
    },
    {
      "commit": "ad81f8cc2e77275cdeef1267d1ff4173eb89e093",
      "tree": "05b192314db804a18e2c8ca329b4f7bf3475033d",
      "parents": [
        "56b3ea09bb613b066824c03290a58f8f2dfae9fd"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed Mar 14 22:05:18 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed Mar 14 22:05:18 2007 +0000"
      },
      "message": "[ospfd] Return SNMP standard neighbor state values, not quagga internal ones\n\n2007-03-14 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_snmp.c: (ospf_snmp_neighbor_state) New function to\n\t  map internal quagga neighbor states to SNMP standard values.\n\t  (ospfNbrEntry) Call new ospf_snmp_neighbor_state function.\n"
    },
    {
      "commit": "56b3ea09bb613b066824c03290a58f8f2dfae9fd",
      "tree": "26e0c5c3bbadfc48cba91584c21e06c971e68d31",
      "parents": [
        "c136d24406b62510a8c7a3c89e7716d0819e8fc2"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed Mar 14 20:21:43 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed Mar 14 20:21:43 2007 +0000"
      },
      "message": "[ospfd] Fix two debug messages that used inet_ntoa more than once\n\n2007-03-14 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_zebra.c: (ospf_zebra_add, ospf_zebra_delete) Fix bug\n\t  where inet_ntoa was used twice in the same debug message,\n\t  which doesn\u0027t work because there\u0027s a single shared buffer\n\t  for the returned string.  The fix is to use inet_ntop.\n"
    },
    {
      "commit": "c136d24406b62510a8c7a3c89e7716d0819e8fc2",
      "tree": "65dc30951f154c2af9adc005a6041ca8994522ca",
      "parents": [
        "6502208c3217e52e693146e6b72e76fd76982a51"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 08 17:50:01 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 08 17:50:01 2007 +0000"
      },
      "message": "[ospf6d] Bug 322: ospf6d show ipv6 neighbour showing wrong times\n\n2007-03-08 David Siebörger d.sieborger@ru.ac.za\n\n\t* ospf6_neighbor.c: (ospf6_neighbor_show) Fix bug #322, ospf6d\n\t  wasn\u0027t updated to match thread times changing to relative\n\t  time.\n"
    },
    {
      "commit": "6502208c3217e52e693146e6b72e76fd76982a51",
      "tree": "36a14ca536e7ce4b2d89267ab223fe9ed570ec82",
      "parents": [
        "c32d28b765e936acb8695f73a119d73cacff2610"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Mar 06 13:43:05 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Mar 06 13:43:05 2007 +0000"
      },
      "message": "[zebra] Fix interface metric bug on BSD\n\n2007-03-06 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* kernel_socket.c: (ifam_read) Do not update interface metric on\n\t  receipt of NEW/DEL ADDR messages, bogus as: a) some systems\n\t  dont include iface metric for address events b) we didn\u0027t\n\t  update clients either. Initial diagnosis by Eugene Grosbein.\n"
    },
    {
      "commit": "c32d28b765e936acb8695f73a119d73cacff2610",
      "tree": "9fe15aab5dce014eb71fc97b1659a3a958ad927d",
      "parents": [
        "4056a544eb0b7ea513bca0d70808e671c3f2c25b"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Tue Feb 27 15:24:36 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Tue Feb 27 15:24:36 2007 +0000"
      },
      "message": "[ospf6d] Fix string comparison bug in ospf6_lsa_handler_name.\n\n2007-02-27  Pavol Rusnak \u003cprusnak@suse.cz\u003e\n\n\t* ospf6_lsa.c: (ospf6_lsa_handler_name) Fix bug: must use strcmp\n\t  to compare strings.\n"
    },
    {
      "commit": "4056a544eb0b7ea513bca0d70808e671c3f2c25b",
      "tree": "d5e3ecf637a6ac20215a33e100b63c41eb6c53df",
      "parents": [
        "bd34fb346db5bb1f0bc8eeeef1868e296d889053"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Tue Feb 27 13:55:46 2007 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Tue Feb 27 13:55:46 2007 +0000"
      },
      "message": "[ospfd] Fix bug: should exit immediately on SIGTERM if OSPF not actually running\n\n2007-02-27 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospfd.c: (ospf_terminate) Exit immediately if ospf is not\n\t  actually running (e.g. the config file was empty).  Fixes\n\t  bug where SIGTERM would not kill ospfd.\n"
    },
    {
      "commit": "bd34fb346db5bb1f0bc8eeeef1868e296d889053",
      "tree": "d29904361a06e21d77fc5cbb163c39dd327962fe",
      "parents": [
        "ff1dd550b01fd6bb4aa137cfee282e6175f89c50"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Feb 26 17:14:48 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Feb 26 17:14:48 2007 +0000"
      },
      "message": "[ospfd] Fix regression in SPF introduced by bug#330 fixes\n\n2007-02-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_spf.c: Fix regression introduced with bug #330 fix: The\n\t  cost update added to ospf_spf_add_parent only handled PtP\n\t  case, differing from same functionality in higher-level\n\t  ospf_spf_next. Regression diagnosed by Anders Pedersen,\n\t  mailnews+router-quagga-dev@news.cohaesio.com.\n\t  (ospf_vertex_new) Initialise vertices to max-cost.\n\t  (ospf_spf_init) Root vertex always creates with 0 cost.\n\t  (ospf_spf_add_parent) Remove the buggy V-\u003eW cost calculating\n\t  code, instead take the new distance as a parameter.\n\t  (ospf_nexthop_calculation) Take distance as parameter, so it\n\t  can be passed down to add_parent.\n\t  (ospf_spf_next) Dont initialise candiate vertex distance,\n\t  vertex_new does so already. Pass distance down to\n\t  nexthop_calculation (see above).\n"
    },
    {
      "commit": "ff1dd550b01fd6bb4aa137cfee282e6175f89c50",
      "tree": "05900140de1813f62a124ee98ce4c3329546d6e7",
      "parents": [
        "def09df7d1df2f4583c68b5b7f02375f5a2e9dc7"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Feb 26 17:11:45 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Feb 26 17:11:45 2007 +0000"
      },
      "message": "[zebra] IRDP should ignore non-IPv4 addresses\n\n2007-02-26 Robert Olsson \u003cRobert.Olsson@data.slu.se\u003e\n\n\t* irdp_main.c: (irdp_send_thread) Skip non-AF_INET addresses,\n\t   i.e. do not try interpret IPv6 addresses as IPv4 addresses\n\t   to broadcast in IRDP announcements..\n"
    },
    {
      "commit": "def09df7d1df2f4583c68b5b7f02375f5a2e9dc7",
      "tree": "2ff6e32007ddc30ef2f98b59d7fedfd4fc1a9a85",
      "parents": [
        "f2c31acb6f97688af0f368211536829324145919"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Feb 22 17:55:20 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Feb 22 17:55:20 2007 +0000"
      },
      "message": "[solaris] Add licence boilerplate to files for clarity\n\n2007-02-22 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* quagga.{xml,init}.in: Add licence boilerplate to ensure\n\t  licence terms are clear.\n"
    },
    {
      "commit": "f2c31acb6f97688af0f368211536829324145919",
      "tree": "6f9887992eeb0890fdf673f9c0794e7d1384edbb",
      "parents": [
        "553bdfe376c49886cbdc2d306fea7b003bead31f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Feb 22 17:48:42 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Feb 22 17:48:42 2007 +0000"
      },
      "message": "[bgpd] Peer delete can race with reconfig leading to crash\n\n2007-02-22 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_fsm.c: (bgp_fsm_change_status) Handle state change into\n\t  clearing or greater here. Simpler.\n\t  (bgp_event) Clearing state change work moved to previous\n\t* bgp_route.c: (bgp_clear_route_node) Clearing adj-in here\n\t  is too late, as it leaves a race between a peer being deleted\n\t  and an identical peer being configured before clearing\n\t  completes, leading to a crash.\n\t  Simplest fix is to clean peers Adj-in up-front, rather than\n\t  queueing such work.\n\t  (bgp_clear_route_table) Clear peer\u0027s Adj-In and Adj-Out\n\t  up-front here, rather than queueing such work.\n\t  Extensive comment added on the various bits of indexed data\n\t  that exist and how they need to be dealt with.\n\t  (bgp_clear_route) Update comment.\n"
    },
    {
      "commit": "553bdfe376c49886cbdc2d306fea7b003bead31f",
      "tree": "b0bc7c6d381340e7436597c37ff52aa6c1b22cb9",
      "parents": [
        "9f0a19f525f3bbc7cb317b86468418b471ee1b34"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Tue Feb 06 20:10:35 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Tue Feb 06 20:10:35 2007 +0000"
      },
      "message": "use generic sed test so this works on autoconf 2.59\n"
    },
    {
      "commit": "9f0a19f525f3bbc7cb317b86468418b471ee1b34",
      "tree": "946f897f26fcbe3d08d1362052395c7f2c8bc2a1",
      "parents": [
        "1bbaa8cfbd764b16d1ba892266ff641a60f67707"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Tue Feb 06 19:56:31 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Tue Feb 06 19:56:31 2007 +0000"
      },
      "message": "de-support NetBSD 1.6, and note that FreeBSD 4 is on thin ice.\n\nUpdate notes on required tool versions Note that autoconf 2.59 is the\nstandard (even though it\u0027s old, 2.60 and 2.61 are pretty recent).  For\nothers, pick releases that are at least 1.5 years old.\n\nNote that GNU awk is required.\n\nReplace update-autotools reference with bootstrap.sh.\n\n(no changelog, doc change only, per GNU coding standards)\n"
    },
    {
      "commit": "1bbaa8cfbd764b16d1ba892266ff641a60f67707",
      "tree": "3e6b2caa0783bd598d05a0a9a51df0acc85ca20e",
      "parents": [
        "2d70743df14f6e58343e29706acc8a9bc9351c2a"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Tue Feb 06 19:36:47 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Tue Feb 06 19:36:47 2007 +0000"
      },
      "message": "Better comment explaining that GNU awk is really required.\n"
    },
    {
      "commit": "2d70743df14f6e58343e29706acc8a9bc9351c2a",
      "tree": "6b5b295aa94ddf22eefd1d682868d550c9520ea4",
      "parents": [
        "0750e810164093ccbf7171883075dd5bbef062e1"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Tue Feb 06 19:28:28 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Tue Feb 06 19:28:28 2007 +0000"
      },
      "message": "autoreconf -i\n"
    },
    {
      "commit": "0750e810164093ccbf7171883075dd5bbef062e1",
      "tree": "ee3239ea61cb79472f23b0dca9d72d19c7108e21",
      "parents": [
        "003ca18f0433c0e0460b68aeb362cf7ba6ed5a4c"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Sat Feb 03 22:30:02 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Sat Feb 03 22:30:02 2007 +0000"
      },
      "message": "add AC_PROC_SED\n"
    },
    {
      "commit": "003ca18f0433c0e0460b68aeb362cf7ba6ed5a4c",
      "tree": "5371da781872b19909a418adefca2eac4f9be64a",
      "parents": [
        "409d8e4f5650a26307067b61a4e9df80f8c03dc3"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Sat Feb 03 01:07:01 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Sat Feb 03 01:07:01 2007 +0000"
      },
      "message": "remove crufty m4 files from 2004.  With the files, autoheader (2.61)\nbombs on NetBSD.  (Without, all is ok.  We may need workarounds, but\nfirst we should identify minimum tool versions and figure out what\u0027s\nstill wrong.)\n\nok\u0027d by paul.\n"
    },
    {
      "commit": "409d8e4f5650a26307067b61a4e9df80f8c03dc3",
      "tree": "d1eedd2bddc7a989c3479eea51844c6a7392bd10",
      "parents": [
        "d1a8316149fb2d9f6e79c80d87b483bd744046e4"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Fri Feb 02 17:03:03 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Fri Feb 02 17:03:03 2007 +0000"
      },
      "message": "use bootstrap.sh\n"
    },
    {
      "commit": "d1a8316149fb2d9f6e79c80d87b483bd744046e4",
      "tree": "3f9e53433dbb4c594c16d7f6e435b4e28de8927c",
      "parents": [
        "75a9140be69c464f3b73175209f726bfeabb0c09"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Fri Feb 02 17:01:58 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Fri Feb 02 17:01:58 2007 +0000"
      },
      "message": "Provide \u0027standard interface\u0027, even if it just invokes autoreconf.\n"
    },
    {
      "commit": "75a9140be69c464f3b73175209f726bfeabb0c09",
      "tree": "2b5832ef4f4384cd249e62cca588a2b5b4c4e577",
      "parents": [
        "cf4a2bbeeaacbe97e88f737bcd904fbc9cf5e237"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Fri Feb 02 16:54:23 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Fri Feb 02 16:54:23 2007 +0000"
      },
      "message": "ospf6d.h: remove declaration of errno (should be via header)\n\n(from pkgsrc)\n"
    },
    {
      "commit": "cf4a2bbeeaacbe97e88f737bcd904fbc9cf5e237",
      "tree": "fb2e87c21c1335f89a24248530a09d89cf45caf7",
      "parents": [
        "bc20c1a4638db3b92a2e2f7f4b820e60f30a6146"
      ],
      "author": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Fri Feb 02 16:52:38 2007 +0000"
      },
      "committer": {
        "name": "Greg Troxel",
        "email": "gdt@fnord.ir.bbn.com",
        "time": "Fri Feb 02 16:52:38 2007 +0000"
      },
      "message": "* README.NetBSD:  use update-autotools instead of autoreconf\n* update-autotools: print out tool name before invoking to aid debugging\n"
    },
    {
      "commit": "bc20c1a4638db3b92a2e2f7f4b820e60f30a6146",
      "tree": "12d8b124a27309f70d1e8b070641659a517f392a",
      "parents": [
        "fb6724a6b987cb6fab00cc9326674bd14a0d09fa"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jan 24 14:51:51 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Jan 24 14:51:51 2007 +0000"
      },
      "message": "[ospfd] Bug #330: SPF must consider that nexthop-calc may fail\n\n2007-01-24 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_spf.c: Bug #330: Nexthop calculation sometimes may fail,\n\t  and it needs to indicate this result to SPF.\n\t  (ospf_spf_add_parent) Flush of parent list needs to be done here,\n\t  for simplicity.\n\t  (ospf_nexthop_calculation) Caller needs to know whether\n\t  nexthop calculation succeeded. Every return statement must\n\t  correctly indicate such.\n\t  (ospf_spf_next) Queueing/prioritisation of vertices in SPF\n\t  must take into account whether nexthop_calculation succeeded,\n\t  or SPF may fail to find best paths.\n"
    },
    {
      "commit": "fb6724a6b987cb6fab00cc9326674bd14a0d09fa",
      "tree": "55a8ad856112d2bb9904375a236542046f950b7a",
      "parents": [
        "e4529636b77124285cca96a62799d0ff6a7addeb"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed Dec 13 15:44:15 2006 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed Dec 13 15:44:15 2006 +0000"
      },
      "message": "[zebra] For solaris IPv6 PtP interfaces, try to support prefixlen !\u003d 128\n\n2006-12-13 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* if_ioctl_solaris.c: (if_get_addr) For IPv6, stop assuming\n\t  that all IFF_POINTOPOINT have prefixlen of IPV6_MAX_BITLEN.\n\t  Instead, always try the SIOCGLIFSUBNET ioctl; if that fails,\n\t  then we fall back to IPV6_MAX_BITLEN for PtP interfaces.\n"
    },
    {
      "commit": "e4529636b77124285cca96a62799d0ff6a7addeb",
      "tree": "a8a50de7413833d5277ed7309248e03719e9efd3",
      "parents": [
        "43cd33a44e010f818633b7f144b5a0be352b41e7"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Tue Dec 12 19:18:21 2006 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Tue Dec 12 19:18:21 2006 +0000"
      },
      "message": "[PtP over ethernet] New peer flag allows much more addressing flexibility\n\n2006-12-12 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* if.h: (struct connected) Add new ZEBRA_IFA_PEER flag indicating\n\t  whether a peer address has been configured.  Comment now shows\n\t  the new interpretation of the destination addr: if ZEBRA_IFA_PEER\n\t  is set, then it must contain the destination address, otherwise\n\t  it may contain the broadcast address or be NULL.\n\t  (CONNECTED_DEST_HOST,CONNECTED_POINTOPOINT_HOST) Remove obsolete\n\t  macros that were specific to IPv4 and not fully general.\n\t  (CONNECTED_PEER) New macro to check ZEBRA_IFA_PEER flag.\n\t  (CONNECTED_PREFIX) New macro giving the prefix to insert into\n\t  the RIB: if CONNECTED_PEER, then use the destination (peer) address,\n\t  else use the address field.\n\t  (CONNECTED_ID) New macro to come up with an identifying address\n\t  for the struct connected.\n\t* if.c: (if_lookup_address, connected_lookup_address) Streamline\n\t  logic with new CONNECTED_PREFIX macro.\n\t* prefix.h: (PREFIX_COPY_IPV4, PREFIX_COPY_IPV6) New macros\n\t  for better performance than the general prefix_copy function.\n\t* zclient.c: (zebra_interface_address_read) For non-null destination\n\t  addresses, set prefixlen to equal the address prefixlen.  This\n\t  is needed to get the new CONNECTED_PREFIX macro to work properly.\n\t* connected.c: (connected_up_ipv4, connected_down_ipv4,\n\t  connected_up_ipv6, connected_down_ipv6) Simplify logic using the\n\t  new CONNECTED_PREFIX macro.\n\t  (connected_add_ipv4) Set prefixlen in destination addresses (required\n\t  by the CONNECTED_PREFIX macro).  Use CONNECTED_PEER macro instead\n\t  of testing for IFF_POINTOPOINT.  Delete invalid warning message.\n\t  Warn about cases where the ZEBRA_IFA_PEER is set but no\n\t  destination address has been supplied (and turn off the flag).\n\t  (connected_add_ipv6) Add new flags argument so callers may set\n\t  the ZEBRA_IFA_PEER flag.  If peer/broadcast address satisfies\n\t  IN6_IS_ADDR_UNSPECIFIED, then reject it with a warning.\n\t  Set prefixlen in destination address so CONNECTED_PREFIX will work.\n\t* connected.h: (connected_add_ipv6) Add new flags argument so\n\t  callers may set the ZEBRA_IFA_PEER flag.\n\t* interface.c: (connected_dump_vty) Use CONNECTED_PEER macro\n\t  to decide whether the destination address is a peer or broadcast\n\t  address (instead of checking IFF_BROADCAST and IFF_POINTOPOINT).\n\t* if_ioctl.c: (if_getaddrs) Instead of setting a peer address\n\t  only when the IFF_POINTOPOINT is set, we now accept a peer\n\t  address whenever it is available and not the same as the local\n\t  address.  Otherwise (no peer address assigned), we check\n\t  for a broadcast address (regardless of the IFF_BROADCAST flag).\n\t  And must now pass a flags value of ZEBRA_IFA_PEER to\n\t  connected_add_ipv4 when a peer address is assigned.\n\t  The same new logic is used with the IPv6 code as well (and we\n\t  pass the new flags argument to connected_add_ipv6).\n\t  (if_get_addr) Do not bother to check IFF_POINTOPOINT: just\n\t  issue the SIOCGIFDSTADDR ioctl and see if we get back\n\t  a peer address not matching the local address (and set\n\t  the ZEBRA_IFA_PEER in that case).  If there\u0027s no peer address,\n\t  try to grab SIOCGIFBRDADDR regardless of whether IFF_BROADCAST is set.\n\t* if_ioctl_solaris.c: (if_get_addr) Just try the SIOCGLIFDSTADDR ioctl\n\t  without bothering to check the IFF_POINTOPOINT flag.  And if\n\t  no peer address was found, just try the SIOCGLIFBRDADDR ioctl\n\t  without checking the IFF_BROADCAST flag.  Call connected_add_ipv4\n\t  and connected_add_ipv6 with appropriate flags.\n\t* if_proc.c: (ifaddr_proc_ipv6) Must pass new flags argument to\n\t  connected_add_ipv6.\n\t* kernel_socket.c: (ifam_read) Must pass new flags argument to\n\t  connected_add_ipv6.\n\t* rt_netlink.c: (netlink_interface_addr) Copy logic from iproute2\n\t  to determine local and possible peer address (so there\u0027s no longer\n\t  a test for IFF_POINTOPOINT).  Set ZEBRA_IFA_PEER flag appropriately.\n\t  Pass new flags argument to connected_add_ipv6.\n\t  (netlink_address) Test !CONNECTED_PEER instead of if_is_broadcast\n\t  to determine whether the connected destination address is a\n\t  broadcast address.\n\t* bgp_nexthop.c: (bgp_connected_add, bgp_connected_delete)\n\t  Simplify logic by using new CONNECTED_PREFIX macro.\n\t* ospf_interface.c: (ospf_if_is_configured, ospf_if_lookup_by_prefix,\n\t  ospf_if_lookup_recv_if) Simplify logic using new CONNECTED_PREFIX\n\t  macro.\n\t* ospf_lsa.c: (lsa_link_ptop_set) Using the new CONNECTED_PREFIX\n\t  macro, both options collapse into the same code.\n\t* ospf_snmp.c: (ospf_snmp_if_update) Simplify logic using new\n\t  CONNECTED_ID macro.\n\t  (ospf_snmp_is_if_have_addr) Simplify logic using new CONNECTED_PREFIX\n\t  macro.\n\t* ospf_vty.c: (show_ip_ospf_interface_sub) Use new CONNECTED_PEER macro\n\t  instead of testing the IFF_POINTOPOINT flag.\n\t* ospfd.c: (ospf_network_match_iface) Use new CONNECTED_PEER macro\n\t  instead of testing with if_is_pointopoint.  And add commented-out\n\t  code to implement alternative (in my opinion) more elegant behavior\n\t  that has no special-case treatment for PtP addresses.\n\t  (ospf_network_run) Use new CONNECTED_ID macro to simplify logic.\n\t* rip_interface.c: (rip_interface_multicast_set) Use new CONNECTED_ID\n\t  macro to simplify logic.\n\t  (rip_request_interface_send) Fix minor bug: ipv4_broadcast_addr does\n\t  not give a useful result if prefixlen is 32 (we require a peer\n\t  address in such cases).\n\t* ripd.c: (rip_update_interface) Fix same bug as above.\n"
    },
    {
      "commit": "43cd33a44e010f818633b7f144b5a0be352b41e7",
      "tree": "9647433a008e87af61ec70e6d5f35aeb8ba49d03",
      "parents": [
        "41b36e9013111a6da812ca000e3b978282bd27a9"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Dec 08 21:27:08 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Dec 08 21:27:08 2006 +0000"
      },
      "message": "[0.99] Bump version to 0.99.6\n\n2006-12-08 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Bump to 0.99.6\n"
    },
    {
      "commit": "41b36e9013111a6da812ca000e3b978282bd27a9",
      "tree": "11805d66de677613be7fe5e31626cfbbbbec78a6",
      "parents": [
        "3c0755dc9772deccff2ba6e9dc0511a9af2b9d1b"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Dec 08 01:09:50 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Dec 08 01:09:50 2006 +0000"
      },
      "message": "[isisd] Fix compiler warnings and allow v4-only compilation\n\n2006-12-08 Hannes Gredler \u003channes@gredler.at\u003e\n\n\t* isis_adjacency.c: (isis_new_adj) Allow NULL snpa argument.\n\t* isis_pdu.c: (various) Update calls to isis_new_adj() to pass\n\t  NULL and use default.\n\t* (general) Add forward declarations where required.\n\t  Fix up const char *\u0027s.\n\t  Allow V4-only compilation.\n"
    },
    {
      "commit": "3c0755dc9772deccff2ba6e9dc0511a9af2b9d1b",
      "tree": "320e64867af564f2f943742f2a895132606f2e16",
      "parents": [
        "95fdcd8a793d6c271996da221c4030d8ee277891"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Dec 08 00:53:14 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Dec 08 00:53:14 2006 +0000"
      },
      "message": "[zebra] Changes of nexthops of static routes didnt take effect\n\n2006-12-08 Piotr Chytla \u003cpch@packetconsulting.pl\u003e\n\n\t* zebra_rib.c: (static_install_ipv{4,6}) Case where existing\n\t  RIB is updated must explicitely rib_addqueue the route_node,\n\t  to ensure the update actually takes effect.\n"
    }
  ],
  "next": "95fdcd8a793d6c271996da221c4030d8ee277891"
}
