)]}'
{
  "log": [
    {
      "commit": "ed6ef902df72cc8267e274ed515a47af52c9fed7",
      "tree": "0416ad08fe181227b10f6e1c0e331b7a01a205db",
      "parents": [
        "8bc9805929d4b3af2e77ef04db278884d82d71fd"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Aug 08 14:13:03 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Aug 08 14:13:03 2007 +0000"
      },
      "message": "[tests] Add bgp_capability_test.c, should have been part of earlier commit\n"
    },
    {
      "commit": "6d58272b4cf96f0daa846210dd2104877900f921",
      "tree": "a97f2c9c797bd96b298aa64f03ed69115d63e78b",
      "parents": [
        "dfdb8f18c008e7ad306588c86b12fbef337427ca"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 15:21:45 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Aug 06 15:21:45 2007 +0000"
      },
      "message": "[bgpd] cleanup, compact and consolidate capability parsing code\n\n2007-07-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) Clean up and compact capability parsing slightly.\n\t  Consolidate validation of length and logging of generic TLV, and\n\t  memcpy of capability data, thus removing such from cap specifc\n\t  code (not always present or correct).\n\t* bgp_open.h: Add structures for the generic capability TLV header\n\t  and for the data formats of the various specific capabilities we\n\t  support.  Hence remove the badly named, or else misdefined, struct\n\t  capability.\n\t* bgp_open.c: (bgp_capability_vty_out) Use struct capability_mp_data.\n\t  Do the length checks *before* memcpy()\u0027ing based on that length\n\t  (stored capability - should have been validated anyway on input,\n\t  but..).\n\t  (bgp_afi_safi_valid_indices) new function to validate (afi,safi)\n\t  which is about to be used as index into arrays, consolidates\n\t  several instances of same, at least one of which appeared to be\n\t  incomplete..\n\t  (bgp_capability_mp) Much condensed.\n\t  (bgp_capability_orf_entry) New, process one ORF entry\n\t  (bgp_capability_orf) Condensed. Fixed to process all ORF entries.\n\t  (bgp_capability_restart) Condensed, and fixed to use a\n\t  cap-specific type, rather than abusing capability_mp.\n\t  (struct message capcode_str) added to aid generic logging.\n\t  (size_t cap_minsizes[]) added to aid generic validation of\n\t  capability length field.\n\t  (bgp_capability_parse) Generic logging and validation of TLV\n\t  consolidated here. Code compacted as much as possible.\n\t* bgp_packet.c: (bgp_open_receive) Capability parsers now use\n\t  streams, so no more need here to manually fudge the input stream\n\t  getp.\n\t  (bgp_capability_msg_parse) use struct capability_mp_data. Validate\n\t  lengths /before/ memcpy. Use bgp_afi_safi_valid_indices.\n\t  (bgp_capability_receive) Exported for use by test harness.\n\t* bgp_vty.c: (bgp_show_summary) fix conversion warning\n\t  (bgp_show_peer) ditto\n\t* bgp_debug.h: Fix storage \u0027extern\u0027 after type \u0027const\u0027.\n        * lib/log.c: (mes_lookup) warning about code not being in\n          same-number array slot should be debug, not warning. E.g. BGP\n          has several discontigious number spaces, allocating from\n          different parts of a space is not uncommon (e.g. IANA\n          assigned versus vendor-assigned code points in some number\n          space).\n"
    },
    {
      "commit": "3414bf250a385496fa6c11dbaa9a5f79100d7a48",
      "tree": "d020e1f392ea753060be9ddc2a0da525d4a00ddf",
      "parents": [
        "2518efd15b75687d4791a5eb4b0d7febc36cffbc"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Aug 27 06:53:24 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Aug 27 06:53:24 2006 +0000"
      },
      "message": "[tests] update heavywq for workqueue api changes\n\n2006-08-26 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* heavy-wq.c: (slow_func_del,slow_func) update to match workqueue\n\t  changes\n"
    },
    {
      "commit": "1f742f21a98f756cea03856849fa2f82f467baf7",
      "tree": "fe295616ed2036e691cf85f7fd73083ad4ddc2fd",
      "parents": [
        "36943749147bef10df8ffc0e2ad79f4dd06cd9ac"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Aug 06 15:52:11 2006 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Aug 06 15:52:11 2006 +0000"
      },
      "message": "[bgpd] aspath_loop_check was broken, fix it and the aspath unit test code.\n\n2006-08-06 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* bgp_aspath.c: (aspath_loop_check) Fix the typo-bug which\n\t  essentially had disabled this check. Problem reported by\n\t  Bartek Kania \u003cmrbk@gnarf.org\u003e in [quagga-users 7388].\n\t* aspath_test.c: (validate) Fix the sense of the aspath_loop_check,\n\t  which was the wrong way around and had actually been testing for\n\t  aspath_loop_check to be buggy.\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": "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": "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": "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": "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": "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": "84771ee0deadae6d83b939a2d3f8f83cc420a829",
      "tree": "68b3e5c5cc6e84dd7d57a4bda2e61616d518a1a2",
      "parents": [
        "77df1f78597af79209777d264ec9986f33a2fd17"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Oct 11 03:48:28 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Oct 11 03:48:28 2005 +0000"
      },
      "message": "2005-10-11 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* test-privs.c: Privileges unit test.\n\t* Makefile.am: build testprivs\n\t* aspath_test.c: fix a few sign warnings\n"
    },
    {
      "commit": "1f377b0202dfc4653f7717de964b628a369a9526",
      "tree": "ff8718a3d40adbec8adeab994a32873bbbd4bacf",
      "parents": [
        "fe69a505f7be4357bf8523e3bbdced9c95590f3a"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Sep 10 18:00:11 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sat Sep 10 18:00:11 2005 +0000"
      },
      "message": "2005-09-06 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* aspath_test.c: Test bgp_aspath functionality.\n\t* Makefile.am: build aspathtest\n\t* ChangeLog: Fix date of previous commit\n"
    },
    {
      "commit": "dff4f5272f7c3289b0c7eebe441cf7c223bcb044",
      "tree": "113b16e046e029b52220a4c7bc96eb8102af7612",
      "parents": [
        "6379b96117a50803236fe698e4e27d9849f3a3bc"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Sep 06 23:08:01 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Sep 06 23:08:01 2005 +0000"
      },
      "message": "2004-09-06 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* test-buffer.c: include memory.h\n          (main) call memory_init().\n"
    },
    {
      "commit": "6379b96117a50803236fe698e4e27d9849f3a3bc",
      "tree": "2b01eef69470adb3ea4b10c309b553bf44357403",
      "parents": [
        "eb820afe3b53321624317cfa6b426ecae1392f24"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 05 14:00:09 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Sep 05 14:00:09 2005 +0000"
      },
      "message": "2004-09-05 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* heavy-wq.c: (slow_func_del,slow_func_err) make them take\n\t  void * argument to shut up silly gcc warning.\n"
    },
    {
      "commit": "9f3f7a1145a42942b28bae6b68163d805bb91b56",
      "tree": "439b8f849496aebd1bd5fa72523790fa0bf49c0a",
      "parents": [
        "147aff0fa4c3c1f54270881851b6c2c23418b031"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Apr 25 16:42:24 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Apr 25 16:42:24 2005 +0000"
      },
      "message": "2004-05-25 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* main.c: new file, common \u0027main\u0027 portion which then calls\n\t  test_init.\n\t* heavy.c: remove common portions now in \u0027main.\n\t* heavy-wq.c: ditto\n\t* heavy-thread.c: ditto\n\t* heavy*.c: Set the slow_function iteration number lower, to 300, it\n\t  was several orders of magnitude too \u0027slow\u0027 to be useful. :)\n\t* Makefile.am: main is a source of the tests. heavy should link\n\t  to the math library.\n"
    },
    {
      "commit": "1d2c893b61211761a17bb2e51345a2eaed12cf1f",
      "tree": "e45d47b36df1293c4a0402646f3bb478c2154ec8",
      "parents": [
        "864c364df9eb7d119ce81db834eff6a726e2fa78"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Apr 22 00:54:44 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Apr 22 00:54:44 2005 +0000"
      },
      "message": "2004-05-22 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* Makefile.am: Build heavythread\n"
    },
    {
      "commit": "864c364df9eb7d119ce81db834eff6a726e2fa78",
      "tree": "0e17cf1c611f406aec6af94ae90887104811fb6c",
      "parents": [
        "a48b4e6d074a4e61ce9e8bf78fdb8ea9c57c6e64"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Apr 22 00:50:08 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Fri Apr 22 00:50:08 2005 +0000"
      },
      "message": "2004-05-22 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* heavy-thread.c: Andrew Schorr\u0027s adaptation of heavy.c to use a\n\t  background thread to avoid responsivity problems.\n"
    },
    {
      "commit": "cb0663c41a5c61c6261f6d5607526e56be0ed2d4",
      "tree": "8f99e78deb4c3dc92257deb33ab02b3d6c32cd46",
      "parents": [
        "f4d062f87298d8098436704eb15d079d2cfe7efd"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Apr 21 17:23:48 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Apr 21 17:23:48 2005 +0000"
      },
      "message": "- bah, commit changelog\n"
    },
    {
      "commit": "f4d062f87298d8098436704eb15d079d2cfe7efd",
      "tree": "c6babfbd9f6c260ac32958af193bcce398a10437",
      "parents": [
        "f3ff15541592bab1435775f7b79c1cd267bd57f3"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Apr 21 16:58:44 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Thu Apr 21 16:58:44 2005 +0000"
      },
      "message": "2004-05-21 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* heavy.c: Add a timer thread to demonstrate thread interactivity,\n\t  Add a daemon_exit command to assist with debugging (eg for memory\n\t  tracers, etc..)\n"
    },
    {
      "commit": "43313d05bce956b65711516f7aadf99ee2fed192",
      "tree": "7a9e42a7600b1c4e87a0be7d206b9605847d1b2e",
      "parents": [
        "924b9229717b749e303f3fb161616bebf53b5cdc"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Apr 19 21:28:36 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Apr 19 21:28:36 2005 +0000"
      },
      "message": "2004-05-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* heavy.c: test programme to show how long-running functions\n\t  kill responsiveness. Demonstrating the most niggly problem\n\t  left in bgpd.\n"
    },
    {
      "commit": "662a1f25bb6c142c0ff5ff571095356df49c0557",
      "tree": "3fe999c2731936118ffa9b91f313bc7ff209d762",
      "parents": [
        "4dcadf7efd58e9d91a52c5f06c02cb40bbf21823"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Apr 13 03:32:23 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Apr 13 03:32:23 2005 +0000"
      },
      "message": "- add changelog\n"
    },
    {
      "commit": "4dcadf7efd58e9d91a52c5f06c02cb40bbf21823",
      "tree": "5968d1e9773c79cfe0db364ce91314087cb57f6e",
      "parents": [
        "5d6e26910b6790e7ea759893c16e9f0e380fcc1e"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Apr 13 03:31:35 2005 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Wed Apr 13 03:31:35 2005 +0000"
      },
      "message": "2004-05-13 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* test-buffer.c: Andrew\u0027s buffer tester\n\t* test-memory.c: basic memory tester\n\t* Makefile.am: Add new tests\n"
    },
    {
      "commit": "3c035aa8716efa6f677e43435c5eb9bac6825518",
      "tree": "ea28fd6b6beadd72d3619315dc66ee0d03a3f7d3",
      "parents": [
        "e064d6d9c3c3319c62fe4fac3e4e5f7a1941a98c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Nov 02 18:59:49 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Tue Nov 02 18:59:49 2004 +0000"
      },
      "message": "- Add .arch-ids and .arch-inventory to cvsignore, to allow one to use arch\n  with CVS trees.\n"
    },
    {
      "commit": "41c14a1fc3c97f8cfcb4ef8f8bce12a2d9ad29df",
      "tree": "d9b53eadf8cf0043c1c35bae2f58dd7ba853b858",
      "parents": [
        "1203e1c07c444df615605168c72852389e20340c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jul 26 19:27:51 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jul 26 19:27:51 2004 +0000"
      },
      "message": "2004-07-26 Paul Jakma \u003cpaul@dishone.st\u003e\n\n\t* configure.ac: reenable tests/Makefile\n\t* tests/Makefile.am: automake file for tests dir\n\t* tests/.cvsignore: update\n"
    },
    {
      "commit": "d26ca6a976421b09ee6c4e5ac699075b6f549584",
      "tree": "447ea71cea6be30ec26194069e7d61acd211ba8a",
      "parents": [
        "074a917aeb16061440d932c1f3ffccd7afc475a1"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 06 15:25:35 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Sun Jun 06 15:25:35 2004 +0000"
      },
      "message": "CVS ignore Linux NFS silly-delete .nfs* files\n"
    },
    {
      "commit": "c15cfa832940dbdf49d1c1f03cfbab9078708e1e",
      "tree": "573b23ecef4d14c4c351a28dd7d9fce1b72b67bc",
      "parents": [
        "2d75d05218b76230bbd608cab8d08a5f47d77056"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 19 21:33:17 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 19 21:33:17 2004 +0000"
      },
      "message": "add appropriate cvsignore\n"
    },
    {
      "commit": "9a76e2ddb6c4dc303ce7ed937c0cfa9430c3ed27",
      "tree": "1dff2778c9b6a397213fa4bf4ad2f7dab607396b",
      "parents": [
        "c49b30692d7a2379264dfd2d45c2d2ab16e8822c"
      ],
      "author": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 19 21:25:17 2004 +0000"
      },
      "committer": {
        "name": "paul",
        "email": "paul",
        "time": "Mon Jan 19 21:25:17 2004 +0000"
      },
      "message": "2004-01-19 Paul Jakma \u003cpaul@dishone.st\u003e\n\n        * tests/test-sig.c: New file, regression test for sigevents.\n"
    }
  ]
}
