)]}'
{
  "log": [
    {
      "commit": "894f8b6602f786db42da58c48b1338df5fa98732",
      "tree": "27d1cdb69d21e33a641c108a0ce39fd480e748f7",
      "parents": [
        "1a8ec2b9a3557e4f6ad3c8780b72b35be6d86a3e"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 22:50:40 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 22:50:40 2006 +0000"
      },
      "message": "[ospfd] CID #49, fix dereference before NULL check\n\n2006-05-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_route.c: (ospf_route_delete_same_ext) Fix deref before\n\t  NULL check by moving into check-protected block, fix CID #49.\n"
    },
    {
      "commit": "1a8ec2b9a3557e4f6ad3c8780b72b35be6d86a3e",
      "tree": "3f4ecd416c15b72ac1bbd598fc0006b8744030a7",
      "parents": [
        "cac3b5c435613b51eddf7db4518aa6b730afb031"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 11 13:34:08 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 11 13:34:08 2006 +0000"
      },
      "message": "[ospfd] Check NULL result from ospf_area_lookup_by_area_id, CID #69\n\n2006-05-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_vty.c: (no_ospf_area_filter_list) Check NULL result from\n\t  ospf_area_lookup_by_area_id, fixes Coverity CID #69\n"
    },
    {
      "commit": "cac3b5c435613b51eddf7db4518aa6b730afb031",
      "tree": "d78aff33e739316ac478bebb1ebed2c6a9ff1032",
      "parents": [
        "beb5633607919d10ba8852ad51fe0b1dc7ecc812"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 11 13:31:11 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 11 13:31:11 2006 +0000"
      },
      "message": "[ospfd] Fix missing check for ospf_lookup NULL return, CID #70\n\n2006-05-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_vty.c: (general) Audit ospf_lookup calls in commands,\n\t  ensure check for NULL result, make vty messages consistent.\n\t  (show_ip_ospf_interface) Missing NULL check on ospf_lookup\n\t  result, fixes Coverity CID #70.\n"
    },
    {
      "commit": "beb5633607919d10ba8852ad51fe0b1dc7ecc812",
      "tree": "cf63d68186ec7e2b594e6fa6f95ad6f8aa7b7338",
      "parents": [
        "995b96515b7075fec77ab51dfe8be7788abd838d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 11 13:28:05 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 11 13:28:05 2006 +0000"
      },
      "message": "[zebra] CID #31, guard against potential NULL return of route_node_lookup\n\n2006-05-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* interface.c: (if_delete_update) route_node_lookup may return\n\t  NULL, should fix Coverity CID #31.\n"
    },
    {
      "commit": "995b96515b7075fec77ab51dfe8be7788abd838d",
      "tree": "9b1c6f590868955c37fe7e9c9ad64cad441f1404",
      "parents": [
        "f371b1fb2bd0c615d44653d56a26df8f7245481d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 11 13:20:47 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 11 13:20:47 2006 +0000"
      },
      "message": "[ripngd] CID #72, remove unneeded NULL check\n\n2006-05-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ripng_interface.c: (ripng_interface_address_add) Remove\n\t  unneeded NULL check, Coverity CID #72.\n"
    },
    {
      "commit": "f371b1fb2bd0c615d44653d56a26df8f7245481d",
      "tree": "e1f1560a4defc02ec274ce94c40680c5bf9fc855",
      "parents": [
        "08f9fb1c4591bfc7cf0c5d174884ca161263787e"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed May 10 19:53:58 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed May 10 19:53:58 2006 +0000"
      },
      "message": "[doc] Update auto-generated quagga.info\n\n2006-05-10 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* quagga.info: update auto-built file.\n"
    },
    {
      "commit": "08f9fb1c4591bfc7cf0c5d174884ca161263787e",
      "tree": "9c1777dabae59a1a1d9a048c05c340b2cfd1a6ab",
      "parents": [
        "e3c5ffe169a999892e09f7e440466b622a510445"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed May 10 19:52:36 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed May 10 19:52:36 2006 +0000"
      },
      "message": "[0.99] Version bump to 0.99.4\n\n2006-05-10 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Bump to 0.99.4\n"
    },
    {
      "commit": "e3c5ffe169a999892e09f7e440466b622a510445",
      "tree": "e9e21dc4162d89c561ce7ec737b3f7468d0ba532",
      "parents": [
        "da5b30f6fb9437f1dc3d05a48e5e17f78695f820"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 08 14:40:39 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 08 14:40:39 2006 +0000"
      },
      "message": "[doc] bug #245, remove reference to non-existent log_mode argument\n\n2006-05-08 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* main.texi: --log_mode does not exist, remove, bug #245.\n"
    },
    {
      "commit": "da5b30f6fb9437f1dc3d05a48e5e17f78695f820",
      "tree": "baa0663a2aea52399162c3e8e69be7ef8f54a4c7",
      "parents": [
        "7a559cbe8f794d298419a8ada80a9f12933eceda"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 08 14:37:17 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 08 14:37:17 2006 +0000"
      },
      "message": "[bgpd] Bug #240, Fix route-server crash when static routes are configured\n\n2006-05-08 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_route.c: (bgp_afi_node_get) given table should never be\n\t  NULL, check/assert this.\n\t  (bgp_static_update) Bug #240. Rsclients should only be passed\n\t  the static update if they are configured for the afi,safi.\n"
    },
    {
      "commit": "7a559cbe8f794d298419a8ada80a9f12933eceda",
      "tree": "78ec707e899fe331ba08e80bde0a04debb89d4ed",
      "parents": [
        "542bcb724c410283d7a3f317c8fe5e8a0b58f196"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 08 14:32:07 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 08 14:32:07 2006 +0000"
      },
      "message": "[ripngd] bug #242, fix crash in routemap, ipv6 stored in in_addr.\n\n2006-05-08 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ripng_routemap.c: (route_set_ipv6_nexthop_local_compile) bug\n\t  #242, s/in_addr/in6_addr to fix crash.\n\t  Thanks to jithinvachery+quagga@gmail.com.\n"
    },
    {
      "commit": "542bcb724c410283d7a3f317c8fe5e8a0b58f196",
      "tree": "cefe67e9b39990827c64fda884adeda208af9787",
      "parents": [
        "65ca75e0d1e7e440bf0d2a6a031d4148024c9d12"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 08 14:25:09 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 08 14:25:09 2006 +0000"
      },
      "message": "[bgpd] CID#62 fix double-free, use-after-free in community_str2com\n\n2006-05-08 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_community.c: (community_str2com) Coverity CID#62, fix\n\t  double-free, use-after-free.\n"
    },
    {
      "commit": "65ca75e0d1e7e440bf0d2a6a031d4148024c9d12",
      "tree": "71826429ce3985bf3900be4a965de238ac668e82",
      "parents": [
        "a3b6ea56a0add7d0972a66d96e1fbcf5461eecdb"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 04 08:08:15 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 04 08:08:15 2006 +0000"
      },
      "message": "[bgpd] Fix bug where FSM can stay hung forever in Idle/Clrng\n\n2006-05-04 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_route.c: (general) Fix logical bug in clearing, noted\n\t  by Chris Caputo in [quagga-users 6728] - clearing depended on\n\t  at least one route being added to workqueue, in order for\n\t  workqueue completion function to restart FSM. However, if no\n\t  routes are cleared, then the completion function never is\n\t  called, it needs to be called manually if the workqueue\n\t  didn\u0027t get scheduled.\n\t  Finally, clearing is per-peer-session, not per AFI/SAFI, so\n\t  the FSM synchronisation should be in bgp_clear_route_table.\n\t  (bgp_clear_route_table) Wrong place for FSM/clearing\n\t  synchronisation, move to..\n\t  (bgp_clear_route) FSM/clearing synchronisation should be\n\t  here.\n\t  If no routes were cleared, no workqueue scheduled, call\n\t  the completion func to ensure FSM kicks off again.\n"
    },
    {
      "commit": "a3b6ea56a0add7d0972a66d96e1fbcf5461eecdb",
      "tree": "a7bb8a005ab41ce30c43dd0fc2fab487c0e5f613",
      "parents": [
        "5f03f141eced8bad4971fcc6ec7d7a538c227d8c"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 04 07:52:12 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 04 07:52:12 2006 +0000"
      },
      "message": "[bgpd] bug #210: Enable crucial VPNv4 code which was disabled\n\n2006-05-04 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) VPNv4 fixes. Certain VPNv4 code was not enabled.\n\t  See bug #210.\n\t* bgp_attr.{c,h}: (bgp_packet_{withdraw,attribute}) Tag should be\n\t  u_char really.\n\t* bgp_packet.c: (bgp_{update,withdraw}_packet) Enable some\n\t  VPNv4 code which inexplicably was ifdef\u0027d out. comments from\n\t  a tester on IRC suggest this fixes bug #210.\n"
    },
    {
      "commit": "5f03f141eced8bad4971fcc6ec7d7a538c227d8c",
      "tree": "7a166e6a89c3e98c25989fd4a7d823df66cfaf92",
      "parents": [
        "15a2b089ced3f1e956659e9ca88af45d1c48272c"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 04 07:37:37 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 04 07:37:37 2006 +0000"
      },
      "message": "[docs] Update ripd docs on version and authentication, see bugs #261,#262\n\n2006-05-04 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ripd.texi: Add Version Control as a distinct section.\n\t  Expand Version Control section with overview text,\n\t  touching on insecurity of RIPv1 and referencing\n\t  authentication section, cleanup text of various version\n\t  commands.\n\t  RIP Authentication: Add overview text, refer to RIPv1 version\n\t  control, which is required to completely secure RIP.\n"
    },
    {
      "commit": "15a2b089ced3f1e956659e9ca88af45d1c48272c",
      "tree": "26ae18cd6cb7021307586a6ed16c3e058a92ebc3",
      "parents": [
        "9c27ef9b9c26db0af507869c2866c4a8463f4ae7"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 04 07:36:34 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 04 07:36:34 2006 +0000"
      },
      "message": "[ripd] bugs #261, #262: Fix RIPv1 info-leak and unauthenticated route updates\n\n2006-05-04 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) Fixes for bugs #261 and 262. Thanks to\n\t  Konstantin V. Gavrilenko \u003ckos@arhont.com\u003e for the problem\n\t  reports, testing of a series of proposed patches and comment\n\t  on the proposed changes in behaviour.\n\t* rip_interface.c: (ip_rip_authentication_mode_cmd) Parse all\n\t  of the command before making any changes to configured state.\n\t* ripd.c: (rip_read) RIP version control should be absolute and\n          always apply, fixes bug #261 by allowing RIPv1 to be disabled.\n\t  Fix bug #262: If authentication is enabled, then\n\t  unauthenticated packets should not be accepted. We do however\n\t  make an exception for RIPv1 REQUEST packets, to which we will\n\t  reply as RIPv1 can now be disabled fully, to allow ripd to\n\t  still provide routing /information/ to simple devices.\n"
    },
    {
      "commit": "9c27ef9b9c26db0af507869c2866c4a8463f4ae7",
      "tree": "72279949d2ac9f10f6e62a5a18e332a8b4e02dd5",
      "parents": [
        "b9d92881f5d45601c4268d99baec8835068b73c2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 04 07:32:57 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu May 04 07:32:57 2006 +0000"
      },
      "message": "[ospfd] Fix SPF of virtual-links\n\n2006-04-24 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) More Virtual-link fixes, again with much help in\n\t  testing / debug from Juergen Kammer. Primarily in SPF.\n\t* ospf_spf.h: Add guard. ospf_interface.h will include this\n\t  header.\n\t* ospf_interface.h: Modify ospf_vl_lookup definition to take\n\t  struct ospf as argument, so as to allow for NULL area\n\t  argument.\n\t  (struct ospf_vl_data) Remove out_oi, instead add a struct\n\t  vertex_nexthop, to use as initial nexthop for backbone paths\n\t  through a vlink.\n\t* ospf_interface.c: (ospf_vl_lookup) Modified to allow\n\t  NULL area to be passed to indicate \"any\" (first) area.\n\t  Add extra debug.\n\t  (ospf_vl_set_params) vl_oi -\u003e nexthop. Add extra debug.\n\t  (ospf_vl_up_check) Fix debug, inet_ntoa returns a static\n\t  buffer..\n\t* ospf_route.c: (ospf_intra_add_router) Vlinks dont go through\n\t  backbone, don\u0027t bother checking.\n\t* ospf_spf.c: (static struct list vertex_list) Record vertices\n\t  that will need to be freed.\n\t  (cmp) Order network before router vertices, as required,\n\t  wasn\u0027t implemented.\n\t  (vertex_nexthop_free) Mild additional robustness check.\n\t  (vertex_parent_free) Take void argument, as this function\n\t  is passed as list deconstructor for vertex parent list.\n\t  (ospf_vertex_new) More debug. Set deconstructor for parent\n\t  list. Track allocated vertices on the vertex_list.\n\t  (ospf_vertex_free) Get rid of the tricky recursive cleanup of\n\t  vertices. Now frees only the given vertex.\n\t  (ospf_vertex_add_parent) Fix assert.\n\t  (ospf_nexthop_calculation) Fix calculation of nexthop for\n\t  VLink vertices, lookup the vl_data and use its previously\n\t  recorded nexthop information.\n\t  (ospf_spf_calculate) Vertices are freed simply by deleting\n\t  vertex_list nodes and letting ospf_vertex_free as deconstructor\n\t  work per-node.\n\t  (ospf_spf_calculate_timer) Trivial optimisation, leave\n\t  backbone SPF calculation till last to reduce SPF churn on\n\t  VLink updates.\n\t* ospf_vty.c: (ospf_find_vl_data) update call to ospf_vl_lookup\n\t  (no_ospf_area_vlink_cmd) ditto.\n\t  (show_ip_ospf_interface_sub) For Vlinks, the peer address is\n\t  more interesting than the output interface.\n"
    },
    {
      "commit": "b9d92881f5d45601c4268d99baec8835068b73c2",
      "tree": "b99acacee536e07a4726b69f8d2b6397e58eadba",
      "parents": [
        "e0062775b9f9945612912bdefc2d9bcf6ab0650b"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Apr 28 16:22:36 2006 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri Apr 28 16:22:36 2006 +0000"
      },
      "message": "[ripd] Fix logic to send updates on all connected addresses.\n\n2006-04-28 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ripd.c: (rip_update_process) Try to fix the logic for sending\n\t  an updated on each connected network.  The new code will\n\t  attempt to send the update on each connected network, whereas\n\t  the previous code seemed to be attempting to avoid sending\n\t  more than one RIPv1 update on a given interface, but was coded\n\t  incorrectly.  The actual effect of the old code was to send\n\t  an update only on the first connected address in the cases\n\t  where the interface is not multicast, or RIPv2 is not being used.\n"
    },
    {
      "commit": "e0062775b9f9945612912bdefc2d9bcf6ab0650b",
      "tree": "eb9e2012a9a602510d14428ffff77c340a51fce8",
      "parents": [
        "478aab9812fe06d77fd2f4e0b773a6e1ede18a3a"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Apr 03 21:27:20 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Apr 03 21:27:20 2006 +0000"
      },
      "message": "[solaris] Manifest referenced non-existent services, fix.\n\n2006-04-03 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* quagga.xml.in: oops, ipvX-routing services don\u0027t exist yet in\n\t  any Solaris builds.\n"
    },
    {
      "commit": "478aab9812fe06d77fd2f4e0b773a6e1ede18a3a",
      "tree": "d441d5c41fdb02752c2c24a08a4babbfe63f02e3",
      "parents": [
        "ab2416a0f3583545f683310adfc7ebce11d79622"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Apr 03 21:25:32 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Apr 03 21:25:32 2006 +0000"
      },
      "message": "[ospfd] Fix virtual-link handling in nbrs route-table, exposed by bug#234 fix\n\n2006-04-03 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) Fix issues with handling of Vlinks and entries\n\t  in the nbrs route-table which were highlighted by the\n\t  nsm/nbr_self fixes from bug #234. Many thanks to Juergen\n\t  Kammer for his help and efforts in testing out debug patches to\n\t  pinpoint the issue.\n\t* ospf_interface.c: (ospf_vl_new) Add nbr_self for Vlink.\n\t* ospf_neighbor.c: (ospf_nbr_key) new static function, helper\n\t  to create key in nbrs table for a given nbr.\n\t  (ospf_nbr_delete) Use ospf_nbr_key. Add an assert() to\n\t  document an expected state.\n\t  (ospf_nbr_add_self) Ditto.\n\t  (ospf_nbr_lookup_by_addr) Add an assert.\n\t* ospf_nsm.c: (nsm_kill_nbr) Can never kill the nbr_self\n\t  psuedo-neighbour.\n"
    },
    {
      "commit": "ab2416a0f3583545f683310adfc7ebce11d79622",
      "tree": "0d82593bd5df45fc4be1250b3c1b4098fb6ca69e",
      "parents": [
        "31802c05bf4111f95248371d4bb4d005df61de97"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Apr 03 21:24:27 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Apr 03 21:24:27 2006 +0000"
      },
      "message": "[doc] document version zserv header, add txt figures, make pdf figs nicer\n\n2006-03-31 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* fig*.txt: New files, txt versions of the diagrammes for the\n\t  info file.\n\t* protocol.texi: Document the new version 1 header.\n\t* routeserver.texi: Explicitly specify scaling widths for the\n\t  figures, only way to make them look reasonable, sadly.\n\t  Try fix some formatting and explicitely note lists as being\n\t  bulleted.\n\t* Makefile.am: convert seems to do png to pdf just fine. No\n\t  need for intermediate eps.\n\t  Add txt figure expansions and list as dependencies and\n\t  EXTRA_DIST files.\n"
    },
    {
      "commit": "31802c05bf4111f95248371d4bb4d005df61de97",
      "tree": "a601ae20a73d4a1645a40ee15a28cfe595c31aee",
      "parents": [
        "86228fde807f4a13313e9828b8438f18a045a6ba",
        "05ec48ecc49761d5e33ebdac1022162fbae48a4f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 16:04:44 2006 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Mar 30 16:04:44 2006 +0100"
      },
      "message": "Sync rebuild of cvs_head\n"
    },
    {
      "commit": "86228fde807f4a13313e9828b8438f18a045a6ba",
      "tree": "a601ae20a73d4a1645a40ee15a28cfe595c31aee",
      "parents": [
        "213d8dadcae5edd424ef98bf0657874a4c44faf2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 15:00:30 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 15:00:30 2006 +0000"
      },
      "message": "[lib] command.c exports host global, add it to header.\n\n2006-03-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* privs.c: (zprivs_caps_init) Change user IDs before lowering\n\t  privileges, while this seems to work on Linux, on Solaris\n\t  it rightfully refuses due to PRIV_PROC_SETID having been\n\t  dropped.\n\t* command.h: Add the struct host global exported from command.c\n"
    },
    {
      "commit": "213d8dadcae5edd424ef98bf0657874a4c44faf2",
      "tree": "15a6a1ddcae662f3a4183a6dbb386adaa731d15e",
      "parents": [
        "6cf0cf0ca400062a03c10a92d60ec3013569a383"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:45:47 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:45:47 2006 +0000"
      },
      "message": "[lib] Trivial: fix line lengths of a comment in workqueu.c\n\n2006-03-30 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* workqueue.c: (work_queue_run) fix line length of comment\n"
    },
    {
      "commit": "6cf0cf0ca400062a03c10a92d60ec3013569a383",
      "tree": "d5a12023011770ccd6ef6b2ef8ea432c5c4f9eb3",
      "parents": [
        "15aa6a1a732eef1049dbc64d7ede9236772cafcf"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:43:17 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:43:17 2006 +0000"
      },
      "message": "[lib] Mark most arguments in DEFUN_CMD_FUNC_TEXT as potentially unused\n\n2006-03-30 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* command.h: (DEFUN_CMD_FUNC_TEXT) Annotate arguments as\n\t  potentially being unused.\n"
    },
    {
      "commit": "15aa6a1a732eef1049dbc64d7ede9236772cafcf",
      "tree": "0badfe99eedf29a4e8ef519123e91e96309ad300",
      "parents": [
        "cdc2c3f98e5652c06ad01eed6bfb5f93c168f817"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:39:35 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:39:35 2006 +0000"
      },
      "message": "[bgpd] Fix infinite loop in community_str2com\n\n2006-03-30 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_community.c: (community_gettoken) Unknown token should\n\t  return NULL, to give a strong indication to callers that\n\t  the token no longer can be parsed, otherwise callers looping\n\t  on this function may have a hard time ending their loop.\n\t  (community_str2com) While loop around community_gettoken appears\n\t  to have been coded thinking that break statement would break\n\t  from the while{}, hence it could never exit for unknown token\n\t  case. Fix it to do..while, so it can use the NULL result from\n\t  community_gettoken easily.\n"
    },
    {
      "commit": "cdc2c3f98e5652c06ad01eed6bfb5f93c168f817",
      "tree": "b180e968d23b77a4ca9b5a16d9861e64e83f01be",
      "parents": [
        "075c2011bbec618934637ead3fd6dec65cd30a45"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:36:23 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:36:23 2006 +0000"
      },
      "message": "[TODO] Note MED functionality we should implement\n\n2006-03-30 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* TODO: Add reminder for useful MED functionality we should\n\t  implement.\n"
    },
    {
      "commit": "075c2011bbec618934637ead3fd6dec65cd30a45",
      "tree": "47e252e3f2d524a520d9be081af0bbaa2963e5c7",
      "parents": [
        "d4ce4f681e04bdd11f5bc7ab30bc6e9048fdf6d2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:34:31 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:34:31 2006 +0000"
      },
      "message": "[ospfd] Fix failure of Fletcher checksum with certain compilers\n\n2006-03-27 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (ospf_lsa_checksum) Add an explicit cast to avoid\n\t  the ambiguities of ANSI and C99 C with respect to type\n\t  conversion. Detailed problem report and test case with\n\t  example data supplied by Dmitry Ivanov \u003cdimss@telecentrs.lv\u003e.\n"
    },
    {
      "commit": "d4ce4f681e04bdd11f5bc7ab30bc6e9048fdf6d2",
      "tree": "6e51e1b5dfc4972c1bda1e78bf7efca0695ce512",
      "parents": [
        "6878453548971f7c2c22a8bcb5d6a9b4e9d73d0d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:30:19 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:30:19 2006 +0000"
      },
      "message": "[lib] fix gensub call in memtypes.awk to pass \"g\", not g.\n\n2006-03-27 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* memtypes.awk: Fix gensub call, g should be a string..\n"
    },
    {
      "commit": "6878453548971f7c2c22a8bcb5d6a9b4e9d73d0d",
      "tree": "9c91ec9f6de4acdfb5beb2b9108411b7f378e8a2",
      "parents": [
        "1a8ee0ec18ac280fda9362259d362805ce62be7d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:25:24 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:25:24 2006 +0000"
      },
      "message": "[lib] status field/flags no longer used in struct workqueue\n\n2006-03-25 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* workqueue.h: (struct work_queue) Remove status field and\n\t  state flag, no longer used.\n"
    },
    {
      "commit": "1a8ee0ec18ac280fda9362259d362805ce62be7d",
      "tree": "2d29cc46074d35940ebc613a0eeecb6ab8ffb4a3",
      "parents": [
        "c2b478d7a4fae2eb2f7f895b80d36af9c8e73ab0"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:20:00 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:20:00 2006 +0000"
      },
      "message": "[ospfd] ignore loopbacks for received interface validation\n\n2006-03-25 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_interface.c: (ospf_if_lookup_recv_if) Ignore loopbacks,\n\t  we can never ever receive packets on those. Should fix\n\t  case where CARP is run with address in same subnet as real\n\t  interface. Problem report and diagnosis thanks to:\n\t  Landon Fuller \u003clandonf@opendarwin.org\u003e.\n\t  However, ospf_read() still can\u0027t deal deterministically with\n\t  multiple interfaces in same subnet.\n"
    },
    {
      "commit": "c2b478d7a4fae2eb2f7f895b80d36af9c8e73ab0",
      "tree": "4eb613cd2aa57614b8215e6a671b247c9a6fea30",
      "parents": [
        "a625ca3cd2df6016aef97096eb927b783eb26d7f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:16:11 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:16:11 2006 +0000"
      },
      "message": "[ospfd] Fix incorrect byte-order conversion of OSPF_MAX_SEQUENCE_NUMBER\n\n2006-03-23 Steve Lawson \u003csteve.lawson@aheadcomusa.com\u003e\n\n\t* ospf_lsa.c: (ospf_lsa_install) Fix incorrect byte-order\n\t  conversion of OSPF_MAX_SEQUENCE_NUMBER\n"
    },
    {
      "commit": "a625ca3cd2df6016aef97096eb927b783eb26d7f",
      "tree": "9681829543d5eeba5b55df3361b30e4e7c1cfc91",
      "parents": [
        "b51f126edee1c170e69951f92033e3e5aec2862d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:12:38 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:12:38 2006 +0000"
      },
      "message": "[bgpd] release peer specific clear queue in peer_free\n\n2006-03-22 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgpd.c: (peer_free) release the per-peer workqueue when\n\t  freeing the peer.\n"
    },
    {
      "commit": "b51f126edee1c170e69951f92033e3e5aec2862d",
      "tree": "ff637d3f5909fd777aa8e8fe0740349258485e6f",
      "parents": [
        "4bf6a3621c828ea9f2c62298b525a2c1a191a45e"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:09:38 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:09:38 2006 +0000"
      },
      "message": "[bgpd] trivial: use a distinct memtype for struct bgp_synchronize\n\n2006-03-19 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* memtypes.c: Add MTYPE_BGP_SYNCHRONISE.\n\t* bgp_advertise.c: Use a distinct memory type for struct\n\t  bgp_synchronize.\n"
    },
    {
      "commit": "4bf6a3621c828ea9f2c62298b525a2c1a191a45e",
      "tree": "88d950315b8ef20ce1e12e4166c3eb6b10d989dd",
      "parents": [
        "5304cb52f47a646554241b3bc1d1dab9ccaea73d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:05:23 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:05:23 2006 +0000"
      },
      "message": "[bgpd] Add \u0027show bgp memory\u0027 for stats on fixed-size allocations in bgpd\n\n2006-03-19 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgpd/bgp_vty.c: Add includes to get several structs we want\n\t  to provide usage statistics on.\n\t  (show_bgp_memory_cmd) Show memory usage stats for various\n\t  notable fixed size objects. Using mtype_stats_alloc and\n\t  mtype_memstr recently added to memory.c.\n\t  (bgp_show_summary) Report some additional stats specific to\n\t  the given BGP instance and/or AFI/SAFI such as table counts,\n\t  peers, rsclients and peer-groups.\n\t  (bgp_vty_init) Install show_bgp_memory_cmd.\n"
    },
    {
      "commit": "5304cb52f47a646554241b3bc1d1dab9ccaea73d",
      "tree": "7de840321cf650b83aeb992d6bbcb57a93dd855a",
      "parents": [
        "cec0c4fb1beb024e54d134a419893e2ad4389254"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:01:14 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 14:01:14 2006 +0000"
      },
      "message": "[bgpd] Include header dependency in bgp_nexthop.h\n\n2006-03-19 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_nexthop.h: Include if.h as a dependent header, for struct\n\t  connected.\n"
    },
    {
      "commit": "cec0c4fb1beb024e54d134a419893e2ad4389254",
      "tree": "769e13753bfc06427e626f74c1635e8856d05aca",
      "parents": [
        "41be32bfe6d0d6ed0058babdcbc3aac18988dbec"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:58:05 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:58:05 2006 +0000"
      },
      "message": "[lib] fix libtool version argument in Makefile.am\n\n2006-03-16 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* Makefile.am: Fix -version-info argument.\n"
    },
    {
      "commit": "41be32bfe6d0d6ed0058babdcbc3aac18988dbec",
      "tree": "f0b516abae4a83abf0a5daa41eb4fb7afb266695",
      "parents": [
        "b5b628c1fa132c1ac57fc1b102ad0605831649ef"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:53:59 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:53:59 2006 +0000"
      },
      "message": "[lib/memory] Add mallinfo support\n\n2006-02-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Check for mallinfo, being careful to link test\n\t  so we can detect things like umem being used (which doesn\u0027t\n\t  provide a mallinfo).\n\t* lib/memory.c: (mtype_memstr) new helper function to\n\t  return human friendly string for a byte count.\n\t  (mtype_stats_alloc) new function, for users to retrieve\n\t  number of objects allocated.\n\t  (show_memory_mallinfo) New function, show mallinfo statistics\n\t  if available.\n\t  (show_memory_all_cmd) Call show_memory_mallinfo, if mallinfo\n\t  is available.\n\t* lib/memory.h: Export mtype_memstr and mtype_stats_alloc.\n\t  Provide a define for a reasonable buffer size for\n\t  mtype_memstr.\n"
    },
    {
      "commit": "b5b628c1fa132c1ac57fc1b102ad0605831649ef",
      "tree": "90dce4a1c6018b0a428c2013b627561a8da8b7ba",
      "parents": [
        "5d932f61972fb5e3109c6aa3caa4b960b675f941"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:46:23 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:46:23 2006 +0000"
      },
      "message": "[solaris] revert previous update of manifest install path\n\n2006-03-16 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* prototype.smf.in: Oops, continue to install manifest to\n\t  var/svc/manifest/network for now.\n\t* Changelog: fix lack of trailing newline\n"
    },
    {
      "commit": "5d932f61972fb5e3109c6aa3caa4b960b675f941",
      "tree": "dbec3a34dab3d6ae3af9069ed20966e10c4614c9",
      "parents": [
        "75db03ebb169da26102275c70eff0a0ebaae04cb"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:42:50 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:42:50 2006 +0000"
      },
      "message": "[tests] fix heavy-wq, add redundant AS_SET test and statics to aspath_test\n\n2006-03-16 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* heavy-wq.c: (heavy_wq_init) delay is gone from workqueue\n\t  spec.\n\t* aspath_test.c: (test_segments) Add an AS_SET with redundant\n\t  ASNs.\n\t  ({empty_prepend,prepend,parse}_test) add static qualifiers\n"
    },
    {
      "commit": "75db03ebb169da26102275c70eff0a0ebaae04cb",
      "tree": "8ac5dd58bc3b37ead3c8932138052348b8c66629",
      "parents": [
        "e6d7d054d9b787c597319ec528ea8f64a7f949f6"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:38:28 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:38:28 2006 +0000"
      },
      "message": "[solaris] SMF manifest, method and depend updates.\n\n2006-03-13 Alan Maguire \u003calan.maguire@sun.com\u003e\n\n\t* quagga.xml.in: Change the naming of services and instances.\n\t  network/routing/quagga:\u003cdaemon\u003e may be neat and tidy, but\n\t  it\u0027s at odds with SMF convention elsewhere that demands\n\t  the service be named for what it does, and the instance name\n\t  describe the implementation (e.g. network/smtp:sendmail).\n\t  Remove call to method script for \u0027stop\u0027, SMF can do that\n\t  itself.\n\t  Enumerate the privileges required in the SMF manifest, with the\n\t  method_credential element.\n\t  Dont try provide seperate properties for each argument, it\u0027s\n\t  just tedious, particularly when they can no longer be\n\t  inherited from a common quagga service - use a single\n\t  \"daemon-args\" property, defaulting to -P 0.\n\t  Specify authorisation for the \u0027routeadm\u0027 utility and for\n\t  RBAC.\n\n2006-03-13 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* quagga.init.in: Update to match SMF manifest changes.\n\t  If run from an SMF environment, assume method is start.\n\t  Offer a more tradition init script interface for pre-SMF.\n\t  Enable zebra for the link-state daemons.\n\t  Don\u0027t allow daemons to start in non-global zones, except\n\t  for bgpd - it doesn\u0027t have to care about underlying\n\t  networking much.\n\t  Remove all the svcprop calls, SMF or the user will supply any\n\t  arguments on the command-line.\n\t* depend.smf.in: Add dependency on SUNWroute, which provides\n\t  routeadm, which provides /var/svc/manifest/network/routing\n\t* prototype.smf.in: Install manifest to\n\t  var/svc/manifest/network/routing.\n"
    },
    {
      "commit": "e6d7d054d9b787c597319ec528ea8f64a7f949f6",
      "tree": "b03a71897e0baa854dd8db04841ba70143bd6f01",
      "parents": [
        "924f9d32d9c42d6861f19bae795c48b48c83af23"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:32:09 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:32:09 2006 +0000"
      },
      "message": "[zebra] arrange structs in padding-efficient manner and remove unused field\n\n2006-02-09 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* rib.h: (struct {rib,nexthop}) Rearrange fields to avoid\n\t  needless padding.\n\t  (struct rib) Remove the indirect pointer, not used anywhere!\n"
    },
    {
      "commit": "924f9d32d9c42d6861f19bae795c48b48c83af23",
      "tree": "e0fe7af931c30d337c1dec84bff8dfb97fa146bf",
      "parents": [
        "cbdfbaa51b600c7b217968b99a9b5a8fbf04bec4"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:25:52 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:25:52 2006 +0000"
      },
      "message": "[lib/privs] Changing user IDs should be done before dropping privileges\n\n2006-03-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* privs.c: (zprivs_caps_init) Change user IDs before lowering\n\t  privileges, while this seems to work on Linux, on Solaris\n\t  it rightfully refuses due to PRIV_PROC_SETID having been\n\t  dropped.\n"
    },
    {
      "commit": "cbdfbaa51b600c7b217968b99a9b5a8fbf04bec4",
      "tree": "bb8ce6ac1da775d34796315b1c5ac82e477bbd13",
      "parents": [
        "478ccfd61bd61fd6925c84811c2c0e893a38a38b"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:20:48 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Mar 30 13:20:48 2006 +0000"
      },
      "message": "[bgpd] rearrange some structs for less padding, stats for table/attrs.\n\n2006-03-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_attr.h: (struct attr) rearrange fields to avoid\n\t  wasted padding between them as much as possible.\n\t  (attr_count,attr_unknown_count) export new functions to\n\t  return number of counts of cached attributes.\n\t* bgp_attr.c: (attr_count,attr_unknown_count) new functions to\n\t  return number of counts of cached attributes.\n\t* bgp_route.h: (struct bgp_info) rearrange fields to avoid\n\t  wasted padding.\n\t* bgp_table.h: (struct bgp_table) Add a count field, of number\n\t  of nodes in the table.\n\t  (struct bgp_node)  rearrange fields to avoid\n\t  wasted padding between them, though I don\u0027t think there\n\t  was any in this case.\n\t* bgp_table.c: (bgp_node_{delete,get}) Maintain the table node count.\n\t  (bgp_table_count) new function to access the table count.\n"
    },
    {
      "commit": "478ccfd61bd61fd6925c84811c2c0e893a38a38b",
      "tree": "0babd52f1f13b4de28d29836f5e4f3f0cdc4802b",
      "parents": [
        "3e0c78ef8a8fb80f52a36dab99d76a5913281e4c"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Mar 06 18:18:37 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Mar 06 18:18:37 2006 +0000"
      },
      "message": "[lib] export show_address_cmd debug command in if.h\n\n2006-03-06 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* if.h: export show_address_cmd, for anyone who wishes to use\n\t  it.\n"
    },
    {
      "commit": "05ec48ecc49761d5e33ebdac1022162fbae48a4f",
      "tree": "d59e397a6427d850e2c74c176fa74b0f87207d7b",
      "parents": [
        "15e2aa43c55dfff724ff55359a3975403b9244ed"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Mar 06 18:06:53 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Mar 06 18:06:53 2006 +0000"
      },
      "message": "[bgpd] Start off FSM again once clearing finishes.\n\n2006-03-03 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_route.c: (bgp_clear_node_complete) Doh. When clearing\n\t  is complete we need to kick off FSM again.\n"
    },
    {
      "commit": "3e0c78ef8a8fb80f52a36dab99d76a5913281e4c",
      "tree": "e09c41768a283796fd9def9c65d5500bbe712a69",
      "parents": [
        "5a54df971e7da8aacddbf54afa33bd81b6c01f13"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Mar 06 18:06:53 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Mar 06 18:06:53 2006 +0000"
      },
      "message": "[bgpd] Start off FSM again once clearing finishes.\n\n2006-03-03 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_route.c: (bgp_clear_node_complete) Doh. When clearing\n\t  is complete we need to kick off FSM again.\n"
    },
    {
      "commit": "15e2aa43c55dfff724ff55359a3975403b9244ed",
      "tree": "9f7627bcff119413d5ad42b130909e5800e8a500",
      "parents": [
        "316f7871792045a058f4a6d5f7c49ee6c5edffb7"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 21 01:37:14 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 21 01:37:14 2006 +0000"
      },
      "message": "[lib/sockunion] trivial: use XSTRDUP.\n\n2006-02-21 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* sockunion.c: (sockunion_{su2str,log}) Use XSTRDUP.\n\t  Particularly with _su2str, as that string gets XFREEd,\n\t  which can be annoying if run debug code in memory.c.\n"
    },
    {
      "commit": "5a54df971e7da8aacddbf54afa33bd81b6c01f13",
      "tree": "37af9d8264eb91ef6c2da346c5eab4f2357f3a5c",
      "parents": [
        "6a419733c5fba17b246b5cce4af73828f8c346ef"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 21 01:37:14 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 21 01:37:14 2006 +0000"
      },
      "message": "[lib/sockunion] trivial: use XSTRDUP.\n\n2006-02-21 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* sockunion.c: (sockunion_{su2str,log}) Use XSTRDUP.\n\t  Particularly with _su2str, as that string gets XFREEd,\n\t  which can be annoying if run debug code in memory.c.\n"
    },
    {
      "commit": "316f7871792045a058f4a6d5f7c49ee6c5edffb7",
      "tree": "f8e7abe8af7d47de77ae397ec7bd3ee542578a51",
      "parents": [
        "afb226bebd8350f8f6523f4692658b944bc2997f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 21 01:14:13 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 21 01:14:13 2006 +0000"
      },
      "message": "[bgpd] Add Clrng description to bgp summary state.\n\n2006-02-21 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_vty.c: (bgp_show_summary) Add a \u0027Clrng\u0027 sub-description\n\t  to state of peer while it\u0027s suppressed due to clearing.\n"
    },
    {
      "commit": "6a419733c5fba17b246b5cce4af73828f8c346ef",
      "tree": "f62342579f0adce713aa9d599bfe2fa20a987456",
      "parents": [
        "64e580a72deaa268e46559516663808503f347ec"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 21 01:14:13 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 21 01:14:13 2006 +0000"
      },
      "message": "[bgpd] Add Clrng description to bgp summary state.\n\n2006-02-21 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_vty.c: (bgp_show_summary) Add a \u0027Clrng\u0027 sub-description\n\t  to state of peer while it\u0027s suppressed due to clearing.\n"
    },
    {
      "commit": "afb226bebd8350f8f6523f4692658b944bc2997f",
      "tree": "4435ee62f31050298f98dca0fe157fb7c9ca7e34",
      "parents": [
        "4528ffa280f93ce64213bd79311dc9d7b3c6a12f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 21 01:09:01 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 21 01:09:01 2006 +0000"
      },
      "message": "[bgpd] Record afi/safi in bgp_table. Serialise peer clear with FSM.\n\n2006-02-21 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgpd.h: move the clear_node_queue to be peer specific.\n\t  Add a new peer status flag, PEER_STATUS_CLEARING.\n\t* bgp_table.h: (struct bgp_table) Add fields to record afi,\n          safi of the table.\n          (bgp_table_init) Take afi and safi to create table for.\n        * bgp_table.c: (bgp_table_init) record the afi and safi.\n        * bgp_nexthop.c: Update all calls to bgp_table_init.\n        * bgp_vty.c: ditto.\n        * bgpd.c: ditto.\n        * bgp_fsm.c: (bgp_timer_set) dont bring up a session which is\n\t  clearing.\n        * bgp_route.c: (general) Update all bgp_table_init calls.\n          (bgp_process_{rsclient,main}) clear_node is serialised\n          via PEER_STATUS_CLEARING and fsm now.\n          (struct bgp_clear_node_queue) can be removed. struct bgp_node\n          can be the queue item data directly, as struct peer can be\n          kept in the new wq global user data and afi/safi can be\n          retrieved via bgp_node -\u003e bgp_table.\n          (bgp_clear_route_node) fix to get peer via wq-\u003espec.data,\n          afi/safi via bgp_node-\u003ebgp_table.\n          (bgp_clear_node_queue_del) no more item data to delete, only\n          unlock the bgp_node.\n          (bgp_clear_node_complete) only need to unset CLEARING flag\n          and unlock struct peer.\n          (bgp_clear_node_queue_init) queue attaches to struct peer\n          now. record peer name as queue name.\n          (bgp_clear_route_table) If queue transitions to active,\n          serialise clearing by setting PEER_STATUS_CLEARING rather\n          than plugging process queue, and lock peer while queue\n          active.\n          Update to pass only bgp_node as per-queue-item specific data.\n"
    },
    {
      "commit": "64e580a72deaa268e46559516663808503f347ec",
      "tree": "7b11b71858334f07a72d3885e00f63dd5c8efcf7",
      "parents": [
        "e24f0638e6fc7256580c185a631cbe5549bf7db3"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 21 01:09:01 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Feb 21 01:09:01 2006 +0000"
      },
      "message": "[bgpd] Record afi/safi in bgp_table. Serialise peer clear with FSM.\n\n2006-02-21 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgpd.h: move the clear_node_queue to be peer specific.\n\t  Add a new peer status flag, PEER_STATUS_CLEARING.\n\t* bgp_table.h: (struct bgp_table) Add fields to record afi,\n          safi of the table.\n          (bgp_table_init) Take afi and safi to create table for.\n        * bgp_table.c: (bgp_table_init) record the afi and safi.\n        * bgp_nexthop.c: Update all calls to bgp_table_init.\n        * bgp_vty.c: ditto.\n        * bgpd.c: ditto.\n        * bgp_fsm.c: (bgp_timer_set) dont bring up a session which is\n\t  clearing.\n        * bgp_route.c: (general) Update all bgp_table_init calls.\n          (bgp_process_{rsclient,main}) clear_node is serialised\n          via PEER_STATUS_CLEARING and fsm now.\n          (struct bgp_clear_node_queue) can be removed. struct bgp_node\n          can be the queue item data directly, as struct peer can be\n          kept in the new wq global user data and afi/safi can be\n          retrieved via bgp_node -\u003e bgp_table.\n          (bgp_clear_route_node) fix to get peer via wq-\u003espec.data,\n          afi/safi via bgp_node-\u003ebgp_table.\n          (bgp_clear_node_queue_del) no more item data to delete, only\n          unlock the bgp_node.\n          (bgp_clear_node_complete) only need to unset CLEARING flag\n          and unlock struct peer.\n          (bgp_clear_node_queue_init) queue attaches to struct peer\n          now. record peer name as queue name.\n          (bgp_clear_route_table) If queue transitions to active,\n          serialise clearing by setting PEER_STATUS_CLEARING rather\n          than plugging process queue, and lock peer while queue\n          active.\n          Update to pass only bgp_node as per-queue-item specific data.\n"
    },
    {
      "commit": "e24f0638e6fc7256580c185a631cbe5549bf7db3",
      "tree": "5f2b1b58b3b0ed2eee52feb33600785bd44b5304",
      "parents": [
        "4528ffa280f93ce64213bd79311dc9d7b3c6a12f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Feb 19 18:59:26 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Feb 19 18:59:26 2006 +0000"
      },
      "message": "[solaris] version depend files, auto-generate. Start zebra when needed.\n\n2006-02-19 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* depend.*: renamed to depend.*.in.\n\t* depend.*.in: Add version dependency.\n\t* Makefile.am: Generate depend.* from depend.*.in\n\t  Distribute the depend.*.in files rather than the depend.*\n\t  files.\n\t* quagga.init.in: Enable zebra if one of the link-state\n\t  daemons is started.\n\t  Restart method is not required - SMF handles that.\n\t* quagga.xml.in: Remove restart method details.\n"
    },
    {
      "commit": "4528ffa280f93ce64213bd79311dc9d7b3c6a12f",
      "tree": "63637cdf21b8867c58b19a6a91a3f6aa786f9642",
      "parents": [
        "7c7fa1b43100b4358ec0217d950b4aa9a2ec4bfd"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Feb 19 07:16:25 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Feb 19 07:16:25 2006 +0000"
      },
      "message": "[doc] Credit Jeroen Simonetti for contributing snmptrap.texi\n\n2006-02-19 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* quagga.info: update auto-built file.\n\t* ChangeLog: Fix old, existing entry for snmptrap.texi addition to\n\t  credit the author, who got in touch with me.\n\t* snmptrap.texi: Add comment line with author\u0027s details.\n"
    },
    {
      "commit": "7c7fa1b43100b4358ec0217d950b4aa9a2ec4bfd",
      "tree": "b317ffff8d3c3b432d841698b5814e709082fb2f",
      "parents": [
        "aa94ca86ba0323d61fc3bc9b881718567ee943b3"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sat Feb 18 10:52:09 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sat Feb 18 10:52:09 2006 +0000"
      },
      "message": "[bgpd] trivial readability fix\n\n2006-02-18 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_route.c: (bgp_announce_check) trivial, move declaration\n\t  of two local variables into the only block where they are\n\t  used, to aid the reader.\n"
    },
    {
      "commit": "aa94ca86ba0323d61fc3bc9b881718567ee943b3",
      "tree": "f4c41a1d40c6321482defa436ebfb2eeb31d22ab",
      "parents": [
        "3fff6ffc697e362959de95b6cc292fd6fb7502a6"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sat Feb 18 10:49:04 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sat Feb 18 10:49:04 2006 +0000"
      },
      "message": "[bug #89] Fix leak of community when set community is used\n\n2006-02-18 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_routemap.c: (route_set_community) Quick, very hacky, fix\n\t  for the set-community leak, bug #89. True fix will be to\n\t  detangle the web of *_intern caching and provide saner object\n\t  caching for Quagga, future work.\n"
    },
    {
      "commit": "3fff6ffc697e362959de95b6cc292fd6fb7502a6",
      "tree": "f9ac1da3796e48c1aa83ed3d5f9dd7594b6812ee",
      "parents": [
        "902212c3f3df5198a6cdf2c95e4686790e437f6f"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Feb 05 17:55:35 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Feb 05 17:55:35 2006 +0000"
      },
      "message": "[bgpd] trivial fix for gcc warning\n\n2006-02-05 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_aspath.c: (aspath_gettoken) fix gcc warning about\n\t  possible uninitialised usage.\n"
    },
    {
      "commit": "902212c3f3df5198a6cdf2c95e4686790e437f6f",
      "tree": "7587a283dd51a6d5a896111ec294683d077d4274",
      "parents": [
        "306d8890439cdb9128d063ee2f77700a11e6843c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Feb 05 17:51:19 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Feb 05 17:51:19 2006 +0000"
      },
      "message": "[bgpd] Fix peer prefix counts and make it slightly more robust\n\n2006-02-05 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_route.h: Add BGP_INFO_COUNTED to track whether\n\t  prefix has been counted or not.\n\t* bgp_route.c: (bgp_pcount_{inc,dec}rement) new helpers, to\n\t  centralise inc/dec of prefix-count,\n\t  (bgp_rib_remove) Remove pcount decrement, use helper.\n\t  (bgp_rib_withdraw) ditto, additionally use previous function\n\t  too.\n\t  (bgp_update_main) Use pcount helpers.\n\t  (bgp_clear_route_node) ditto, aslo REMOVED routes don\u0027t need\n\t  clearing.\n"
    },
    {
      "commit": "306d8890439cdb9128d063ee2f77700a11e6843c",
      "tree": "fa5c8e035891cc83e9f5cfa80343df4bcac40fb7",
      "parents": [
        "3a570c8b7b56b5a3042fbc035a01c753440b927c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Feb 02 17:50:19 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Feb 02 17:50:19 2006 +0000"
      },
      "message": "[lib/workqueue] remove the useless \u0027delay\u0027 factor.\n\n2006-02-02 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* workqueue.h: (struct work_queue) Remove the delay field.\n\t  It served no purpose and just introduced bad behaviour.\n\t  Should be excised before its allowed to escape into 1.0.\n\t  This removes need for the \u0027flood\u0027 and runs_since_clear\n\t  fields.\n\t* workqueue.c: (general) excise delay factor between queue\n\t  runs, hence the \u0027flood\u0027 crap too.. See above.\n\t* bgp_route.c: (bgp_{clear_node,process}_queue_init) delay\n\t  field is removed from workqueue spec.\n"
    },
    {
      "commit": "3a570c8b7b56b5a3042fbc035a01c753440b927c",
      "tree": "89ee2d6845bf23c83e659f5aac43a6496e77ddf1",
      "parents": [
        "b1fc9acbbea5ed5846d46aa60f9cf49b6105763a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Feb 02 17:27:13 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Feb 02 17:27:13 2006 +0000"
      },
      "message": "[zebra] Display flags on their line in \u0027show interface\u0027.\n\n2006-02-02 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* interface.c: (if_dump_vty) move flags to their line, neater.\n"
    },
    {
      "commit": "b1fc9acbbea5ed5846d46aa60f9cf49b6105763a",
      "tree": "fbe9901498c9ec1cd075cc29dbc6140e6a208c3a",
      "parents": [
        "7a383339572b0dd1098132ba35c5f8dc34885fd1"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 31 10:09:27 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 31 10:09:27 2006 +0000"
      },
      "message": "[build system] cleanup --enable-snmp by removing ucd-snmp cruft\n\n2006-01-31 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Cleanup the hideous {net,ucd}-snmp section\n\t  by removing ucd-snmp. Hence fixing detection where\n\t  net-snmp is installed in /usr/local (Boris Kovalenko reported\n\t  the problem).\n"
    },
    {
      "commit": "7a383339572b0dd1098132ba35c5f8dc34885fd1",
      "tree": "475efdb55c563aace907e0b4579eacbaf20a3bea",
      "parents": [
        "a1038a15658d2fd4ab3314a9036bbd63f8f471c1"
      ],
      "author": {
        "name": "vincent",
        "email": "vincent",
        "time": "Mon Jan 30 18:12:42 2006 +0000"
      },
      "committer": {
        "name": "vincent",
        "email": "vincent",
        "time": "Mon Jan 30 18:12:42 2006 +0000"
      },
      "message": "ripd.c: correct bug that allowed route learnt through RIP to take precedence over connected routes\n"
    },
    {
      "commit": "a1038a15658d2fd4ab3314a9036bbd63f8f471c1",
      "tree": "5cef40b1e66fd105d0d0d6e4ecf52089ed15e803",
      "parents": [
        "a8d9c1f9caae29410b74f138f81d9b07645c47ce"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 30 14:08:51 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 30 14:08:51 2006 +0000"
      },
      "message": "[zebra] Fix pauls zebra_rib/rib_process commit mistakes, again.\n\n2006-01-30 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* zebra_rib.c: (rib_process) Fourth time lucky on this jinxed\n\t  commit, last commit had a hole that could allow connected\n\t  route selection to escape beyond the connected route logic.\n\t  This time I cross-checked with Gunnar first. ;)\n"
    },
    {
      "commit": "a8d9c1f9caae29410b74f138f81d9b07645c47ce",
      "tree": "ee5285e9e8932ebf89b16bb051c1af78755ade08",
      "parents": [
        "5c78b3d006e6926f938796cffa08e8e14fb8e7af"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 25 06:31:04 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 25 06:31:04 2006 +0000"
      },
      "message": "[zebra] Fix incorrect changes made in RIB metric selection patch\n\n2006-01-25 Gunnar Stigen \u003cgunnar.stigen@axxessit.no\u003e\n\n\t* zebra_rib.c: (rib_process) Application of Gunnar\u0027s earlier\n\t  metric selection RIB change included incorrect tidy-ups made\n\t  by commiter. Fix. (NB: any errors here are again due to paul).\n"
    },
    {
      "commit": "5c78b3d006e6926f938796cffa08e8e14fb8e7af",
      "tree": "19f8f80511cba84e0d70ac22667321a4a7df0d60",
      "parents": [
        "590188b67db4021b9d1552238ef49482dd5f0123"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 25 04:31:40 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 25 04:31:40 2006 +0000"
      },
      "message": "[zebra/solaris] Interface state fixups for Solaris.\n\n2006-01-25 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) More solaris PF_ROUTE hacks. The IFF_UP mangling\n\t  for solaris was incomplete on the PF_ROUTE side. fix it.\n\t  This changeset generally uglifies things. For some future\n\t  work I\u0027d like to see the state changes seperated out from\n\t  the details of the code. Differences between systems might\n\t  then be slightly easier to implement without convoluted\n\t  hacks.\n\t  Changes should be specific to Solaris mostly, however\n\t  also tested on FreeBSD 6.\n\t* if_ioctl_solaris.c: (interface_list_ioctl) ignore ~IFF_UP\n\t  interfaces, we\u0027ll hear about them when/if interface goes up\n\t  through NEWADDR.\n\t  Update flags explicitely at end of it to kick mangling.\n\t* ioctl_solaris.c: (if_mangle_up) removed to interface.c, in\n\t  kind.\n\t  (lifreq_set_name) more convenient to take the string, than\n\t  the ifp.\n\t  (if_get_flags_direct) new convenience function, returns\n\t  the actual flags. Used during bootstrap in if_ioctl_solaris.c\n\t  to peek at flags of logical interfaces to see whether or\n\t  not to ignore them.\n\t  (if_get_flags) ENXIO means it\u0027s gone, poke out IFF_UP and\n\t  kick flags update.\n\t  (if_{un,}set_flags) flags argument should be 64bit.\n\t* ioctl.{c,h}: flags argument should be 64bit.\n\t* interface.h: Add a \u0027primary_state\u0027 flag to struct zebra_if on\n\t  SUNOS_5.\n\t  Export if_flags_update.\n\t* interface.c: (if_flags_mangle) moved over in kind from\n\t  ioctl_solaris.c. Nasty kludge to try get IFF_UP right, as\n\t  much as is possible. Also keep track of the actual IFF_UP\n\t  value for the primary interface, so we can know when the ifp\n\t  must be deleted.\n\t  (if_flags_update) Take a new interface flags value, apply it\n\t  to the interface, and take whatever actions are required due\n\t  to flag transitions.\n\t  (if_refresh) flag state change logic is moved out to\n\t  previous. Just call if_get_flags, which will end up using\n\t  previous to effect the update of flags.\n\t  (if_flag_dump_vty) IFF_IPV{4,6} aren\u0027t interesting, VIRTUAL\n\t  and NOXMIT are though.\n\t* kernel_socket.c: (ifm_read) Down-\u003eDown transitions shouldn\u0027t\n\t  create ifp, for non-IFANNOUNCE systems.\n\t  Use if_flags_update to update flags.\n\t  flag transition logic is now handled automatically through\n\t  if_flags_update.\n\t  (ifam_read) Better to call if_refresh *after* adding\n \t  connected addresses, as connected count affects IFF_UP on\n \t  IFF_UP-mangled systems.\n \t  On Solaris, Up-\u003eDown due to DELADDR means we need to delete\n\t  the ifp - the IFINFO might already have been and gone.\n\t* rt.h: include other dependent headers.\n"
    },
    {
      "commit": "590188b67db4021b9d1552238ef49482dd5f0123",
      "tree": "0e8a17b1fbb1359e55fcfcaaa058d45e61bf1f33",
      "parents": [
        "53f953a500569b12bb3c60b094c52f1b4184c0fb"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jan 19 20:33:47 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jan 19 20:33:47 2006 +0000"
      },
      "message": "[cvs] update cvsignore file.\n"
    },
    {
      "commit": "53f953a500569b12bb3c60b094c52f1b4184c0fb",
      "tree": "a5fe03f2bd67e0b7e3552bd0930034c5aa66d30e",
      "parents": [
        "581a02a9f71f43012c67217fe12d97808875c352"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jan 19 20:26:17 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jan 19 20:26:17 2006 +0000"
      },
      "message": "[version] bump configure.ac version number to 0.99.3\n\n2006-01-19 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Bump to 0.99.3\n\t* doc/quagga.info: update auto-built file.\n"
    },
    {
      "commit": "581a02a9f71f43012c67217fe12d97808875c352",
      "tree": "4d04c1fe0d3195ba54b7fb126176a09c370dfea3",
      "parents": [
        "e8e1946edf6ba87ef53832cdceccc39d7f0c3f26"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jan 19 20:22:16 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jan 19 20:22:16 2006 +0000"
      },
      "message": "[lib/stream] small compile fix, use uint64_t, not u_int64_t.\n\n2006-01-19 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* stream.c: (stream_getq_from) should use POSIX uint64_t\n\t  not u_int64_t. Latter is neither a traditional BSD type, nor\n\t  a POSIX type.\n"
    },
    {
      "commit": "e8e1946edf6ba87ef53832cdceccc39d7f0c3f26",
      "tree": "fcdaf92bf4129a8a58825bd21ae841a6b3b2bda8",
      "parents": [
        "779adb0147cfff1a831b08853976342ad2110fcd"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jan 19 20:16:55 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Jan 19 20:16:55 2006 +0000"
      },
      "message": "[compiler] miscellaneous trivial compiler warning fixes\n\n2006-01-19 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n        * (general) various miscellaneous compiler warning fixes.\n          Remove redundant break statements from switch clauses\n          which return.\n          return from main, not exit, cause it annoys SOS.\n          Remove stray semi-colons which cause empty-statement\n          warnings.\n\t* zebra/main.c: (sighup) remove private declaration of external\n\t  function.\n"
    },
    {
      "commit": "779adb0147cfff1a831b08853976342ad2110fcd",
      "tree": "76ec1993a7a429d24bda595254348dbd7dc4bebc",
      "parents": [
        "af887b5111ada0e8cd961e9479aa9d39796a80c8"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 18 15:07:38 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 18 15:07:38 2006 +0000"
      },
      "message": "[ospfd] Add support for oversized LSAs.\n\n2006-01-18 Juergen Kammer \u003cj.kammer@eurodata.de\u003e\n\n\t* ospf_lsa.c: (ospf_router_lsa_new) dont take reference to the\n\t  stream data until it is constructed, data reference is\n\t  volatile due to the potential resize in link_info_set\n\n2006-01-18 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (link_info_set) Resize the stream if required and\n\t  possible. Return number of links added.\n\t  (lsa_link_*_set) use return value from previous.\n\t* ospf_lsa.h: Add OSPF_ROUTER_LSA_LINK_SIZE define.\n"
    },
    {
      "commit": "af887b5111ada0e8cd961e9479aa9d39796a80c8",
      "tree": "0bc5674824e5cebe0c0bd17ef34eac99f7b68a48",
      "parents": [
        "eac314c7c49f6c0ec502be08e244f91bfc778739"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 18 14:52:52 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 18 14:52:52 2006 +0000"
      },
      "message": "2006-01-18 Gunnar Stigen \u003cgunnar.stigen@axxessit.no\u003e\n\n\t* zebra_rib.c: Take interface metric into account.\n"
    },
    {
      "commit": "eac314c7c49f6c0ec502be08e244f91bfc778739",
      "tree": "eeb4d011b921101b05a054068d7ed8091fd235bc",
      "parents": [
        "d34b8991b4c156ff3281558dd8252d3787ae8d8b"
      ],
      "author": {
        "name": "vincent",
        "email": "vincent",
        "time": "Tue Jan 17 23:39:04 2006 +0000"
      },
      "committer": {
        "name": "vincent",
        "email": "vincent",
        "time": "Tue Jan 17 23:39:04 2006 +0000"
      },
      "message": "2006-01-17 Vincent Jardin \u003cvincent.jardin@6wind.com\u003e\n\n        * md5.c: Don\u0027t forget to keep const.\n        * regex.c: Cleanup code and remove warnings.\n"
    },
    {
      "commit": "d34b8991b4c156ff3281558dd8252d3787ae8d8b",
      "tree": "f198a545a4363d91c40b6303a03d2c7e323cc5be",
      "parents": [
        "61f42aed5e1cee1a853f92110d794a286995d203"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 18:03:04 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 18:03:04 2006 +0000"
      },
      "message": "[zebra] Record NEWADDR metric on PF_ROUTE, print CACHEINFO debug on netlink\n\n2006-01-17 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* kernel_socket.c: (ifam_read) Read metric from RTM_NEWADDR.\n\t  If interface is an alias, pass the alias as a label for\n\t  connected_add_ipv{4,6}.\n\t* rt_netlink.c: (netlink_interface_addr) print out\n\t  IFA_CACHEINFO info, if present, when debugging kernel\n\t  messages.\n"
    },
    {
      "commit": "61f42aed5e1cee1a853f92110d794a286995d203",
      "tree": "e9eededc78bd39443ebf03565ad113c16f3ab49d",
      "parents": [
        "c713300ab429c8779be98ec3c8dc888821405d55"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:59:11 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:59:11 2006 +0000"
      },
      "message": "[zebra] Defensive if_getaddrs bug fix.\n\n2006-01-17 Gunnar Stigen \u003cgunnar.stigen@axxessit.no\u003e\n\n\t* if_ioctl.c: (if_getaddrs) Be defensive about assuming\n\t  that struct ifaddrs will have ifa_addr filled in.\n"
    },
    {
      "commit": "c713300ab429c8779be98ec3c8dc888821405d55",
      "tree": "f1b6562d5583d2cb155a6076c9f52400bd993885",
      "parents": [
        "c6371718f39dedd2a03010a9dc26a18d96abbe7f"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:56:18 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:56:18 2006 +0000"
      },
      "message": "[zebra] Include metric on connected routes.\n\n2006-01-17 Gunnar Stigen \u003cgunnar.stigen@axxessit.no\u003e\n\n\t* connected.c: (connected_up_ipv{4,6}) Include interface metric on\n\t  connected routes.\n"
    },
    {
      "commit": "c6371718f39dedd2a03010a9dc26a18d96abbe7f",
      "tree": "d2b17403d11b3d162275bfa28711f5ee3daa6a94",
      "parents": [
        "d211086aefd45e0b7c113a43ed5eb620626b8681"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:49:53 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:49:53 2006 +0000"
      },
      "message": "[ospfd/zserv] adjust to new format\n\n2006-01-17 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_packet.c: (ospf_verify_header) print out the types\n\t  involved if there\u0027s a mismatch.\n\t* ospf_zebra.c: (ospf_zebra_add) Adjust to new zserv format.\n"
    },
    {
      "commit": "d211086aefd45e0b7c113a43ed5eb620626b8681",
      "tree": "353b32a059c864a748d1f52f90e8a57c8adc7b6f",
      "parents": [
        "789f78ac5a5bf1c22c9c053c883f60d45761e89b"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:43:18 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:43:18 2006 +0000"
      },
      "message": "[lib/zclient] Export zclient_create_header\n\n2006-01-17 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* zclient.{c,h}: (zclient_create_header) export this, seems others\n\t  could use it (in lieu of more complete zserv helpers).\n"
    },
    {
      "commit": "789f78ac5a5bf1c22c9c053c883f60d45761e89b",
      "tree": "ff7e4a00e6ff72fc3f15c8cd648a34f9c0160f34",
      "parents": [
        "7d0b0c4b7f510178a8960b0e00368be017ed5a08"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:42:03 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:42:03 2006 +0000"
      },
      "message": "[lib/vty] Add \u0027no terminal monitor\u0027 alias\n\n2006-01-17 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* vty.c: (no_terminal_monitor_cmd) New ALIAS for\n\t  terminal_no_monitor, in the more normal negating format,\n\t  to be kind to my fingers.\n\t  (vty_init) install new ALIAS.\n"
    },
    {
      "commit": "7d0b0c4b7f510178a8960b0e00368be017ed5a08",
      "tree": "4657272b687af5f85235ce85db9ed77dbfac4142",
      "parents": [
        "d3092e7f226c48f7caeac22ad62f39e8d71d9e12"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:40:45 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:40:45 2006 +0000"
      },
      "message": "[lib/md5] md5_loop should take void pointer for more useful caller warnings.\n\n2006-01-17 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* md5.{c,h}: (md5_loop) Is better off taking a void * and doing\n\t  cast to byte wise type internally, avoids needs for casts\n\t  in users.\n"
    },
    {
      "commit": "d3092e7f226c48f7caeac22ad62f39e8d71d9e12",
      "tree": "a4ede38eeab47522eae40c929ed5a4a82d978df5",
      "parents": [
        "98fd1e61212ea98154e7cc4b6deed41a07794523"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:33:46 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:33:46 2006 +0000"
      },
      "message": "[zserv] fix up custom isisd and bgpd Zserv functions for new format.\n\n2006-01-17 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_nexthop.c: (zlookup_read*) convert to new Zserv format.\n\t  (zlookup_query_ipv6) ditto.\n\t  (bgp_import_check) ditto.\n\t* isis_zebra.c: (isis_zebra_route_add_ipv4) fix for new\n\t  zserv format.\n"
    },
    {
      "commit": "98fd1e61212ea98154e7cc4b6deed41a07794523",
      "tree": "961f28ead9a2eb24fb7660cd52023489a7b431e2",
      "parents": [
        "6726f950ad25daa532e75dc7a6875b340ae0447d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:26:25 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 17 17:26:25 2006 +0000"
      },
      "message": "[ripd] Fix verification of received MD5 authenticated packets\n\n2006-01-17 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ripd.c: (rip_auth_md5) remove pdigest, not needed.\n\t  Use a local buffer for the auth_str, where it can be properly\n\t  nul padded. Do so, hence fixing MD5 authentication.\n\t  Key looked up via key ring should be used in preference to\n\t  the RIPv1 simple password, not other way around.\n\t  No need to copy around digests, we can reference them\n\t  directly.\n\t  The auth_len received can\u0027t be trusted, some implementations\n\t  lie (e.g. older ripd).\n\t  (rip_auth_md5_ah_write) rename len local variable to doff\n\t  to be consistent with other functions.\n\t  (rip_auth_header_write) add the missing return.\n\t  (rip_auth_md5_set) use the proper constructs to access stream.\n"
    },
    {
      "commit": "6726f950ad25daa532e75dc7a6875b340ae0447d",
      "tree": "c58764ee0b640a72d433da936434f5768a685d31",
      "parents": [
        "8fdc32ab9a81cb80296d322346867c8c3d2b2b37"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 16 12:06:00 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 16 12:06:00 2006 +0000"
      },
      "message": "2006-01-16 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* aspath_test.c: (validate) free the temporary aspaths.\n\t  (empty_get_test) ditto.\n"
    },
    {
      "commit": "8fdc32ab9a81cb80296d322346867c8c3d2b2b37",
      "tree": "bed62ebe30b81035f9ee9f5f605c1f443ad01c25",
      "parents": [
        "02335429e8cf2afc191fd518a3b55564bf6e5b2c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 16 12:01:29 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 16 12:01:29 2006 +0000"
      },
      "message": "[bgpd] add aspath_finish, static resource cleanup function.\n\n2006-01-16 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_aspath.c:\n\t  (aspath_snmp_pathseg) move the static stream pointer out to\n\t  file scope, so it can be freed.\n\t  (aspath_finish) new function, free aspath resources.\n\t* bgp_aspath.h: (aspath_finish) export.\n"
    },
    {
      "commit": "02335429e8cf2afc191fd518a3b55564bf6e5b2c",
      "tree": "aea6397f2ff082bded4380aa1db27245ff21994c",
      "parents": [
        "c1b9800a60f073c7d57f6232f9af7ae39bc3353a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 16 11:13:27 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 16 11:13:27 2006 +0000"
      },
      "message": "[bgpd] fix some leaks introduced in aspath rewrite.\n\n2006-01-16 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_aspath.c: (assegment_append_asns) XREALLOC can return\n\t  NULL theoretically, take care not to lose the allocated data.\n\t  (aspath_hash_alloc) aspath_dup already set the aspath\n\t  string - fix leak.\n\t  (aspath_parse) aspath_hash_alloc dupes the entire aspath,\n\t  including segments, but we forgot to free the temporary\n\t  assegment.\n"
    },
    {
      "commit": "c1b9800a60f073c7d57f6232f9af7ae39bc3353a",
      "tree": "94fc0006fcf73d4ab4733bef23689cb8f36772ee",
      "parents": [
        "c77d4546619f9d3e0ccfac5acbc0ebb42658a61f"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 16 01:54:02 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 16 01:54:02 2006 +0000"
      },
      "message": "[zserv] Extend Zserv header with version information and marker field\n\n2006-01-16 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* lib/zclient.h: Update the Zserv protocol header with a version\n\t  field.  Define the old command field to be a \u0027marker\u0027, to\n\t  allow old Zserv and updated Zserv to be differentiated.\n\t  Future updates will bump the version field obviously. New\n\t  command field is made wider.  Try to stop using the\n\t  \u0027zebra_size_t\u0027 typedef in the callbacks.\n\t* lib/zclient.c: Update to read/write new format header.\n\t* zebra/zserv.c: Ditto\n"
    },
    {
      "commit": "c77d4546619f9d3e0ccfac5acbc0ebb42658a61f",
      "tree": "007f6c4e2c85e4df115c39011aa7ad3fb379f434",
      "parents": [
        "44316fef4d93b3d94cf45663ce35797d32acce71"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 11 01:59:04 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 11 01:59:04 2006 +0000"
      },
      "message": "[zserv] Update interface flags to 8 bytes wide.\n\n2006-01-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* if.h: (struct interface) expand flags to 8 bytes.\n\t* zclient.c: (zebra_interface_{add,state}_read) stream read of\n\t  interface flags now need to use stream_getq.\n\t  (zebra_interface_if_set_value) ditto\n\n2006-01-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* zserv.c: (zsend_interface_{add,delete,update}) if flags are\n\t  8 bytes now, update to write out with stream_putq.\n"
    },
    {
      "commit": "44316fef4d93b3d94cf45663ce35797d32acce71",
      "tree": "8dcbcf2065b35f40ac3044efdb20b26cc27388bc",
      "parents": [
        "1a643f88b238147dc2cfbe137d9feae7e3f3546e"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 11 01:38:25 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 11 01:38:25 2006 +0000"
      },
      "message": "2006-01-11 Erik Smit \u003czoiah@zoiah.net\u003e\n\n\t* vtysh.c: (vtysh_config_from_file) fix regression from\n\t  a previous cleanup, vtysh_client.flags and cmd-\u003edaemon are\n\t  bitwise flags, bitwise \u0026 was meant to be used. Fixes breakage\n\t  of integrated config file reading.\n"
    },
    {
      "commit": "1a643f88b238147dc2cfbe137d9feae7e3f3546e",
      "tree": "8855528746546e29dd645d80a6df22eb84bb351a",
      "parents": [
        "818e56cf2723843377d2881a6b81b8adc0fe9160"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 11 01:08:19 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Jan 11 01:08:19 2006 +0000"
      },
      "message": "[ospfd] Bug #234. Fix nbr_self reinitialisation after down/up.\n\n2006-01-10 Len Sorensen \u003clennartsorensen@ruggedcom.com\u003e\n\n\t* (general) Bug #234, see also [quagga-dev 3902].\n\t  Fix problem with nbr_self not being properly reinitialised\n\t  when an interface comes up, after having been down.\n\t  Some re-arrangement done by Paul Jakma, any bugs introduced\n\t  on top of Len\u0027s suggested changes are his.\n\t* ospf_neighbor.c: (ospf_nbr_add_self) centralise\n\t  initialisation of nbr_self parameters here.\n\t* ospf_interface.c: (ospf_if_new) deleting initialisation of\n\t  parameters of nbr_self, just rely on call to\n\t  ospf_nbr_add_self.\n\t  (ospf_if_cleanup) ditto.\n\t* ospfd.c: (ospf_network_run) ditto.\n"
    },
    {
      "commit": "818e56cf2723843377d2881a6b81b8adc0fe9160",
      "tree": "7abd2058a41c3e2b24f739dfd05ec3edfe5c265a",
      "parents": [
        "37c38304e481037ed075f79f78a3d6f78038f907"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 23:27:05 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 23:27:05 2006 +0000"
      },
      "message": "[ospfd] fix undefined effect expression\n\n2006-01-10 Juris Kalnins \u003cjuris@mt.lv\u003e\n\n\t* ospf_packet.c: (ospf_make_md5_digest) fix odd, if not\n\t  undefined effect, assignment of an increment expression.\n"
    },
    {
      "commit": "37c38304e481037ed075f79f78a3d6f78038f907",
      "tree": "ee83dfe3f0ea07e3d99eb32e32a5902d6f627ce9",
      "parents": [
        "98429f6d07b0bac006eb14aea13c1d989fc835ed"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 22:15:45 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 22:15:45 2006 +0000"
      },
      "message": "[bgpd] remove export of long defunct function\n\n2006-01-10 Juris Kalnins \u003cjuris@mt.lv\u003e\n\n\t* bgpd.h: (bgp_router_id_unset) ex-function, remove.\n"
    },
    {
      "commit": "98429f6d07b0bac006eb14aea13c1d989fc835ed",
      "tree": "efe6d2709a93147939544e63bba81b2ba24823d5",
      "parents": [
        "c42c177de3ee3aa50c25b5e957c9ba284f19bf6b"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 22:11:54 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 22:11:54 2006 +0000"
      },
      "message": "[ospfd] fix rare leak of struct connected, in an error path.\n\n2006-01-10 Juris Kalnins \u003cjuris@mt.lv\u003e\n\n\t* ospf_zebra.c: (ospf_interface_address_delete) fix rare leak of\n\t  struct connected in an error case.\n"
    },
    {
      "commit": "c42c177de3ee3aa50c25b5e957c9ba284f19bf6b",
      "tree": "32414691a47de0aa8980c51a7216dfe2e1f1d878",
      "parents": [
        "867528434d32102b02e2538dcaa7c86aaf47f695"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 20:36:49 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 20:36:49 2006 +0000"
      },
      "message": "[ospfd] trim redundant strings\n\n2006-01-10 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_vty.c: (config_write_ospf_distribute) trim down\n\t  redundant strings.\n"
    },
    {
      "commit": "867528434d32102b02e2538dcaa7c86aaf47f695",
      "tree": "45c996e73efe19e105a26f441f5617948c98f6ba",
      "parents": [
        "067fca86323b189fabf4c64c0b9ccb98a458b981"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 20:34:46 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 20:34:46 2006 +0000"
      },
      "message": "[ospfd] fix automatic router-id and network enable bug.\n\n2006-01-10 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospfd.c: (ospf_network_run) checking to see if router-id\n\t  is set should be on ospf-\u003erouter_id, not router_id_static.\n\t  This was causing ospfd to not start if router-id had not\n\t  been configured statically.\n\t  (ospf_if_update) ditto.\n"
    },
    {
      "commit": "067fca86323b189fabf4c64c0b9ccb98a458b981",
      "tree": "2a8b28a2cad3d1a956748204b7b20eecb63b1496",
      "parents": [
        "4b201d46348b81bd9d59aa626c81f7457ea6ef38"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 14:49:04 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 14:49:04 2006 +0000"
      },
      "message": "[tests] Add small unit test for the new stream functions\n\n2006-01-10 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* test-stream.c: new file, small unit test for new\n\t  resize and {put,get}-quad stream functions.\n\t* Makefile.am: build teststream unit test.\n"
    },
    {
      "commit": "4b201d46348b81bd9d59aa626c81f7457ea6ef38",
      "tree": "b841d11214e5ec8ff4904d193c5e0b7c4e741a50",
      "parents": [
        "e14b7fca6279fe9dc41c8aa9816b5685952c4b19"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 14:35:19 2006 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Jan 10 14:35:19 2006 +0000"
      },
      "message": "[stream] Add quad-word support and stream_resize\n\n2006-01-10 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* stream.c: (stream_new) Allocate stream data as seperate object.\n\t  (stream_free) free the data.\n\t  (stream_resize) new function, resize stream to new size.\n\t  (stream_{get,put}q*) new functions to get/put quad word size\n\t  types.\n\t* stream.h: (struct stream) make data seperate from the stream.\n\t  Export new stream_resize and quad-word get/put functions.\n"
    },
    {
      "commit": "e14b7fca6279fe9dc41c8aa9816b5685952c4b19",
      "tree": "07a64009dee808041bb4ffb5605f085ae412064a",
      "parents": [
        "f80a016fbd5ba51dc08412d7fd0794b51223c978"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 29 16:04:53 2005 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 29 16:04:53 2005 +0000"
      },
      "message": "remove dead code (from David Young)\n"
    },
    {
      "commit": "f80a016fbd5ba51dc08412d7fd0794b51223c978",
      "tree": "6be9f97cfb52681d692c2c40fb3e4ffe47e1ac23",
      "parents": [
        "6083e1f82ce3a33d9929dea8c64cbc5ffe486000"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 29 16:03:32 2005 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 29 16:03:32 2005 +0000"
      },
      "message": "2005-12-29  Greg Troxel  \u003cgdt@fnord.ir.bbn.com\u003e\n\n        * vty.c (vty_hello): add cast to quiet lint (from David Young)\n\n(patch-lint)\n"
    },
    {
      "commit": "6083e1f82ce3a33d9929dea8c64cbc5ffe486000",
      "tree": "48872266c1f9f0741ea27513560248420a1632f7",
      "parents": [
        "a3214b79aceed58ae638afe62d9db149f3bc81c7"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 29 15:59:57 2005 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 29 15:59:57 2005 +0000"
      },
      "message": "2005-12-29  Greg Troxel  \u003cgdt@fnord.ir.bbn.com\u003e\n\n        * rt_socket.c (kernel_rtm_ipv4): Use AF_INET rather than AF_UNSPEC\n        for mask.  From David Young.\n"
    },
    {
      "commit": "a3214b79aceed58ae638afe62d9db149f3bc81c7",
      "tree": "95a7481d6f9149cc2eae16da3616d90609875045",
      "parents": [
        "c9c93d50cc9cae2f7878434431eafab8f7ee8d89"
      ],
      "author": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 29 15:40:49 2005 +0000"
      },
      "committer": {
        "name": "gdt",
        "email": "gdt",
        "time": "Thu Dec 29 15:40:49 2005 +0000"
      },
      "message": "shell script and hints for building on NetBSD.  (gdt deleted private\ncopy by accident when getting a fresh checkout, and on recovery would\nlike to have it safe, and also it may be useful to others.)\n"
    },
    {
      "commit": "c9c93d50cc9cae2f7878434431eafab8f7ee8d89",
      "tree": "f027b74dc63f5716169bdfcdaedf7980abb58d2a",
      "parents": [
        "00c290e02edd6c906b669de9f31a45d14ed8bec0"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 26 13:31:11 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 26 13:31:11 2005 +0000"
      },
      "message": "[ospfd] rename graceful to deferred, fix a tiny compile warning.\n\n2005-11-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) s/graceful/deferred/ in all files, the former term\n\t   is confusing wrt OSPF Graceful-Restart.\n\t* ospfd.c: (ospf_deferred_shutdown_check) dont return\n\t  a function which returns void. SOS complains about this.\n\t  (ospf_finish)\n"
    }
  ],
  "next": "00c290e02edd6c906b669de9f31a45d14ed8bec0"
}
