)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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"
    },
    {
      "commit": "00c290e02edd6c906b669de9f31a45d14ed8bec0",
      "tree": "5d81084291d38b18144e6f53847026d24587b400",
      "parents": [
        "89368d9f8b70fef5c196db9055bd6a7e7aaa4f36"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 26 09:21:43 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 26 09:21:43 2005 +0000"
      },
      "message": "[c99] change gcc zero-length array to C99 flexible array declaration\n\n2005-11-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* buffer.c: (struct buffer_data) change gcc zero array\n\t  declaration to C99 incomplete array.\n\t* stream.h: (struct stream) same\n\t* ospf_api.c: (struct opaque_lsa) same\n"
    },
    {
      "commit": "89368d9f8b70fef5c196db9055bd6a7e7aaa4f36",
      "tree": "e3756712745f8e6556fa35105bea3023647b9233",
      "parents": [
        "6a4b883229eb5590ee59cbe24ea0005df03be675"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 26 09:14:07 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 26 09:14:07 2005 +0000"
      },
      "message": "[zebra] fix connected_add_ipv6 declarations, label should be const.\n\n2005-11-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* connected.{c,h}: (connected_add_ipv6) label should have\n\t  const qualifier, fix declarations.\n"
    },
    {
      "commit": "6a4b883229eb5590ee59cbe24ea0005df03be675",
      "tree": "e9b88bbce3af475629401469be577b1dfb7231da",
      "parents": [
        "0ed3192835bdf53c5b3b90541735131e9ed56602"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 26 08:28:00 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 26 08:28:00 2005 +0000"
      },
      "message": "[build] Set default CFLAGS for SunPro, rationalise CFLAGS defaults.\n\n2005-11-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Collect together CFLAGS based on compiler\n\t  detected a bit. Recognise and set default CFLAGS for SunPro /\n\t  SOS10.\n"
    },
    {
      "commit": "0ed3192835bdf53c5b3b90541735131e9ed56602",
      "tree": "0b7533f6a8dd4a65bd0005fe251b9e684ab61cea",
      "parents": [
        "ec1a428343cad343969d569c56acbe6b02ab8f4f"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 25 20:23:46 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 25 20:23:46 2005 +0000"
      },
      "message": "2005-11-25 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* texinfo.tex: update to newer version, seems to now properly\n\t  scale the diagramme images in PDF output.\n"
    },
    {
      "commit": "ec1a428343cad343969d569c56acbe6b02ab8f4f",
      "tree": "ed693dcea011eccbef34113da3e340ec1290e7b3",
      "parents": [
        "b6026073584b855d47a8e2033d2aa3413a3394e9"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 24 15:15:17 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 24 15:15:17 2005 +0000"
      },
      "message": "[zebra] Fix mistake in previous commit and further compile warnings/errors.\n\n2005-11-24 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* kernel_socket.h: New header for functions exported to sysctl\n\t  methods.\n\t* kernel_socket.c: include previous.\n\t  Remove static qualifier from couple of functions which are\n\t  used by sysctl methods, incorrectly added in previous commit.\n\t  Add a workaround for a bogus gcc warning to the RTA_ macros.\n\t* Makefile.am: Add kernel_socket.h to noinst_HEADERS\n\t* if_sysctl.c: include rt.h and kernel_socket.h and remove\n\t  redundant prototypes.\n\t* rtread_sysctl.c: ditto.\n\t  (route_read) fix mismatch of return values.\n\t* {rt,zserv,rib}.h: Include lib headers depended on.\n"
    },
    {
      "commit": "b6026073584b855d47a8e2033d2aa3413a3394e9",
      "tree": "acc8812673bc85302da33007549e7828e2a23877",
      "parents": [
        "6e0f1b940dc281863ef9d9f3bd57676927b8603f"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 24 12:51:24 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 24 12:51:24 2005 +0000"
      },
      "message": "[lib/zebra.h] fix Linux compile error\n\n2005-11-24 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* zebra.h: s/u_int/unsigned int/, u_int is a BSD type, defining\n\t  __USE_BSD on Linux pulls in further things from netinet/ip.h\n\t  which dont preprocess for some reason. There is no C99\n\t  shorthand type directly equivalent to u_int afaict, so don\u0027t\n\t  use it.\n"
    },
    {
      "commit": "6e0f1b940dc281863ef9d9f3bd57676927b8603f",
      "tree": "d6b5bdc6518a4ca4ac8c9d6df0ffd4bab21b369b",
      "parents": [
        "a0ace1e8f2331f497ccea3d840a4051f75341fdf"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 24 12:47:17 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 24 12:47:17 2005 +0000"
      },
      "message": "[privs/solaris] Fix unused variable and incorrect format string.\n\n2005-11-24 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* privs.c: (zcaps2sys/solaris) remove unused variable.\n\t  (zprivs_state_caps/solaris) Format string missing a\n\t  specifier.\n"
    },
    {
      "commit": "a0ace1e8f2331f497ccea3d840a4051f75341fdf",
      "tree": "792c2f17d35e8cc7aa73e53f76743f0ceb4bc8a3",
      "parents": [
        "6621ca868c935a82468e07ea2e5a165f40750658"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 24 12:40:39 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 24 12:40:39 2005 +0000"
      },
      "message": "[ospfclient] add static qualifier\n\n2005-11-24 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_apiclient.c: add static qualifier to relevant functions.\n\t* ospfclient.c: ditto\n"
    },
    {
      "commit": "6621ca868c935a82468e07ea2e5a165f40750658",
      "tree": "01db8cd66509c8afd2057558b048fc134c1371b8",
      "parents": [
        "5906476bea21153f5d757e364b8e4c604b72cef1"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Nov 23 13:02:08 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Nov 23 13:02:08 2005 +0000"
      },
      "message": "[zebra] fix some small compile errors, mark several functions static\n\n2005-11-23 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) fix some small compile errors, and mark several\n          functions as static.\n        * kernel_socket.c: (ifan_read) should be static.\n          fix missing brackets.\n          (ifm_read,ifam_read,rtm_read_mesg,kernel_read) Make static\n          (ifam_read_mesg) make static. fix incorrect variable name.\n          (rtm_read) make static. Fix call to rib_delete_ipv4 which\n          should be rib_delete_ipv6.\n          (routing_socket,kernel_init) should be static. Void argument\n          should be specified as such, not left incomplete.\n        * rt_netlink.c: rt.h should be included, contains prototypes of\n          exported functions.\n          (kernel_delete_ipv6_old) fix sign of index argument.\n        * rt_socket.c: Exact same as previous. Also, make various\n          functions static.\n        * rtread_getmsg.c: Include zserv.h, which prototypes\n          route_read. Make static.\n        * rtread_sysctl.c: zserv.h and rt.h should be included.\n          fix definition of route_read.\n"
    },
    {
      "commit": "5906476bea21153f5d757e364b8e4c604b72cef1",
      "tree": "09fb18f3bc10b6b5e3adf01bfef49cfd3115254e",
      "parents": [
        "ad72740e884f16c1f30a99168428fdd15fadaa68"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Nov 23 02:48:14 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Nov 23 02:48:14 2005 +0000"
      },
      "message": "[tests] Add empty-path and sequence+1ASN test data to aspath_test.c\n\n2005-11-23 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* aspath_test.c: Add an empty aspath to test segments, and to\n\t  compare tests.\n\t  Add a segment identical to seq1, but with one extra asn.\n\t  Fix bogus free of stream in make_aspath for case where\n\t  no stream was allocated (empty path data).\n"
    },
    {
      "commit": "ad72740e884f16c1f30a99168428fdd15fadaa68",
      "tree": "79126f6d960dd8ab96043203d728edfdc04f67a1",
      "parents": [
        "c24d602e82d31a2fcbccb4cc3b66f8d0a79d5f22"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Nov 23 02:47:02 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Nov 23 02:47:02 2005 +0000"
      },
      "message": "[bgp] Fix SEGV if empty path is confed-compared ([quagga-users 5968])\n\n2005-11-23 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_aspath.c: (assegments_parse) should be static\n\n2005-11-23 Juergen Kammer \u003cj.kammer@eurodata.de\u003e\n\n\t* bgp_aspath.c: (aspath_cmp_left_confed) fix SEGV for case\n\t  where one or both paths are empty.\n"
    },
    {
      "commit": "c24d602e82d31a2fcbccb4cc3b66f8d0a79d5f22",
      "tree": "55abf96bbb7899029d542b0714e666159484dbb2",
      "parents": [
        "b29800a676b7c3cf00d8a4086b7783ccb7e2f29f"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Nov 20 14:54:12 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Nov 20 14:54:12 2005 +0000"
      },
      "message": "2005-11-20 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n        * ospf_abr.c: (ospf_abr_announce_network_to_area) check\n          returned LSA of ospf_summary_lsa_refresh and print warning if\n          it failed.\n          (ospf_abr_announce_network_to_area) similar\n          (ospf_abr_announce_rtr_to_area) similar\n        * ospf_lsa.c: (ospf_router_lsa_new) check LSA returned is valid.\n          (ospf_router_lsa_originate) similar\n          (ospf_router_lsa_refresh, ospf_network_lsa_new) similar\n          (ospf_summary_lsa_new) Check ID is valid.\n          (ospf_summary_lsa_originate) ditto, and check returned LSA from\n           previous function is !NULL.\n          (ospf_summary_lsa_refresh) check ospf_summary_lsa_new return\n           is !NULL.\n          (ospf_summary_asbr_lsa_new) ID valid check.\n          (ospf_summary_asbr_lsa_originate) similar.\n"
    },
    {
      "commit": "b29800a676b7c3cf00d8a4086b7783ccb7e2f29f",
      "tree": "98afc20c5aae1909e34b1b86f1d6d18f36391c89",
      "parents": [
        "77b1cffe3b71c886152534b8507f00c7fcbd12c9"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Nov 20 14:50:45 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Nov 20 14:50:45 2005 +0000"
      },
      "message": "2005-11-20 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n        * ospfd.h: remove the OSPF_ROUTER_ID_UPDATE_DELAY define\n          (struct ospf) remove the router_id timer thread.\n          remove export of ospf_router_id_update_timer.\n        * ospfd.c: (ospf_router_id_update) call ospf_if_update to\n          poke interfaces into action after ID has been configured.\n          (ospf_router_id_update_timer) removed.\n          (ospf_finish_final) t_router_id_update timer is gone.\n          (ospf_network_run) router-id update timer gone.\n          call ospf_router_id_update directly if ID not configured.\n          In the per-iface loop, don\u0027t ospf_if_up interfaces if\n          ID is still not configured. The update function will call\n          ospf_if_update anyway.\n          (ospf_if_update) ID update timer is gone. Just return if no\n          ID is set.\n        * ospf_vty.c: (ospf_router_id) call ospf_router_id_update, no\n          timer needed.\n        * ospf_zebra.c: (ospf_router_id_update_zebra) call\n          ospf_router_id_update directly, not via timer.\n"
    },
    {
      "commit": "77b1cffe3b71c886152534b8507f00c7fcbd12c9",
      "tree": "c5eb056d6254172e741b65586d71e2e6c54fc094",
      "parents": [
        "4859e20c40070ea362627529c52f35de105acc44"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Nov 20 02:15:50 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Nov 20 02:15:50 2005 +0000"
      },
      "message": "[isisd] remove includes of common system headers.\n\n2005-11-20 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n        * (general) remove includes of very common system headers,\n          these are already picked up by zebra.h. Further, including\n          them before zebra.h messes up all our lovely (sarcasm)\n          autoconf\u0027d detecting of platform specific things. Recent\n          addition of stdint.h to configure.ac and zebra.h appears\n          particularly to throw up this problem.\n"
    },
    {
      "commit": "4859e20c40070ea362627529c52f35de105acc44",
      "tree": "6418a806404f10d2b0949820329e1f9a57be4040",
      "parents": [
        "649654aba22704a792949374990bc2a29c357de8"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Nov 20 02:09:32 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Nov 20 02:09:32 2005 +0000"
      },
      "message": "- quagga.spec.in: Release sub-rev now release_rev macro, for rpmbuild -D\n"
    },
    {
      "commit": "649654aba22704a792949374990bc2a29c357de8",
      "tree": "dea4976f37c2719ccf2d6f01f14f32f2afac792b",
      "parents": [
        "70cd34749f3c57d6f67ab31a9552c46afe437553"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Nov 16 20:17:52 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Nov 16 20:17:52 2005 +0000"
      },
      "message": "[ospfd] Standardize buffer sizes used for displaying timers.\n2005-11-16 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_dump.h: Define OSPF_TIME_DUMP_SIZE as appropriate buffer size\n\t  for use with ospf_timer_dump and ospf_timeval_dump.\n\t* ospf_vty.c: Change all buffer sizes used with ospf_timer_dump and\n\t  ospf_timeval_dump to have size OSPF_TIME_DUMP_SIZE.\n\t  (show_ip_ospf_interface_sub) Fix possible buffer overflow in\n\t  call to ospf_timer_dump.\n"
    },
    {
      "commit": "70cd34749f3c57d6f67ab31a9552c46afe437553",
      "tree": "cbb09a4e97d559ae0806134a94313e7352821741",
      "parents": [
        "889e9311e5c900ce24eecf00fcb5b8b9d51bb020"
      ],
      "author": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Nov 16 19:33:22 2005 +0000"
      },
      "committer": {
        "name": "ajs",
        "email": "ajs",
        "time": "Wed Nov 16 19:33:22 2005 +0000"
      },
      "message": "[ospfd] Make OSPF_ISM_TIMER_OFF macro safer.\n2005-11-16 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* ospf_ism.h: (OSPF_ISM_TIMER_OFF) Improve macro syntax by enclosing\n\t  in \u0027do {...} while(0)\u0027.\n"
    },
    {
      "commit": "889e9311e5c900ce24eecf00fcb5b8b9d51bb020",
      "tree": "d5f3ebd53e4185157027becf01d67ace5400e24d",
      "parents": [
        "0fb58d5d7993b638fc46085944d17d3a54d66046"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 14 14:46:35 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 14 14:46:35 2005 +0000"
      },
      "message": "[workqueue] Update workqueue users callbacks to additional arguments\n\n2005-11-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) pass struct work-queue to callback functions.\n\t* workqueue.h: (struct work_queue) move the state flag\n\t  variables to end.\n\t  Add an opaque pointer to spec, for user-data global to the\n\t  queue.\n\t  Pass reference to work_queue to all callbacks.\n\t* workqueue.c: (work_queue_item_remove) pass ref to workqueue\n\t  to user callbacks.\n\t  (work_queue_run) ditto.\n"
    },
    {
      "commit": "0fb58d5d7993b638fc46085944d17d3a54d66046",
      "tree": "9b1195ad505d2c14fdf09036db4f324ff3ec7f18",
      "parents": [
        "76367ea9753aa9cef7cf5d3c954f55b5725f31da"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 14 14:31:49 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 14 14:31:49 2005 +0000"
      },
      "message": "2005-11-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* zebra_rib.c: (rib_process) convert to new workqueue specs and\n\t  shut up gcc, which complains about cast from void via\n\t  function parameters, for some dumb reason. Do the cast\n\t  inside the function instead.\n\t  (rib_queue_qnode_del) ditto.\n\t  (rib_queue_init) no need for the casts anymore.\n"
    },
    {
      "commit": "76367ea9753aa9cef7cf5d3c954f55b5725f31da",
      "tree": "d3b6dc5bd84fb5db7db89cef1d5c1f0bc302f9ca",
      "parents": [
        "190880dc790007a14911ef8c170af33a50a7a674"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 14 14:05:35 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 14 14:05:35 2005 +0000"
      },
      "message": "[bug #231] check and include stdint.h, also add std\u003dc99 to gcc CFLAGS\n\n2005-11-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Tell gcc we like C99.\n\t  [bug #231] Check and test for stdint.h.\n\t* lib/zebra.h: [bug #231] include stdint, if its there.\n"
    },
    {
      "commit": "190880dc790007a14911ef8c170af33a50a7a674",
      "tree": "8de89e02883f522cd5d730a416ce771fd2f23ed2",
      "parents": [
        "31a5976bb99f1875ebcfc29a6359f3a7ae81a795"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 14 12:07:47 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 14 12:07:47 2005 +0000"
      },
      "message": "2005-11-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) Add state to detect queue floods.  There\u0027s no sense\n\t  trying to be sparing of CPU resources, if the queue is\n\t  flooding and using ever more memory resources. we should just\n\t  get on with clearing the queue.\n\t  The sense of delay and hold were wrong way around, fix.\n\t* workqueue.h: (struct work_queue) Add status bitfield.  Add\n\t  \u0027flood\u0027 integer to workqueue spec.  Add runs_since_clear\n\t  counter to workqueue.\n\t* workqueue.c: (work_queue_new) set defaults for delay, hold\n\t  and flood.\n\t  (work_queue_add) initial schedule should use delay, not hold.\n\t  (show_work_queues) Print flood field, conserve whitespace.\n\t  (work_queue_unplug) use delay, not hold.\n\t  (work_queue_run) consecutive runs should be seperated by hold\n\t  time, not delay.\n\t  Keep track of number of consecutive runs, go into \u0027overdrive\u0027\n\t  if queue is being flooded, we can\u0027t avoid making heavy use of\n\t  resources, better to use CPU than ever more RAM.\n"
    },
    {
      "commit": "31a5976bb99f1875ebcfc29a6359f3a7ae81a795",
      "tree": "2c15efa99bd7d150ed505ada900d66258b48bb8a",
      "parents": [
        "6fe70d1b35c189cb1e488b2c26551ba7baac6148"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 14 11:11:11 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 14 11:11:11 2005 +0000"
      },
      "message": "[ospfd] misc small fixes. Fix default stub router setting. no opaque compile.\n\n2005-11-14 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospfd.c: (ospf_new) stub-shutdown should just default to\n\t  unconfigured, too strange otherwise.\n\t  (ospf_finish_final) t_opaque_lsa_self TIMER_OFF should be\n\t  preprocessor conditional on HAVE_OPAQUE_LSA.\n\t* ospfd.h: (struct ospf) remove the SHUTDOWN_DEFAULT define.\n\t  no longer used, plus it wasn\u0027t in range that the command\n\t  accepted.\n\t* ospf_zebra.h: Depends on vty.h, include it.\n"
    },
    {
      "commit": "6fe70d1b35c189cb1e488b2c26551ba7baac6148",
      "tree": "c2fc75ff90d6ad2d8a05f1f8a6414a913be53a8d",
      "parents": [
        "db29ae5fcaee1d2de371415e351afe6c3df19874"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 12 22:55:10 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 12 22:55:10 2005 +0000"
      },
      "message": "[solaris] Extra debug and cross-checks for kernel_socket, two Sol9 fixes.\n\n2005-11-12 Alexander Gall \u003cgall@switch.ch\u003e\n\n\t* See [quagga-dev 1815]\n\t* kernel_socket.c: (rtm_write) Use SAROUNDUP when HAVE_SIN_LEN\n\t  is not available.\n\t* rt_socket.c: (kernel_rtm_ipv6(_multipath)) set family to\n\t  AF_INET6 on ipv6 routes.\n\n2005-11-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* kernel_socket.c: Add RTA_NAME_GET macro to extract name from\n\t  sockaddr_dl. Add some more RTF_ flags.\n\t* (ifan_read) Add some debug messages.\n\t* (ifm_read) Add more debug messages. More robust cross-checks\n\t  of index against name.\n\t  Fall back to by-name lookup if the index lookup fails, future\n\t  proofing more than anything else.\n\t  (ifam_read_mesg) Read RTA_IFP. Add debug messages.\n\t  (ifam_read) More debug. If there\u0027s an RTA_IFP and it isn\u0027t\n\t  the name of the interface, save it as the label.\n\t  (rtm_read_mesg) Read RTA_IFP.\n\t  (rtm_read) allow name to be retrieved.\n\t  (rtmsg_debug) expand on the debug message.\n"
    },
    {
      "commit": "db29ae5fcaee1d2de371415e351afe6c3df19874",
      "tree": "616eb06aa27c650c064d07d84dbebb95485ec258",
      "parents": [
        "58e1befe5fbd6eade52a1536acb49ea4b4fc5837"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 12 22:36:41 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 12 22:36:41 2005 +0000"
      },
      "message": "[lib] \u0027show route-map\u0027 should print call action seperate from exit policy\n\n2005-11-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* routemap.c: (vty_show_route_map_entry) call action is\n\t  seperate from exit action, latter should still be printed\n\t  regardless of whether a call is specified.\n"
    },
    {
      "commit": "58e1befe5fbd6eade52a1536acb49ea4b4fc5837",
      "tree": "3851ffdb632c5e8d6ea6e8ed77cee7fb6c21b013",
      "parents": [
        "cb3d31db278a522641f2ec5408034b819091bab6"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 11 12:10:03 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 11 12:10:03 2005 +0000"
      },
      "message": "[ospfd] SPF ospf_canonical_nexthops_free bugfix.\n"
    },
    {
      "commit": "cb3d31db278a522641f2ec5408034b819091bab6",
      "tree": "ae41d89daef54d25b1c67a040cd00b6b22f42ba0",
      "parents": [
        "cf220d1f7397fa2d113d4e5f8a8d6c927a610cba"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 11 11:16:11 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 11 11:16:11 2005 +0000"
      },
      "message": "[doc] quagga.info updated /again/ due to version bump, d\u0027oh.\n"
    },
    {
      "commit": "cf220d1f7397fa2d113d4e5f8a8d6c927a610cba",
      "tree": "50f361ec167e4d868cef80cd780c3b6dfa1d60fc",
      "parents": [
        "4de6ddcd92290c4f04cc67d93a0cbacbc96df04b"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 11 10:28:59 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 11 10:28:59 2005 +0000"
      },
      "message": "2005-11-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* NEWS: Update.\n\t* configure.ac: Bump to 0.99.2\n"
    },
    {
      "commit": "4de6ddcd92290c4f04cc67d93a0cbacbc96df04b",
      "tree": "8a7b4afc38a858574689aae7bbd0fe78603bd8fd",
      "parents": [
        "2265f1ddcf8645fe2b4d3e994db643744a99bd09"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 11 09:59:10 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 11 09:59:10 2005 +0000"
      },
      "message": "- commit the actual file..\n"
    },
    {
      "commit": "2265f1ddcf8645fe2b4d3e994db643744a99bd09",
      "tree": "fc31446c1c502ee72d6199ba98be1661b6c9892c",
      "parents": [
        "0994c3a59c114e4e2427f2c02cb2f12881854e36"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 11 09:58:35 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 11 09:58:35 2005 +0000"
      },
      "message": "[trivia] update quagga.info, auto-built file\n\n2005-11-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* quagga.info: update auto-built file. Methinks it\u0027s time to\n\t  remove from CVS..\n"
    },
    {
      "commit": "0994c3a59c114e4e2427f2c02cb2f12881854e36",
      "tree": "8f2230655273a995a554ffa51e2daad325c08df3",
      "parents": [
        "ca6383ba74cca26d8e33184a1c2abc69a1149ef9"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 11 09:52:40 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 11 09:52:40 2005 +0000"
      },
      "message": "[zebra] Fix warning and small connected-label changes merge error.\n\n2005-11-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* kernel_socket.c: (ifm_read) arithmetic on void pointer\n\t  warning.\n\t  (ifam_read) Fix error from connected-with-label merge,\n\t  something crept in from the pending Solaris kernel_socket.c\n          patch which shouldn\u0027t have.\n"
    },
    {
      "commit": "ca6383ba74cca26d8e33184a1c2abc69a1149ef9",
      "tree": "dc77b2ef35da08eb7760b0b56cbf56326539f45f",
      "parents": [
        "5729e089d92dda6163d632e19b1b9dc0217c4893"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 10 10:21:19 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 10 10:21:19 2005 +0000"
      },
      "message": "2005-11-10 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* HACKING: Add recommendation to provide a single Subject\n\t  style description to the commit message.\n\t  Add some recommendations for ChangeLog.\n"
    },
    {
      "commit": "5729e089d92dda6163d632e19b1b9dc0217c4893",
      "tree": "0726836a4af0e35ac0f1afa5b3b83c3034082db3",
      "parents": [
        "1189075bca319d9a0bc5be9a0548af75f6b36951"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 07 03:19:51 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Nov 07 03:19:51 2005 +0000"
      },
      "message": "[doc] List snmptrap.texi as a source, so it gets included in dist\n\n2005-11-07 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* Makefile.am: snmptrap.texi needs to be listed as a source,\n\t  not disted otherwise.\n"
    },
    {
      "commit": "1189075bca319d9a0bc5be9a0548af75f6b36951",
      "tree": "5c0399ce2340a96e23f238d2b72114b3139db30f",
      "parents": [
        "aa5943f771833113bab14bfd77dea8a9c770f61c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 05 16:29:54 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Nov 05 16:29:54 2005 +0000"
      },
      "message": "- Makefile.am: quagga.pam.stack should be in dists\n- quagga.spec.in: introduce dist variable to allow for differences\n  e.g in buildreqs, pam config files. etc.\n"
    },
    {
      "commit": "aa5943f771833113bab14bfd77dea8a9c770f61c",
      "tree": "324620397ebfd4ee96e5fddfb5e69449151a516c",
      "parents": [
        "a3957e3838145e3ca624236712bcb6999a35d9b1"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 04 21:53:59 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 04 21:53:59 2005 +0000"
      },
      "message": "2005-11-04 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* quagga.info: Update auto-built file\n\t* ospf6d.texi: Add example config\n\t* bgpd.texi: Add example configs. Couple of cleanups of format\n\t  and macros.\n\t* routemap.texi: Add an explanation of how route-maps work.\n\t  Document the call and exit-policy commands.\n"
    },
    {
      "commit": "a3957e3838145e3ca624236712bcb6999a35d9b1",
      "tree": "dc6309be79fb66a61734034e9a4af4e12240b1f6",
      "parents": [
        "e832203d8e660fbdbc71471cd8962c23b1721950"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 04 12:48:25 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 04 12:48:25 2005 +0000"
      },
      "message": "2005-11-04 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* snmptrap.texi: Contributed documentation, contributors name\n\t  is lost (please get in touch). Configuring SNMP for logging\n\t  traps.\n\t* snmp.texi: Minor formatting changes.\n\t* quagga.info: Update auto-built file\n"
    },
    {
      "commit": "e832203d8e660fbdbc71471cd8962c23b1721950",
      "tree": "39ced536d3569f957f5b327f32226fcbcd3796f0",
      "parents": [
        "c8c1521a7d39d165ef856c1a3a6dcd54f0532e8d"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 04 12:34:06 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 04 12:34:06 2005 +0000"
      },
      "message": "2005-11-04 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* prototype.dev.in: lib/md5-gnu.h is now lib/md5.h\n"
    },
    {
      "commit": "c8c1521a7d39d165ef856c1a3a6dcd54f0532e8d",
      "tree": "ac069b1dd77be09ea5419169544cbf2107cf89d1",
      "parents": [
        "8570676c4ffb407284d51a80c045d6989b7af6d7"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 04 12:31:39 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 04 12:31:39 2005 +0000"
      },
      "message": "2005-11-04 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_{dump,spf,vty}.c: Oops, use the internal tv_sub\n\t  function rather than unportable timersub.\n"
    },
    {
      "commit": "8570676c4ffb407284d51a80c045d6989b7af6d7",
      "tree": "ad8a30ad88ffd7d6da6700256390f385261c1c23",
      "parents": [
        "11967e92542b782ccd8d800938a2845b816539ce"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 04 12:25:23 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Nov 04 12:25:23 2005 +0000"
      },
      "message": "- quagga.pam: pam_stack.so module is deprecated, use \u0027include\u0027 instead.\n- quagga.pam.stack: the old pam_stack way, kept to allow spec file to\n  backwards compatible (changes to spec file pending local testing)\n"
    },
    {
      "commit": "11967e92542b782ccd8d800938a2845b816539ce",
      "tree": "df1a502387cc0fd519f4614608e635b89a5f9038",
      "parents": [
        "a49ad236da5cff707bdb54e14e7852d63ee3c9ea"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 03 13:09:10 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 03 13:09:10 2005 +0000"
      },
      "message": "- bah, fix likkle typo.\n"
    },
    {
      "commit": "a49ad236da5cff707bdb54e14e7852d63ee3c9ea",
      "tree": "7012778d844e3e0fcea3b04e6ed7daff8817ea69",
      "parents": [
        "412008568bddbc9475eafba224d1a1703d6cca97"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 03 13:00:54 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 03 13:00:54 2005 +0000"
      },
      "message": "2005-11-03 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* memtypes.h: Update auto-built file.\n"
    },
    {
      "commit": "412008568bddbc9475eafba224d1a1703d6cca97",
      "tree": "8f9fc89b99f657af060904ae353ba07b9375321f",
      "parents": [
        "0752ef0b2e9bbf6c7ab20ed0fe87840b3bd1b7f4"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 03 12:52:18 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Nov 03 12:52:18 2005 +0000"
      },
      "message": "2005-11-03 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_damp.c: (bgp_reuse_timer) struct bgp can be retrieved via\n\t  the struct bgp_damp_info, no need to guess by using\n\t  bgp_get_default().\n"
    }
  ],
  "next": "0752ef0b2e9bbf6c7ab20ed0fe87840b3bd1b7f4"
}
