)]}'
{
  "log": [
    {
      "commit": "630c97ce0f87a719f678a24bd84945d4f145fdc5",
      "tree": "1b87b2247617af51556f24a45b6735674d7f948d",
      "parents": [
        "c024fd0c76bc305cd6b6bab0989226bd9ec5e763"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 12:48:17 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 12:48:17 2006 +0000"
      },
      "message": "[zebra] remove internal if_flag_dump, use libzebras version.\n\n2006-06-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* lib/if.c: (if_flag_dump) remove the whitespace indentation, callers\n\t  should provide.\n\t* zebra/interface.c: (if_flag_dump_vty) redundant code, remove.\n\t  (if_dump_vty) use libzebra if_flag_dump.\n"
    },
    {
      "commit": "c024fd0c76bc305cd6b6bab0989226bd9ec5e763",
      "tree": "fabd937784fd330d046244a8febb418ca8663b5c",
      "parents": [
        "8ce5cfd13eb7f8474b3129a57c160273889c2573"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 12:43:09 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 12:43:09 2006 +0000"
      },
      "message": "[lib] list_delete shouldn\u0027t duplicate list_delete_all_node\n\n2006-06-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* linklist.c: (list_delete) call list_delete_all_node, don\u0027t\n\t  duplicate it.\n"
    },
    {
      "commit": "8ce5cfd13eb7f8474b3129a57c160273889c2573",
      "tree": "314dba4d94fe3a47fe188a700adbb73fee0ab4d8",
      "parents": [
        "e5cd706c1a4b8138e9b78933e03460f0b032c77e"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 12:41:02 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 12:41:02 2006 +0000"
      },
      "message": "[lib] Experimental: have XFREE NULL out the freed pointer\n\n2006-06-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* memory.h: Experimental, have XFREE macro NULL out the freed\n\t  pointer.\n"
    },
    {
      "commit": "e5cd706c1a4b8138e9b78933e03460f0b032c77e",
      "tree": "4233e178ed021ff69f035f0ed1c1a989a4bbf9e9",
      "parents": [
        "ac904dec03ce6b1bbd1bab1718085a366d485bd8"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 12:25:55 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 12:25:55 2006 +0000"
      },
      "message": "[lib] Fix vector leak in error path in command.c, CID #38\n\n2006-06-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* command.c: (cmd_describe_command_real) Fix leak, CID #38.\n"
    },
    {
      "commit": "ac904dec03ce6b1bbd1bab1718085a366d485bd8",
      "tree": "ffc6d51c14446bac13a7d3a945449bf1c2d8561f",
      "parents": [
        "88871b1d1ea8150ddf3d8f66fe77323770ba0f9f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 12:04:57 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 12:04:57 2006 +0000"
      },
      "message": "[ospfd] lsdb_delete/discard_from_db should be more robust to bad args\n\n2006-05-31 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsdb.c: (ospf_lsdb_delete) robustify against NULL arguments,\n\t  print warning.\n\t* ospf_lsa.c: (ospf_discard_from_db) ditto.\n\t  (ospf_maxage_lsa_remover) Check lsa-\u003elsdb for validity, possible\n\t  mitigation (but not solution) for bug #269.\n"
    },
    {
      "commit": "88871b1d1ea8150ddf3d8f66fe77323770ba0f9f",
      "tree": "8f25f719d120d12a9f333000064ca356563b4387",
      "parents": [
        "1602a71d7a64395254e175c5c417fa593647b995"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 11:41:19 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Jun 15 11:41:19 2006 +0000"
      },
      "message": "[ospfd] suppres mostly uninteresting debug message unless debug is set\n\n2006-05-30 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_packet.c: (ospf_read) Debug message about packets\n\t  received on unenabled interfaces should be conditional on\n\t  debug being set.\n"
    },
    {
      "commit": "1602a71d7a64395254e175c5c417fa593647b995",
      "tree": "75b7b7bbf9a0c9e83b3e6786ae48cb80dd163c09",
      "parents": [
        "f783c1d7bcf0674920cbae066de954fe926fd3ac"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 08:32:44 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 08:32:44 2006 +0000"
      },
      "message": "[tests] Fix stray character in previous commit\n"
    },
    {
      "commit": "f783c1d7bcf0674920cbae066de954fe926fd3ac",
      "tree": "03c87b6ede5786f2e456b7a75c1c8ee86f80e626",
      "parents": [
        "fb66b29c6701129f0222275eaa206f7ac8ab30cc"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 08:31:17 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 08:31:17 2006 +0000"
      },
      "message": "[tests] test-sig.c: configure logging\n\n2006-05-28 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* test-sig.c: (main) configure logging, there\u0027s no terminal\n\t  to write to for one thing, but we do want stdout, and we\n\t  don\u0027t want a test to spam syslog.\n"
    },
    {
      "commit": "fb66b29c6701129f0222275eaa206f7ac8ab30cc",
      "tree": "b9a3d53d867ead2e9f8dbb8c1add9c2eb63b1943",
      "parents": [
        "a4b303038363185f60dfef7023cb02715a9a4315"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 08:26:15 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 08:26:15 2006 +0000"
      },
      "message": "[lib] Add support for Sun libc printstack to zlog_backtrace_sigsafe\n\n2006-05-28 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac:\n\t  Check for Sun libc printstack(), add a general HAVE_STACK_TRACE\n\t  define for lib/log.c, if any supported stack symbol dumping\n\t  function is found (glibc backtrace/sun libc printstack).\n\t* log.c: (general) Add support for Sun libc printstack().\n\t  (hex_append) make the cpp conditional on general HAVE_STACK_TRACE\n\t  define.\n\t  (zlog_backtrace_sigsafe) Ditto. Add printstack() version of the\n\t  the DUMP macro in this function.\n"
    },
    {
      "commit": "a4b303038363185f60dfef7023cb02715a9a4315",
      "tree": "1eea12d93c580da94af435666428a7a02e67da8e",
      "parents": [
        "d09552d0c7d389f83c3833bf82f7a97da37007da"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 08:18:38 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 08:18:38 2006 +0000"
      },
      "message": "[lib] vty_log shouldn\u0027t crash if called when vty isn\u0027t initiliased\n\n2006-05-28 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* vty.c: (vty_log/vty_log_fixed) dont crash if called when vty\n\t  hasn\u0027t been initiliased.\n"
    },
    {
      "commit": "d09552d0c7d389f83c3833bf82f7a97da37007da",
      "tree": "0e6d58e813515d408b5f04099f0b5f7e12e2aedd",
      "parents": [
        "35cfc90cce32b19c71d2f40aab06d36eb6bfdc44"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 08:15:46 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 08:15:46 2006 +0000"
      },
      "message": "[lib] malloc.h is deprecated, try not to include it anymore\n\n2006-05-28 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* memory.c: malloc.h is deprecated in favour of stdlib.h, however\n\t  we still need it on GNU Libc for mallinfo().\n"
    },
    {
      "commit": "35cfc90cce32b19c71d2f40aab06d36eb6bfdc44",
      "tree": "91b9e00379fb444b98f62f04632809996d2a8186",
      "parents": [
        "105b8239f1d98156c82900d636391f94b787e541"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 08:08:24 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 08:08:24 2006 +0000"
      },
      "message": "[lib] include inttypes.h rather than stdint.h, provide defines where missing\n\n2006-05-28 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* zebra.h: Include inttypes.h rather than stdint.h, best practice\n\t  according to the autoconf manual.\n\t  Add UINT*_MAX defines for older platforms lacking these (FBSD 4)\n"
    },
    {
      "commit": "105b8239f1d98156c82900d636391f94b787e541",
      "tree": "9427d5f14b648faaf60503413a7a2446f82713bf",
      "parents": [
        "362b4031faf591afb06b3859952ac5b83723a986"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 08:02:41 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 08:02:41 2006 +0000"
      },
      "message": "[build] Update SOS CFLAGS and add check for GNU Make in configure.ac\n\n2006-05-28 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* configure.ac: Update SOS CFLAGS, Xt shouldn\u0027t be used and\n\t  enable debug options.\n\t  Add a check for GNU Make and warn the user if it does not appear\n\t  to be the make used.\n"
    },
    {
      "commit": "362b4031faf591afb06b3859952ac5b83723a986",
      "tree": "92a3002497bddd419333a8a21477140e7840a25d",
      "parents": [
        "369688c0c7a325e889e841afc2d59430baf079a2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 07:54:45 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun May 28 07:54:45 2006 +0000"
      },
      "message": "[vtysh] Add \"show memory\" to vtysh\n\n2006-05-24 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* vtysh.c: (general) Add \u0027show memory\u0027 command.\n"
    },
    {
      "commit": "369688c0c7a325e889e841afc2d59430baf079a2",
      "tree": "55c5e916f607609fc0e242ca874ff14758cc5f44",
      "parents": [
        "825cd49ead7a9222f93b37f65030f5ff325cd4ab"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue May 23 22:27:55 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue May 23 22:27:55 2006 +0000"
      },
      "message": "[bgpd] expand vty help for neighbor ... update-source\n\n2006-05-23 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_vty.c: (neighbor_update_source_cmd) Expand tab completion\n\t  to make it clear it takes both address and ifname.\n"
    },
    {
      "commit": "825cd49ead7a9222f93b37f65030f5ff325cd4ab",
      "tree": "3af7ef993c19a0fb178aefab60a30cf3f88611f9",
      "parents": [
        "4150f33ec17792c4258cb64de6128928ac104bf2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue May 23 22:20:34 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue May 23 22:20:34 2006 +0000"
      },
      "message": "[doc] document neighbor ..... update-source\n\n2006-05-23 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgpd.texi: Document the update-source command.\n"
    },
    {
      "commit": "4150f33ec17792c4258cb64de6128928ac104bf2",
      "tree": "164242e7896ffbd52205cce989afff56058b4e3e",
      "parents": [
        "dbf7d13d06a9ab01e39afa1545b30808d5653341"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue May 23 22:10:55 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue May 23 22:10:55 2006 +0000"
      },
      "message": "[vtysh] suppress output in \u0027show logging\u0027 for daemons not present\n\n2006-05-21 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* vtysh.c: (vtysh_show_logging_cmd) Suppress output for daemons\n\t  which are not running (Andrew Schorr).\n"
    },
    {
      "commit": "dbf7d13d06a9ab01e39afa1545b30808d5653341",
      "tree": "818fe7c02db9b0ebfe6ec07b00b8239bd703910e",
      "parents": [
        "9c37851eac4e75cda515761cae7c63309add30ea"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue May 23 22:10:01 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue May 23 22:10:01 2006 +0000"
      },
      "message": "[vtysh] Add \u0027show logging\u0027 command\n\n2006-05-17 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* vtysh.c: (general) Add \u0027show logging\u0027 command.\n"
    },
    {
      "commit": "9c37851eac4e75cda515761cae7c63309add30ea",
      "tree": "3fcf98573c83f117f1e0219fcab8e160af70e56a",
      "parents": [
        "0f38dc4d4729b562551f8f53e7343f5a53b2dbf5"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sun May 21 04:04:49 2006 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Sun May 21 04:04:49 2006 +0000"
      },
      "message": "[interface configuration] Try to avoid losing address info after shutdown.\n2006-05-21 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* if.h: (struct connected) Document the meaning of the\n\t  ZEBRA_IFC_REAL and ZEBRA_IFC_CONFIGURED flags.\n\t* connected.c: (connected_withdraw) Do not delete the connected\n\t  address if the ZEBRA_IFC_CONFIGURED flag is set.\n\t  (connected_add_ipv4,connected_add_ipv6) Before calling\n\t  connected_withdraw, unset the ZEBRA_IFC_CONFIGURED flag\n\t  on the superseded connected structure.\n"
    },
    {
      "commit": "0f38dc4d4729b562551f8f53e7343f5a53b2dbf5",
      "tree": "e6d4f73e30c3d6e0859f3bc4e4867fb2323284bf",
      "parents": [
        "55196042ac8def6f0057039017eb6a400d7f73fb"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri May 19 13:53:23 2006 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Fri May 19 13:53:23 2006 +0000"
      },
      "message": "[interface configuration] Preserve flag indicating address was set by quagga.\n2006-05-19 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* connected.c: (connected_add_ipv4,connected_add_ipv6) If the\n\t  new struct connected matches an already existing one\n\t  (that will consequently be removed by connected_withdraw),\n\t  then be sure to preserve the ZEBRA_IFC_CONFIGURED flag.\n"
    },
    {
      "commit": "55196042ac8def6f0057039017eb6a400d7f73fb",
      "tree": "1953ee9c087c73040591d4e7b5290abdf08fcabf",
      "parents": [
        "6685978081f24f154f058bff48d54396c91271e1"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed May 17 15:04:59 2006 +0000"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "ajschorr@alumni.princeton.edu",
        "time": "Wed May 17 15:04:59 2006 +0000"
      },
      "message": "[debug] Improve zebra kernel socket debug message to include IP addresses.\n2006-05-17 Andrew J. Schorr \u003cajschorr@alumni.princeton.edu\u003e\n\n\t* kernel_socket.c: (ifam_read_mesg) Improve debug message\n\t  to show the IP address.\n"
    },
    {
      "commit": "6685978081f24f154f058bff48d54396c91271e1",
      "tree": "7dcb1c84984902c941a72274a6bfb758a96db4de",
      "parents": [
        "d6d672aaf930661f502a623d18d7a4abb4f184f2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 17:00:37 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 17:00:37 2006 +0000"
      },
      "message": "[zebra] Remove private command string table\n\n2006-05-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* zserv.c: (general) Remove the private zebra_command_str\n\t  in favour of newly added libzebra zserv_command_string.\n"
    },
    {
      "commit": "d6d672aaf930661f502a623d18d7a4abb4f184f2",
      "tree": "fc85e80d1a268dfc420ab5f4f6a306b8e246fc46",
      "parents": [
        "d16e04335968ea05fda60cec01b48df8c345a8ce"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 16:56:51 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 16:56:51 2006 +0000"
      },
      "message": "[lib] Add string mapping table for Zserv commands\n\n2006-05-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* log.c: (general) Generalise struct zebra_route_desc into\n\t  struct zebra_desc_table and, similar to route_types, add a\n\t  command_types table to describe Zserv protocol commands.\n\t  (route_types[]) use a macro to use designated initialisers\n\t  while avoiding tedious duplication.\n\t  (zserv_command_string) lookup string from zebra_desc_table,\n\t  similar to zebra_route_string\n\t* zebra.h: Add declaration for zserv_command_string, adjust the\n\t  comments to reflect zebra_desc_table.\n"
    },
    {
      "commit": "d16e04335968ea05fda60cec01b48df8c345a8ce",
      "tree": "9ae64651811fa1dfbaba9dc4d114c0a72ace2a55",
      "parents": [
        "0b26f81bf9e81be0f65787c48061709427c70d10"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:56:46 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:56:46 2006 +0000"
      },
      "message": "[lib] CID #39, Fix the vty completion leak-fix to only free when desired\n\n2006-05-13 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* vty.c: (vty_describe_command) CID #39 fix was too hasty, just\n\t  cause it /can/ leak doesn\u0027t mean it always will have, check\n\t  first.\n"
    },
    {
      "commit": "0b26f81bf9e81be0f65787c48061709427c70d10",
      "tree": "e10561c1d301e78de8561f26123687def19c0a46",
      "parents": [
        "cf1ce250d20003ae94c835e73e95e7442d7a5b53"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:47:53 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:47:53 2006 +0000"
      },
      "message": "[ospf6d] GNU Zebra 3563: Fix as-external forwarding address\n\n2006-03-01  Yasuhiro Ohara  \u003cyasu@sfc.wide.ad.jp\u003e\n\n\t* ospf6_asbr.c: fix bug of needless forwarding address\n\t* ospf6d.h: version 0.9.7r\n"
    },
    {
      "commit": "cf1ce250d20003ae94c835e73e95e7442d7a5b53",
      "tree": "713c0ed34cf2def64257b6906ebd861766a9882c",
      "parents": [
        "932bf1976ae4c84a43b92b2ba8ca798828896249"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:46:07 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:46:07 2006 +0000"
      },
      "message": "[ospf6d] GNU Zebra #3562: ABR Crash fix, memory fixes, route table debugs\n\n2006-02-22  Yasuhiro Ohara  \u003cyasu@sfc.wide.ad.jp\u003e\n\n\t* valgrind check and memory fix\n\t* route table identification string added\n\t* ospf6d.h: version 0.9.7q\n"
    },
    {
      "commit": "932bf1976ae4c84a43b92b2ba8ca798828896249",
      "tree": "32e5b84eeb13e555d991d79cc2f32c154b0d920e",
      "parents": [
        "cb4b88452e04a0102fedff4f01a2246f5e70dea9"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:42:24 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:42:24 2006 +0000"
      },
      "message": "[ospf6d] GNU Zebra 3560: Call ospf6_maxage_remove when out of Exchange/Loading\n\n2005-10-20  Yasuhiro Ohara  \u003cyasu@sfc.wide.ad.jp\u003e\n\n\t* ospf6_neighbor.c: add the calling of ospf6_maxage_remove ()\n\twhen the neighbor went out of Exchange/Loading.\n"
    },
    {
      "commit": "cb4b88452e04a0102fedff4f01a2246f5e70dea9",
      "tree": "02af223018f79db39a091a985b7605539cb180a5",
      "parents": [
        "b2518c1e884cb8b4f4502f8b90b1c368e1a352ec"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:39:30 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon May 15 10:39:30 2006 +0000"
      },
      "message": "[ospf6d] Import GNU Zebra CVSps#3559: Fix inter-area as-ext bug, cleanup debug\n\n2005-10-06  Yasuhiro Ohara  \u003cyasu@sfc.wide.ad.jp\u003e\n\n\t* ospf6_asbr.c: fix bug of calculating AS-External routes\n\t  in other areas. Add debugging function for border-router\n\t  calculation.\n\t* ospf6d.h: version 0.9.7p\n"
    },
    {
      "commit": "b2518c1e884cb8b4f4502f8b90b1c368e1a352ec",
      "tree": "7099a9dd8bf20d560ed9565b8ecc9eaaf50bd203",
      "parents": [
        "06e110f9372f61bea23c2eaa25e7850b254bbd1a"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:48:40 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:48:40 2006 +0000"
      },
      "message": "[bgpd] CID #4,#5,#9,#10, simplify aspath_print_vty usage\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_aspath.{c,h}: (aspath_print_vty) take a format string,\n\t  so as to reduce burden on callers, all in bgp_route.c\n\t* bgp_route.c: (route_vty_out{,tmp}) Update to match\n\t  aspath_print_vty, simplifying checks needed to get spacing\n\t  right. CID #4,#5.\n\t  ({damp,flap}_route_vty_out) Ditto, CID #9, #10\n"
    },
    {
      "commit": "06e110f9372f61bea23c2eaa25e7850b254bbd1a",
      "tree": "a705c52302d9044f6ae7121ec7eadb62a072d5fe",
      "parents": [
        "dd8103a917c356abfdd166879186df2e5d1ca95a"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:29:22 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:29:22 2006 +0000"
      },
      "message": "[bgpd] CID #6, remove useless NULL check, bgp_static_update_rsclient\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_route.c: (bgp_static_update_rsclient) Remove useless NULL\n\t  check, code already assumes bgp_static can not be NULL,\n\t  fixes CID #6.\n"
    },
    {
      "commit": "dd8103a917c356abfdd166879186df2e5d1ca95a",
      "tree": "03319c6b4338b847ad244c3e88dbddb7e6c12f16",
      "parents": [
        "34c3f81b542c7f91fa04a43f7d0a8a4482f22d4d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:27:30 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:27:30 2006 +0000"
      },
      "message": "[bgpd] CID #7, remove useless NULL check, bgp_static_update_main\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_route.c: (bgp_static_update_main) Remove useless NULL\n\t  check, code already assumes bgp_static can not be NULL,\n\t  fixes CID #7.\n"
    },
    {
      "commit": "34c3f81b542c7f91fa04a43f7d0a8a4482f22d4d",
      "tree": "58f05fdafbc1c2036b9ccdf9de01d77f503e510e",
      "parents": [
        "5fc60519ede0d34688832e353c35bf1832a4330d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:25:37 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:25:37 2006 +0000"
      },
      "message": "[bgpd] Remove dead code in ORIGINATOR_ID packet forming code\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_attr.c: (bgp_packet_attribute) Remove dead code, Coverity\n\t  CID #1\n"
    },
    {
      "commit": "5fc60519ede0d34688832e353c35bf1832a4330d",
      "tree": "e934b6a2730d3dfdc877f097b7c896ec9a97fcf4",
      "parents": [
        "2fe8aba3a09b3e2a64ee1861d8eeb389efaf1eb0"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:24:09 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:24:09 2006 +0000"
      },
      "message": "[lib] CID #55, fix return of freed pointer, cmd_describe_command_real\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* command.c: (cmd_describe_command_real) Fix return of freed\n\t  pointer when no-match, CID #55.\n"
    },
    {
      "commit": "2fe8aba3a09b3e2a64ee1861d8eeb389efaf1eb0",
      "tree": "f2c18e4f6c17430fccf12efdc76a9e9e6041e2ef",
      "parents": [
        "d2519962b71b512eb5fd55a378f8ef748d17c30f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:22:01 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:22:01 2006 +0000"
      },
      "message": "[lib] CID #39, fix leak in error path, vty_describe_command\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* vty.c: (vty_describe_command) fix leak of describe vector in\n\t  error path, CID #39.\n"
    },
    {
      "commit": "d2519962b71b512eb5fd55a378f8ef748d17c30f",
      "tree": "fae01ade69fc4e516f76d045939437482983021a",
      "parents": [
        "9376c3421ae9ccc37e51ed742c5d0bed333f8d20"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:19:37 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:19:37 2006 +0000"
      },
      "message": "[lib] CID #37, fix error case leak, cmd_complete_command_real\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* command.c: (cmd_complete_command_real) Fix leak of cmd_vector\n\t  in error case, Coverity CID #37.\n"
    },
    {
      "commit": "9376c3421ae9ccc37e51ed742c5d0bed333f8d20",
      "tree": "fdcaf6f4a896a0ba80b0b4fc83325e55f65897e2",
      "parents": [
        "ae128056e9bb1b52e3b6c3263f5f7fd83efa5c3a"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:17:38 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:17:38 2006 +0000"
      },
      "message": "[lib] CID #3, fix forward-null errors in vty_prefix_list_uninstall\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* plist.c: (vty_prefix_list_uninstall) Fix potential NULL deref\n\t  of prefix and typestr strings, Coverity CID #3.\n"
    },
    {
      "commit": "ae128056e9bb1b52e3b6c3263f5f7fd83efa5c3a",
      "tree": "1825628cbfa71ec05ebb8a8162e20a08092922c8",
      "parents": [
        "e54e6e57205df19efe3023526b7eb53a9d06fa93"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:15:30 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:15:30 2006 +0000"
      },
      "message": "[ospfd] Fix small error in CID #13 commit\n\n2006-05-13 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (ospf_translated_nssa_refresh) fix the sanity\n\t  check to match the assert, small error in CID #13 fix.\n"
    },
    {
      "commit": "e54e6e57205df19efe3023526b7eb53a9d06fa93",
      "tree": "dbe366409aef4f115a1c84998e52d97e9943223c",
      "parents": [
        "deb1561c1824d0a5215c8fcd0084393090a6567e"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:11:14 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:11:14 2006 +0000"
      },
      "message": "[ospfd] CID #13, debug for NULL type7 LSA should not print out data from it\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (ospf_translated_nssa_refresh) Add non-assert\n\t  sanity check, in case DEBUG isn\u0027t defined.  Debug message\n\t  when no type7 exists should print the ID from the type5, not\n\t  the type7, fixes CID #13.\n"
    },
    {
      "commit": "deb1561c1824d0a5215c8fcd0084393090a6567e",
      "tree": "5c5cd51abefa9c9bd648d041ace9c6836a2f2980",
      "parents": [
        "bfd7c7dc067f5a181a992fa0b8af31cfe5cdc9eb"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:07:27 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:07:27 2006 +0000"
      },
      "message": "[ospfd] CID #15, remove redundant NULL check in ism_change_state\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_ism.c: (ism_change_state) NULL check on oi-\u003earea is\n\t  useless, it\u0027s always valid. Only possibility where it\n \t  couldn\u0027t be is if there is a race between abr_task and\n\t  cleaning up oi\u0027s, in which case a NULL check here isn\u0027t going\n\t  to do anything. Fixes CID #15.\n"
    },
    {
      "commit": "bfd7c7dc067f5a181a992fa0b8af31cfe5cdc9eb",
      "tree": "82e34cbd32436bf38dca01d5d41825669f914760",
      "parents": [
        "6db3a6f75c7206050b096dcbd4fde439b4bcb6e6"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:04:45 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:04:45 2006 +0000"
      },
      "message": "[ospfd] CID #14, NULL check ospf-\u003ebackbone before use, ospf_update_router_route\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_ia.c: (ospf_update_router_route) ospf-\u003ebackbone could be\n\t  NULL when passed to ospf_find_asbr_route_through_area,\n\t  check for NULL first, CID #14.\n"
    },
    {
      "commit": "6db3a6f75c7206050b096dcbd4fde439b4bcb6e6",
      "tree": "8c4bb9a65e3b59f886d65046c3c8e3d29a2c63b4",
      "parents": [
        "e43be0edb7b5d87a3afe3a26aa071251018b10f1"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:02:46 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:02:46 2006 +0000"
      },
      "message": "[ospfd] CID #28, remove another ospf_lookup call - ospf_redistribute_withdraw\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_asbr.c: (ospf_redistribute_withdraw) remove ospf_lookup\n\t  call by taking the struct ospf * as argument, which the\n\t  caller has, fixing CID #28.\n\t* ospf_asbr.h: (ospf_redistribute_withdraw) update declaration\n\t* ospf_zebra.c: (ospf_redistribute_unset) update call to\n\t  ospf_redistribute_withdraw to match.\n"
    },
    {
      "commit": "e43be0edb7b5d87a3afe3a26aa071251018b10f1",
      "tree": "698303cfe81fec852728eb9c8aaa6ab377124bd9",
      "parents": [
        "70461d793444002cc2ce99e4e62df3c367d9dd50"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:00:06 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 23:00:06 2006 +0000"
      },
      "message": "[ospfd] CID #27, fix missing NULL return check\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_interface.c: (ospf_if_exists) Fix missing NULL return\n\t  check on ospf_lookup, CID #27.\n"
    },
    {
      "commit": "70461d793444002cc2ce99e4e62df3c367d9dd50",
      "tree": "aa248149e799cc39d5f2d4ea9193522e64cb6ce4",
      "parents": [
        "4021b60aad57f71f5d3d5c105127f93bd77bf800"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 22:57:57 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 22:57:57 2006 +0000"
      },
      "message": "[ospfd] CID #29, fix missing NULL check by removing unused code.\n\n2006-05-12 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (ospf_lsa_action) Get rid of the ospf_lookup\n\t  call, which is not checked for NULL return, by stripping out\n\t  functionality which is never used, hence fixing Coverity CID\n\t  #29.\n\t  (struct lsa_action) remove unused member.\n"
    },
    {
      "commit": "4021b60aad57f71f5d3d5c105127f93bd77bf800",
      "tree": "810783e34d8cb8e573fd4773ab6d7b955c84a4f2",
      "parents": [
        "214a4454376e8c96990e4c2ee6edea891c1f3166"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 22:55:41 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 22:55:41 2006 +0000"
      },
      "message": "[ospfd] Squash another ospf_lookup call\n\n2006-05-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_lsa.c: (ospf_default_originate_timer) Let the thread\n\t  take (struct ospf *) as thread argument, rather than (struct\n\t  ospf *)-\u003edefault_originate, thus avoiding having to call\n\t  ospf_lookup.\n\t* ospf_zebra.c: (ospf_redistribute_default_set) change setup\n\t  of ospf_default_originate_timer thread to match.\n\t* ospfd.c: (ospf_router_id_update) ditto.\n"
    },
    {
      "commit": "214a4454376e8c96990e4c2ee6edea891c1f3166",
      "tree": "b3dad9e4643c4959247ef8106929fb1ede2ea6e3",
      "parents": [
        "894f8b6602f786db42da58c48b1338df5fa98732"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 22:51:49 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 12 22:51:49 2006 +0000"
      },
      "message": "[ospfd] Fix leak in area-range-cost command, CID #46.\n\n2006-05-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* ospf_abr.c: (ospf_area_range_cost_set) Shouldn\u0027t create a new\n\t  range, should just lookup to see if one exists, the new range\n\t  is just leaked. Fixes CID #46.\n"
    },
    {
      "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"
    }
  ],
  "next": "aa94ca86ba0323d61fc3bc9b881718567ee943b3"
}
