)]}'
{
  "log": [
    {
      "commit": "ba803bd51cdf3decfc740b3d7287fe51228f78fb",
      "tree": "69396dbcdc22d42df6356265c7998bd92e503e8c",
      "parents": [
        "50aef6f3b0e36b56cfa9f3d374be0c1d25c30c45",
        "3523bea8cbe98c83e3d1bdeb60180c8e59622773"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 23 14:30:52 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 23 14:30:52 2009 +0100"
      },
      "message": "Merge remote branch \u0027origin/master\u0027\n"
    },
    {
      "commit": "3523bea8cbe98c83e3d1bdeb60180c8e59622773",
      "tree": "5e869ae87daaee6e55c0e22f7822a3c0af4bdd14",
      "parents": [
        "774eb1524c3a1e0a9567e6aff3315b4686ab3e75"
      ],
      "author": {
        "name": "Jingjing Duan",
        "email": "jingjing.duan@sun.com",
        "time": "Tue Jun 23 17:28:23 2009 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Tue Jun 23 17:28:23 2009 +0400"
      },
      "message": "[trivia] work around ksh93 builtin name (#451)\n\nksh93 script cannot have \u0027stop\u0027 functions w/o cancelling\nexisting definition first. Fixed.\n"
    },
    {
      "commit": "50aef6f3b0e36b56cfa9f3d374be0c1d25c30c45",
      "tree": "5dce97de6229713c6c209cbb72abc1093fa1be58",
      "parents": [
        "6e79f8bba438823d84b7464a9acc1e6fc9126a27"
      ],
      "author": {
        "name": "Chris Caputo",
        "email": "ccaputo@alt.net",
        "time": "Tue Jun 23 06:06:49 2009 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 23 14:25:20 2009 +0100"
      },
      "message": "Fix \"show ip bgp dampened-paths\" garbage output.\n\n* bgpd/bgp_damp.c: Make bgp_damp_reuse_time_vty() accept a buffer and\n  length, rather than returning a local var buffer whose contents can get\n  trounced.  Remove duplicate BGP_UPTIME_LEN define.\n* bgpd/bgp_damp.h: bgp_damp_reuse_time_vty() prototype change.\n* bgpd/bgp_route.c: Provide bgp_damp_reuse_time_vty() with a buffer and\n  length.  Remove duplicate BGP_UPTIME_LEN define.\n\nThis problem was noticed in 2005...\n\n  http://hibernia.jakma.org/~paul/patches/quagga-test.diff\n\n...but the fix didn\u0027t make it into the code.\n\nSigned-off-by: Chris Caputo \u003cccaputo@alt.net\u003e\n"
    },
    {
      "commit": "6e79f8bba438823d84b7464a9acc1e6fc9126a27",
      "tree": "5f9e004a78b0fddc59baf4e2666728837328fb52",
      "parents": [
        "2b35ae41c2c5d39801c943fa740c72fc15613141"
      ],
      "author": {
        "name": "Chris Caputo",
        "email": "ccaputo@alt.net",
        "time": "Tue Jun 23 05:55:57 2009 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 23 14:23:26 2009 +0100"
      },
      "message": "Fix vtysh based \"write term\" output.\n\n* vtysh/vtysh.c: \"end\" should be printed at the bottom, not the top.\n* vtysh/vtysh_config.c: PROTOCOL_NODE was not being handled, and thus was\n  being displayed at the top of a config, rather than in its rightful\n  place near the bottom.\n\nSigned-off-by: Chris Caputo \u003cccaputo@alt.net\u003e\n"
    },
    {
      "commit": "2b35ae41c2c5d39801c943fa740c72fc15613141",
      "tree": "b72600ce7970f5a62a344fd7fed3f5e53779b7a2",
      "parents": [
        "b60668d092f1778395b6c10b406059b8cbf235b8"
      ],
      "author": {
        "name": "Chris Caputo",
        "email": "ccaputo@alt.net",
        "time": "Tue Jun 23 05:34:29 2009 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 23 14:21:40 2009 +0100"
      },
      "message": "Fixes to RFC2385/MD5 BGP\n\n* bgpd/bgp_network.c: Fix MD5 listen in IPv4 version of bgp_socket() by\n  adding listen socket to listen_sockets list so that MD5 passwords can\n  get set.\n* lib/sockopt.c: (sockopt_tcp_signature) Fix bogus \"% Error while applying\n  TCP-Sig to session(s)\" / \"can\u0027t set TCP_MD5SIG option\" startup error\n  messages by not returning error when there isn\u0027t one.\n"
    },
    {
      "commit": "774eb1524c3a1e0a9567e6aff3315b4686ab3e75",
      "tree": "56cb71fbc9ec910e079b7bc7bbee47fafeb2d11c",
      "parents": [
        "5bc52c76c2816a3be9a033c3e5bf4fea1908e3cd"
      ],
      "author": {
        "name": "Dmitry Tejblum",
        "email": "tejblum@yandex-team.ru",
        "time": "Tue Jun 23 17:16:32 2009 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Tue Jun 23 17:16:32 2009 +0400"
      },
      "message": "[ospfd] cancel OSPF timer hack in nsm_change_state\n\nThis piece of code causes all Quagga routers on a broadcast link to\nsend a HELLO packet simultaneously if they see a new neighbor. It also\nresets the HELLO timer, so all the quagga routers will continue to\nsend HELLO packets simultaneously in the future. This is not good\n(especially on networks with a lot of Quagga routers connected), and\nis explicitly discouraged by the OSPF standard, RFC 2328 (chapter\n4.4.Timers).\n\nI suggest to remove the code snippet, it does not provide much benefit\nanyway.\n"
    },
    {
      "commit": "b60668d092f1778395b6c10b406059b8cbf235b8",
      "tree": "7869d81a4a8d440f8cb41ddb0e66c8279e2b9636",
      "parents": [
        "5bc52c76c2816a3be9a033c3e5bf4fea1908e3cd"
      ],
      "author": {
        "name": "Chris Caputo",
        "email": "ccaputo@alt.net",
        "time": "Sun May 03 04:40:57 2009 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 23 14:15:57 2009 +0100"
      },
      "message": "RFC 4191 Default Router Preference support for router advertisements\n\nAdds \"ipv6 nd router-preference (high|medium|low)\" and\n\"no ipv6 nd router-preference\" interface commands.\n\nFiles modified:\n\n   doc/ipv6.texi\n   zebra/interface.c\n   zebra/interface.h\n   zebra/rtadv.c\n   zebra/rtadv.h\n\nSigned-off-by: Chris Caputo \u003cccaputo@alt.net\u003e\n"
    },
    {
      "commit": "5bc52c76c2816a3be9a033c3e5bf4fea1908e3cd",
      "tree": "5a833111c34420fc8a4f7cf126c14dc1cc493a20",
      "parents": [
        "86f72dcba35f055b5344deeb5f057c2f1d9a291f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jun 22 16:11:06 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jun 22 16:11:06 2009 +0100"
      },
      "message": "[doc] remove -dither arg to imagemagick, in building PDFs\n\n* doc/Makefile.am: arguments for the \u0027convert\u0027 programme seem to have\n  changed incompatibly at some stage - just remove the problematic -dither.\n"
    },
    {
      "commit": "86f72dcba35f055b5344deeb5f057c2f1d9a291f",
      "tree": "b128af27119cf27a709423814709a5a0bde98bae",
      "parents": [
        "f7e0db80693aea7f5fd3d8d4f00e97347c8d0ba5"
      ],
      "author": {
        "name": "Takashi Sogabe",
        "email": "sogabe@iij.ad.jp",
        "time": "Mon Jun 22 13:07:02 2009 +0900"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jun 22 12:21:22 2009 +0100"
      },
      "message": "Convert ospf6d over to quagga_gettime() wrappers.\n"
    },
    {
      "commit": "f7e0db80693aea7f5fd3d8d4f00e97347c8d0ba5",
      "tree": "b920d5309513724158ea477ae2c8b33190287e53",
      "parents": [
        "c514adc61d56c3fb6fe5119a7b4b55c79a9c065d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jun 22 11:30:47 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Jun 22 11:30:47 2009 +0100"
      },
      "message": "[bgpd] Fix \u0027update-source\u0027 command: It doesn\u0027t accept interface names\n\n* bgp_vty.c: BGP_UPDATE_SOURCE_STR define should only specify IP addresses,\n  the underlying mechanisms won\u0027t do anything useful with interface names.\n  Fix bug #527.\n"
    },
    {
      "commit": "c514adc61d56c3fb6fe5119a7b4b55c79a9c065d",
      "tree": "6b1ac86d90846505c6273ea1509172fb49c4944b",
      "parents": [
        "7ec573661ff046f6fa97d694de7a68dede2532fd"
      ],
      "author": {
        "name": "Jeremy Jackson",
        "email": "jerj@coplanar.net",
        "time": "Fri Jan 23 15:48:10 2009 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 19 15:03:31 2009 +0100"
      },
      "message": "[ospfd/BSD] add missing UINT16_MAX - picked up from FreeBSD ports patch\n\nShould probably have AC_TYPE_UINT16_T in configure.ac to make it really\nclean...  and a fresh import of gnulib, the existing copy of gnulib seems to\nbe manually put some stuff in zebra.h.  I\u0027m leaving that alone for now,\nsince a fresh import will probably clean up a lot of cruft and it would be a\nduplicated effort to fix some things now.\n\nThe FreeBSD port 0.99.11_1 files/patch-ospfd-ospfd.h can probably go away\nafter this is applied.\n"
    },
    {
      "commit": "7ec573661ff046f6fa97d694de7a68dede2532fd",
      "tree": "af1fd3206ed90ad0dec7844abf18deac579af846",
      "parents": [
        "ec5e42b3c50e3a8e95963161319fa1a56466b2ae"
      ],
      "author": {
        "name": "Jeremy Jackson",
        "email": "jerj@coplanar.net",
        "time": "Wed Jan 21 22:10:40 2009 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 19 15:03:31 2009 +0100"
      },
      "message": "[configure] fix check for GNU awk/gawk to abort ./configure if missing\n\nIt also prints what were comments explaining why gawk is necessary, and\nnot-in-PATH to help user figure out why it\u0027s not found.\n\nBuild was mysteriously failing with the old version of this check when gawk\nwasn\u0027t installed.\n"
    },
    {
      "commit": "ec5e42b3c50e3a8e95963161319fa1a56466b2ae",
      "tree": "4eba2580aca51f386ce2f879f32f8616279a1ba3",
      "parents": [
        "e84999d93afd0f727f7325431c055cc26c988c68"
      ],
      "author": {
        "name": "Jeremy Jackson",
        "email": "jerj@coplanar.net",
        "time": "Wed Jan 21 20:51:57 2009 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 19 15:03:31 2009 +0100"
      },
      "message": "[cleanup] convert bzero() deprecated by POSIX to memset()\n\nautoscan 2.62 complains about bzero(), so a good fix\nnowadays is to just replace it.\n"
    },
    {
      "commit": "e84999d93afd0f727f7325431c055cc26c988c68",
      "tree": "68bc98d88a07c0dcdd6a0eba644515e8f6247111",
      "parents": [
        "5589ffa7dd6846a83e1d312f3dc3f2aa47e40f92"
      ],
      "author": {
        "name": "Jeremy Jackson",
        "email": "jerj@coplanar.net",
        "time": "Wed Jan 21 20:29:39 2009 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 19 15:03:31 2009 +0100"
      },
      "message": "[configure] remove unused/broken autoconf cache variable ac_statedir\n\nIt wasn\u0027t used, and the code wasn\u0027t printing progress or the result in some\ncases.  the test uses minimal resources, so it\u0027s probably better to not\ncache so as to avoid inconsistencies if --with-prefix or directory variables\nare changed between ./configure runs.\n"
    },
    {
      "commit": "5589ffa7dd6846a83e1d312f3dc3f2aa47e40f92",
      "tree": "036a1285f5de7c5daee1caa0d3e9fddba8841630",
      "parents": [
        "7f177ee8df0437ba0d002c1226201150639dcd09"
      ],
      "author": {
        "name": "Jeremy Jackson",
        "email": "jerj@coplanar.net",
        "time": "Wed Jan 21 18:27:37 2009 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 19 15:03:31 2009 +0100"
      },
      "message": "[configure/cleanup] fix broken autoconf cache variables\n\nFix zebra_rtread and zebra_ipforward_path.\n\nIt looks like someone tried to make this cached, but it was being ignored at\nleast on autoconf 2.6.1.  2.6.2 now gives a warning about the situation,\nhence this fix.\n\nAlthough they are just warnings, it\u0027s dangerous to leave them as-is, because\nsomeone not diligent in reading the autoconf manual might just stick _cv_ in\nthe name, with the effect that running a ./configure --config-cache would\nfail horribly, since variables are being set inside the AC_CACHE_CHECK()\nblock that would not be seen when the variable\u0027s value was read from cache.\n\nAlso added m4 quotes [] to macro arguments as autoconf manual\nsuggests.\n"
    },
    {
      "commit": "7f177ee8df0437ba0d002c1226201150639dcd09",
      "tree": "cc6e4c8226999a3f82057d4dbd83d1810d48f609",
      "parents": [
        "4bf6461e0f6cc6dcb8ca54314bc6c1865a366e70"
      ],
      "author": {
        "name": "Jeremy Jackson",
        "email": "jerj@coplanar.net",
        "time": "Wed Jan 21 16:35:51 2009 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 19 15:03:31 2009 +0100"
      },
      "message": "[configure] remote support for AIX, it conflicts on newer autoconf\n\nAC_AIX and AC_GNU_SOURCE conflict \u003e autoconf 2.53 or so,\nbut the replacement AC_USE_SYSTEM_EXTENSIONS isn\u0027t available\nuntil later versions.  So either we narrow the supported\nautconf version range, or disable AIX (if it has any effect),\nor determin that AC_AIX doesn\u0027t do anything useful anyhow.\n"
    },
    {
      "commit": "4bf6461e0f6cc6dcb8ca54314bc6c1865a366e70",
      "tree": "209afa18250f7e02949bfcad503556818ca0aae3",
      "parents": [
        "25f45887abf320401745dd433c4e82bfd6db5d4d"
      ],
      "author": {
        "name": "Jeremy Jackson",
        "email": "jerj@coplanar.net",
        "time": "Wed Jan 21 14:15:44 2009 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 19 15:03:30 2009 +0100"
      },
      "message": "[build] cleanup low-hanging autoreconf warnings\n\nSome uses of GNU make extensions were not necessary.  There are still some,\nbut they might exist as workarounds for older versions of autoconf that have\nsince been solved.\n\nLesson learned: implicit target rules have opposite order to pattern target\nrules.\n"
    },
    {
      "commit": "25f45887abf320401745dd433c4e82bfd6db5d4d",
      "tree": "a52835a9976899d1bef9ec7bff9eaa4972a6fa45",
      "parents": [
        "c77cffdd69bf08ed54e390a3485cbd5024836a9a"
      ],
      "author": {
        "name": "Jeremy Jackson",
        "email": "jerj@coplanar.net",
        "time": "Mon Jan 12 16:06:12 2009 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 19 15:01:16 2009 +0100"
      },
      "message": "[configure] add configure support for PCRE Posix library\n\nDebian tried unsuccessfully to build with libpcreposix.  This adds proper\nsupport to autoconf/configure.ac for it.\n\nBased on the patch by C.J.  Adams-Collier in bug #483.\n\nbgpd/bgp_{regex,routemap}.h: Pull in PCRE POSIX header if available.\n"
    },
    {
      "commit": "c77cffdd69bf08ed54e390a3485cbd5024836a9a",
      "tree": "42225904923a4b3457edd13a0eb84f0ea8581441",
      "parents": [
        "c546afaed229106c2fcb54b57906414b9503dcc9"
      ],
      "author": {
        "name": "Jeremy Jackson",
        "email": "jerj@coplanar.net",
        "time": "Sun Dec 28 12:57:42 2008 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 22:11:41 2009 +0100"
      },
      "message": "[daemons/cleanup] Remove disabled log_mode argument support.\n\n* */*main.c: Seems that the actual code was removed previously, but the\n  argument processing code remained.\n"
    },
    {
      "commit": "c546afaed229106c2fcb54b57906414b9503dcc9",
      "tree": "7eb70bd1b8ee9a769cfb7a265d4073b03e5ecbe0",
      "parents": [
        "6511cab26728453d1b5e572bbbc3775f70c10c0e"
      ],
      "author": {
        "name": "Jeremy Jackson",
        "email": "jerj@coplanar.net",
        "time": "Sun Dec 28 12:40:06 2008 -0500"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 22:11:32 2009 +0100"
      },
      "message": "[doc] Removes documentation of nonexistant option.\n\nExpansion of Ubuntu quagga-0.99.11-1 30_doc__ospfd.8__nolog.dpatch\n"
    },
    {
      "commit": "6511cab26728453d1b5e572bbbc3775f70c10c0e",
      "tree": "586184e1e02aedbf67d4ebca145980f8f402ae62",
      "parents": [
        "c4376c9d28f1282f502ed5279ee80ec5c4cb810d"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 17:38:01 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:31 2009 +0100"
      },
      "message": "[configure] Refine CLOCK_MONOTONIC test\n\n* configure.ac: Check for the actual CLOCK_MONOTONIC symbol, as clock_gettime\n  need not imply that clock type is supported\n* lib/zebra.h: use the method given in autoconf docs for sys/time.h\n  inclusion\n"
    },
    {
      "commit": "c4376c9d28f1282f502ed5279ee80ec5c4cb810d",
      "tree": "162d6a64033db3702a82a9470549570f1fac4080",
      "parents": [
        "8f5abac1c3f5ad18561cad560bd42b50d2419d94"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Thu May 28 15:29:10 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:31 2009 +0100"
      },
      "message": "[configure] Detect support for monotonic clock\n\nQuagga has code to support monotonic clock to avoid issues where\ntime of day changes. The support was incomplete since it was not being\ndetected by autoconf.\n"
    },
    {
      "commit": "8f5abac1c3f5ad18561cad560bd42b50d2419d94",
      "tree": "5d126bdeed0e115b53c4cd23a992a5355797d663",
      "parents": [
        "730394d9a33dceb0699c5268afd1049aa225c5c7"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 10:16:34 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:31 2009 +0100"
      },
      "message": "[BGP/cleanup] make message list in bgp_open const\n"
    },
    {
      "commit": "730394d9a33dceb0699c5268afd1049aa225c5c7",
      "tree": "e4dae4fb06d63bf3008154303d32e70eb8c0a88c",
      "parents": [
        "e9dc9f247a668ece1b983cc964fec852c737bedd"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 10:17:09 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:31 2009 +0100"
      },
      "message": "[BGP/cleanup] make community hash table static\n"
    },
    {
      "commit": "e9dc9f247a668ece1b983cc964fec852c737bedd",
      "tree": "e8b865d140f9942655cd6d1190a87f3bade807ca",
      "parents": [
        "ffa4e2c4712ddcb5085971aaf001f030723ee307"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 10:19:31 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:30 2009 +0100"
      },
      "message": "[BGP/cleanup] make some damp function static\n"
    },
    {
      "commit": "ffa4e2c4712ddcb5085971aaf001f030723ee307",
      "tree": "c678f391c427079ec667413f63bc26d5b422c4d7",
      "parents": [
        "372b3c70a090359fe401dbb5e7c34ff8ae09f757"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 10:28:11 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:30 2009 +0100"
      },
      "message": "[BGP/cleanup] make ecommunity variables/functions local\n"
    },
    {
      "commit": "372b3c70a090359fe401dbb5e7c34ff8ae09f757",
      "tree": "ca77aa42206f79326327fe061af90370e9811180",
      "parents": [
        "ce0db9cb11c0bc2e7f89a7d042e50afa495556b4"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 10:29:41 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:30 2009 +0100"
      },
      "message": "[BGP/cleanup] main program cleanup\n\nCheck result of daemon() call to fix warning\nMake local variables static\n"
    },
    {
      "commit": "ce0db9cb11c0bc2e7f89a7d042e50afa495556b4",
      "tree": "37fc83c27a0c8b2d2d0018c97d2625aebdc66c51",
      "parents": [
        "7ba82f70ddf9abf99277b25cd54503a8517a0c15"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 10:47:04 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:30 2009 +0100"
      },
      "message": "[zebra/cleanup] make message table read only\n"
    },
    {
      "commit": "7ba82f70ddf9abf99277b25cd54503a8517a0c15",
      "tree": "85ab34cd3d20d7ee28342614b62d26b32e7bd68a",
      "parents": [
        "b2d933f8280a4d9eee8a9330282e705514a96a03"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 10:47:45 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:30 2009 +0100"
      },
      "message": "[OSPF/cleanup] make message lists read only\n"
    },
    {
      "commit": "b2d933f8280a4d9eee8a9330282e705514a96a03",
      "tree": "c3ffbd21046c1ca3ba19f1535c39c6707847745d",
      "parents": [
        "01b7ce2db345429d7abc0446840f1d5c303c80af"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 10:48:03 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:29 2009 +0100"
      },
      "message": "[bgpd/cleanup] make message lists read only\n"
    },
    {
      "commit": "01b7ce2db345429d7abc0446840f1d5c303c80af",
      "tree": "2f20f0bc1f2fa5c7fdf7bc8e4b7993a6b80000c4",
      "parents": [
        "8e4c09307d9eafbbbf7fbffb3d3483287cea169b"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 12:34:43 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:29 2009 +0100"
      },
      "message": "[bgpd] add comment that bgp_capability_receive is exported for unit-tests\n"
    },
    {
      "commit": "8e4c09307d9eafbbbf7fbffb3d3483287cea169b",
      "tree": "c9b39213248d64fdaa28bc419e77ce1e3866a585",
      "parents": [
        "fc52f95373b1dc0bec5f5a474bafa362b02a63ae"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 09:47:34 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:29 2009 +0100"
      },
      "message": "[cleanup] Allow message tables to be constant\n\nAvoid bugs, and improve cache locality by allowing message lists\nto be read/only.\n"
    },
    {
      "commit": "fc52f95373b1dc0bec5f5a474bafa362b02a63ae",
      "tree": "da4d569501ac14f2712b89052b01e1a138094570",
      "parents": [
        "65d3fbb4835e268b1683b88b12e101c6592b1948"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 09:48:55 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:29 2009 +0100"
      },
      "message": "[cleanup] Fix compile warnings\n\nFix printf format warning and make capability table \u0027const static\u0027\n"
    },
    {
      "commit": "65d3fbb4835e268b1683b88b12e101c6592b1948",
      "tree": "5eb12ca5e645fd6d4751367d6b2b2ea5ed18699e",
      "parents": [
        "9bddac4bd50034c713940ad77cebfbb7f3cd123a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 09:59:03 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:29 2009 +0100"
      },
      "message": "[cleanup] Use const in smux interface\n\nsmux_trap and oid_copy should allow read-only source.\n"
    },
    {
      "commit": "9bddac4bd50034c713940ad77cebfbb7f3cd123a",
      "tree": "2d41a091918fd6d4ca433493a7c9ec9d50eaf343",
      "parents": [
        "fda1d3e033f98c7e34ccdaead27e8df39af12a85"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 09:59:51 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:28 2009 +0100"
      },
      "message": "[bgpd/cleanup] BGP make attribute variables local\n\nMessage lists can be read-only, and hash tables are local to this\ncode.\n"
    },
    {
      "commit": "fda1d3e033f98c7e34ccdaead27e8df39af12a85",
      "tree": "636aef72183a2f9dc34305d02545a74fb48907ca",
      "parents": [
        "0088b5dc55a91d27e572484e61df71b8ca2eddf4"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 15 10:02:27 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:28 2009 +0100"
      },
      "message": "[bgpd/cleanup] Make BGP FSM table read-only static\n\nThe finite state machine table is immutable.\n"
    },
    {
      "commit": "0088b5dc55a91d27e572484e61df71b8ca2eddf4",
      "tree": "f93714f98d12890f961794cd026b6bf2de75105e",
      "parents": [
        "dde7258666fd73878b4cc10b4b5b7c07e9be049e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 21 08:51:03 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:28 2009 +0100"
      },
      "message": "[bgpd] reference count the BGP instance\n\nWhen a BGP instance is deleted with lots of routes and neighbors\nit is possible for the peer rsclient queue to run after\nbgp_delete has been called. This would lead to bgpd crashing,\nsee https://bugzilla.vyatta.com/show_bug.cgi?id\u003d3436\n\nThe fix is to add reference counting to the BGP instance and defer\nactual freeing until all references are gone.\n\nThis patch also fixes a memory leak where the self-reference\npeer instance was being created but never freed.\n\nThe check in bgp_clear_route is no longer valid because it is possible\nfor it to be called when peer is in Deleted state during cleanup.\n"
    },
    {
      "commit": "dde7258666fd73878b4cc10b4b5b7c07e9be049e",
      "tree": "9275ed492957279eaf8bfa0c02fc141247309c09",
      "parents": [
        "9607d98cb04e5dff34cb2f6fb6434455c6841ab8"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 08 15:19:07 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:28 2009 +0100"
      },
      "message": "[bgpd] Make declarations match\n\nThese variables are const.\n"
    },
    {
      "commit": "9607d98cb04e5dff34cb2f6fb6434455c6841ab8",
      "tree": "4ff992b16ddb0902237cb3a189cd29808813a631",
      "parents": [
        "90d2ab0f9426d670552b929364f8fb7de122efe5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Wed Apr 29 21:55:48 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:28 2009 +0100"
      },
      "message": "[zebra] Remove unused structure element\n"
    },
    {
      "commit": "90d2ab0f9426d670552b929364f8fb7de122efe5",
      "tree": "58478aa687b6484d9d3ab08a13c82388ca37acbc",
      "parents": [
        "81cce0185e23b6ecd2ab98ab34182901226bcf9e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Wed Apr 29 21:54:59 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:27 2009 +0100"
      },
      "message": "[zebra] Force rib_update when connected route deleted\n"
    },
    {
      "commit": "81cce0185e23b6ecd2ab98ab34182901226bcf9e",
      "tree": "24a8fa282d80b9dab623bb26fbbec731c0c8b34a",
      "parents": [
        "82f5ee1ead0aa83f83f918abfc3f5071741a56e5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Tue Apr 28 14:28:00 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:27 2009 +0100"
      },
      "message": "[cleanup] Use correct buffer size for inet_ntop()\n\nDon\u0027t need big buffer 1024 to hold IPV4 (INET_ADDRSTRLEN)\nor IPv6 (INET6_ADDRSTRLEN) message.\n"
    },
    {
      "commit": "82f5ee1ead0aa83f83f918abfc3f5071741a56e5",
      "tree": "bea94b32379b8f1b3f69db6d0c3404ccb115c7fa",
      "parents": [
        "94fc1dd41cd0267acb9c67dd3dcf1e64ef8713af"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Apr 07 15:00:46 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:27 2009 +0100"
      },
      "message": "[ripd] Ignore non-running interfaces in rip status\n\nVyatta Bug 3999\n"
    },
    {
      "commit": "94fc1dd41cd0267acb9c67dd3dcf1e64ef8713af",
      "tree": "95ade8cc41fe0d758b22d01d50b02b7b88499f38",
      "parents": [
        "e5862a2df2b5f65b0c050987c5f145836e0b75b3"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Mar 09 16:09:50 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:27 2009 +0100"
      },
      "message": "[lib] Put symbolic backtrace on system log\n\nWhen BGP crashes, sometimes all we get to see is syslog.\n"
    },
    {
      "commit": "e5862a2df2b5f65b0c050987c5f145836e0b75b3",
      "tree": "20a10d219e87f9ac98d858cad263e9d1760d1ebb",
      "parents": [
        "66a11e76d4a8ee18c4e79c06d25814b9aa94e45d"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Thu Feb 19 23:01:41 2009 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:27 2009 +0100"
      },
      "message": "[lib] sockopt_tcp_signature: sin6 requires HAVE_IPV6\n\nAn external user was building on system without IPv6 and\nit wouldn\u0027t work.\n"
    },
    {
      "commit": "66a11e76d4a8ee18c4e79c06d25814b9aa94e45d",
      "tree": "218fe76bc1a99cc659bc556a329dbb7c407e09f9",
      "parents": [
        "56abbb886f6ad8dce9dd7d336d010861ca9dd2b9"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@debian.(none)",
        "time": "Wed Feb 11 23:55:32 2009 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:27 2009 +0100"
      },
      "message": "[ospf6d] Remove \u0027no router\u0027 from OSPF6_NODE\n\nDon\u0027t need command twice.\n"
    },
    {
      "commit": "56abbb886f6ad8dce9dd7d336d010861ca9dd2b9",
      "tree": "0f59dd6d66e5c1647c4d2ffc0a270fbe0cb000f3",
      "parents": [
        "597fa7c185e34aac7bc1df22263e9414bccd9a9f"
      ],
      "author": {
        "name": "Jon",
        "email": "jonirucoeith@gmail.com",
        "time": "Wed Feb 11 17:30:44 2009 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:26 2009 +0100"
      },
      "message": "[ospf6d] Fix ospf6d crash if removing interface with no area\n\nospf6d will crash if attempting to remove interface when no areas have been\ndefined Check if any areas have been defined.  Should prevent use of empty\npointer.\n"
    },
    {
      "commit": "597fa7c185e34aac7bc1df22263e9414bccd9a9f",
      "tree": "aa4634cb994a97ea13784c85dea3331ab267b9de",
      "parents": [
        "6c19d26a019da198ea7e181731b8eb9553725f2d"
      ],
      "author": {
        "name": "Jon",
        "email": "jonirucoeith@gmail.com",
        "time": "Wed Feb 11 17:27:06 2009 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:26 2009 +0100"
      },
      "message": "[ospf6d] Fix ospf6d crash in show border routers\n\nospf6d will crash if this command is executed on a non-border-router.\nIncluded test to verify that any routes are defined, preventing empty\npointer from being used.\n"
    },
    {
      "commit": "6c19d26a019da198ea7e181731b8eb9553725f2d",
      "tree": "2862bede64030129e00b5082f8312819a53da28a",
      "parents": [
        "86f9e5a7f3a80d6df13a9750d2148693daa14c8d"
      ],
      "author": {
        "name": "Jon",
        "email": "jonirucoeith@gmail.com",
        "time": "Wed Feb 11 17:19:07 2009 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:26 2009 +0100"
      },
      "message": "[ospf6] Add no router ospf6\n\nSuggestion: Makes no sense to me that the statement to remove ospf6\nconfiguration is located in OSPF6D_NODE.\nMoved to CONFIG_NODE next to matching define command.\n"
    },
    {
      "commit": "86f9e5a7f3a80d6df13a9750d2148693daa14c8d",
      "tree": "6cdcdb8954556cd4c5b6bc7dce900746e59b1ddd",
      "parents": [
        "965f54f5ef0bd601cf129bd4b964863251313ec9"
      ],
      "author": {
        "name": "Jon",
        "email": "jonirucoeith@gmail.com",
        "time": "Wed Feb 11 17:22:03 2009 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:26 2009 +0100"
      },
      "message": "[ospf6d] Fix ospf6d crash if range defined twice\n\nospf6d will crash if the same range is defined twice.\nThere was no check if the same range had previously been defined,\nthereby causing a later assert to fail.\n"
    },
    {
      "commit": "965f54f5ef0bd601cf129bd4b964863251313ec9",
      "tree": "106d6dbc1cf30d5a28066cbb268bf65cdcdc53bf",
      "parents": [
        "fd21325b2eb252644bc70918ace4f9c6c00c45ef"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Wed Jun 03 16:44:21 2009 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:26 2009 +0100"
      },
      "message": "[ospfd] Fix OSPF route refcount leak\n\nThis may fix vyatta BUG 3096. The reference count for OSPF route table was\nnever completely freed on deleting all neighbors.\n"
    },
    {
      "commit": "fd21325b2eb252644bc70918ace4f9c6c00c45ef",
      "tree": "b77e6fc133289e025fdc08217ac9c05a573bc077",
      "parents": [
        "4308abba5cab18c1d30b962567b06b02a1a15361"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sat Jul 05 16:32:37 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:26 2009 +0100"
      },
      "message": "[zebra] Only announce connected routes if link is detected\n\nNeed to check both IFF_UP and IFF_RUNNING if link-detect is enabled,\nbefore announcing routes.\n"
    },
    {
      "commit": "4308abba5cab18c1d30b962567b06b02a1a15361",
      "tree": "000095719fdc1a66599af3160f9af4e97c2a935f",
      "parents": [
        "6c684653f08fadf738ca52a3fbe512e3d1698ceb"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Dec 01 14:19:38 2008 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:25 2009 +0100"
      },
      "message": "[zebra] MTU is unsigned\n\nThe MTU data in the netlink message is always unsigned 32 bits.\nDon\u0027t use integer.\n"
    },
    {
      "commit": "6c684653f08fadf738ca52a3fbe512e3d1698ceb",
      "tree": "f5f48e6647a3158ad8b42785031b0bf986ed5fe5",
      "parents": [
        "5110a0c6222be91d3b2a786692949dd94fb0c9ac"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Thu Sep 18 16:51:06 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:25 2009 +0100"
      },
      "message": "[zebra] remove incorrect debug message\n"
    },
    {
      "commit": "5110a0c6222be91d3b2a786692949dd94fb0c9ac",
      "tree": "e7cd59e893c1f9be7f91f546bb84540b8f85857a",
      "parents": [
        "c84154977d822ceee9df66be535c56cb5f0fce10"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Aug 11 16:22:15 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:25 2009 +0100"
      },
      "message": "[zebra] Cleanup meta-queue code\n\nDo some cleanup work on recently added meta-queue code:\n  * use table rather than switch\n  * indent with quagga standard indentation\n  * since meta_queue_new is only used at initialization\n    allocation failure should be fatal.\n"
    },
    {
      "commit": "c84154977d822ceee9df66be535c56cb5f0fce10",
      "tree": "460e5d46b94200f8febcca5029a882a8f752a29e",
      "parents": [
        "61691c91c15445445b0ac246ee12e559a4cacdb5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Wed May 28 10:47:30 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:25 2009 +0100"
      },
      "message": "[zebra] netlink interface minor cleanup\n\nAdd more prototypes and make some functions static\n"
    },
    {
      "commit": "61691c91c15445445b0ac246ee12e559a4cacdb5",
      "tree": "427a21e559966e635e5c2437a642c281b4983ab4",
      "parents": [
        "914131f80da7b9696d26b42ed92b2d93d4d8b3ab"
      ],
      "author": {
        "name": "Stig Thormodsrud",
        "email": "stig@io.vyatta.com",
        "time": "Tue Nov 04 15:45:07 2008 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:25 2009 +0100"
      },
      "message": "[zebra] Fix vyatta bug 2814: Add \"show ip route summary\" command.\n"
    },
    {
      "commit": "914131f80da7b9696d26b42ed92b2d93d4d8b3ab",
      "tree": "5a138ce8e6fe6b54176dbd5480a91b00aa7c0bac",
      "parents": [
        "2c4d48bc018c5bdca6faa953fbf6ff828becbc45"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Wed Jul 30 14:16:47 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:25 2009 +0100"
      },
      "message": "[vtysh] Add a --noerror option\n\nThere are times that configuration scripts want to run vtysh but\ndon\u0027t want to get error messages or failed exit status\n"
    },
    {
      "commit": "2c4d48bc018c5bdca6faa953fbf6ff828becbc45",
      "tree": "192ce26802145423ab7ede7d30cba375edf6a5b3",
      "parents": [
        "57fb974856b9ae143ca5642e279d181a45bbdd10"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Jul 28 15:04:56 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:24 2009 +0100"
      },
      "message": "[vtysh] Return non-zero exit code on error.\n\nIf passed a bad command, return non-zero exit code\n"
    },
    {
      "commit": "57fb974856b9ae143ca5642e279d181a45bbdd10",
      "tree": "5008d2b2fc2b061747d7afaf27c4f3f197f8ed93",
      "parents": [
        "0fbd62a17c53f1e2695c0f96ffb437cd079abacb"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Jul 28 12:19:04 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:24 2009 +0100"
      },
      "message": "[vtysh] Make vtysh more useable for scripting\n\nAdd environment variable (VTYSH_LOG) for logging.\nIf a command fails, exit with non-zero exit code and don\u0027t\ncontinue multipart commands.\n"
    },
    {
      "commit": "0fbd62a17c53f1e2695c0f96ffb437cd079abacb",
      "tree": "45749827cf0b738d909caf30dddd7953f924d4fb",
      "parents": [
        "80c375e72d7c3b9fe41b1ffec461ec5e1b57caa7"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri May 02 09:25:02 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:24 2009 +0100"
      },
      "message": "[vtysh] Force line buffered mode.\n\nVtysh is used in pipelines and it helps if the output starts right\naway instead of waiting for a whole buffer to fill.\n"
    },
    {
      "commit": "80c375e72d7c3b9fe41b1ffec461ec5e1b57caa7",
      "tree": "1b596a2dd78fe20757443543512669c641b00ade",
      "parents": [
        "7fc626de5f618133ad2a478d13defa3a110b89ea"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri Aug 08 15:15:23 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Jun 18 20:18:24 2009 +0100"
      },
      "message": "[gcc] Add gcc printf format checks\n"
    },
    {
      "commit": "7fc626de5f618133ad2a478d13defa3a110b89ea",
      "tree": "432ff0e4672eabc2ec6b0dcffc22dcc0aee532c8",
      "parents": [
        "66e5cd87194ae6fdd51061a91b4698bc0a652f6b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Dec 01 11:10:34 2008 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 17:10:29 2009 +0100"
      },
      "message": "[cleanup] Make command nodes static\n\nThe cmd_nodes used to configure vty, can mostly be static so\n(basic data hiding 101).\n"
    },
    {
      "commit": "66e5cd87194ae6fdd51061a91b4698bc0a652f6b",
      "tree": "659d31f9a7dfb8d9ad9a51f37ff0853054a45399",
      "parents": [
        "cedd7f2fa6823bca9ddcfb062f97ed83b11a80dd"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Feb 09 10:14:16 2009 -0800"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 17:09:03 2009 +0100"
      },
      "message": "[cleanup] functions taking no args should be declared with void args\n\nUse Ansi-C prototypes rather than old K\u0026R method of declaring\nfunction without arguments\n"
    },
    {
      "commit": "cedd7f2fa6823bca9ddcfb062f97ed83b11a80dd",
      "tree": "4e6cc4d9ebf2bf861fb0278f8d49f8f3c030edc1",
      "parents": [
        "393deb9bd663361e6b110d579a8b1d4c22667068"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Fri Jun 12 16:58:49 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 17:08:26 2009 +0100"
      },
      "message": "[cleanup] add const attribute to lib/if.c::if_dump\n"
    },
    {
      "commit": "393deb9bd663361e6b110d579a8b1d4c22667068",
      "tree": "e93ebf2f57bf92ff7a9cd045764b3cdbb99a07e5",
      "parents": [
        "3453a7122c1d585ad789ed0f63deb90cc5e89fae"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Mon Aug 18 14:13:29 2008 -0700"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 17:07:49 2009 +0100"
      },
      "message": "[cleanup] Convert XMALLOC/memset to XCALLOC\n\nSimple conversion of XMALLOC/memset to XCALLOC\n"
    },
    {
      "commit": "3453a7122c1d585ad789ed0f63deb90cc5e89fae",
      "tree": "688446217623080afedffc7f074c8cba58b9b5aa",
      "parents": [
        "10819ecee3ced786162b68310cf172aacda18857"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 14:21:02 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Jun 12 14:21:02 2009 +0100"
      },
      "message": "[bgpd] Add support for the old Linux 2.4, TCP_MD5_AUTH RFC2385 patch\n\n* configure.ac: Add a --enable-linux24-tcp-md5 argument, to compile in\n  support for the old TCP-MD5 patch for Linux 2.4 systems.  This overrides\n  auto-detection of TCP-MD5 supported by the target system.\n* lib/sockopt.c: (sockopt_tcp_signature) add in a variant for the old\n  Linux 2.4, TCP_MD5_AUTH variant of TCP-MD5 support, conditional\n  on the previous configure arg.\n"
    },
    {
      "commit": "10819ecee3ced786162b68310cf172aacda18857",
      "tree": "0680aa68e15af0c5bb1080e5d30fc446fac3d119",
      "parents": [
        "6e0989e113d9e2268e58cfe29922e971793c1d06"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Tue Jun 09 15:15:33 2009 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Tue Jun 09 15:15:33 2009 +0400"
      },
      "message": "[bgpd] Fixed as-path prepend/exclude ASN handling\n\n - aspath_gettoken(): use as_t to fix 4-byte ASN scanning (bug #484)\n - set_aspath_prepend_cmd(): use CMD_AS_RANGE in message to match\n   actual range\n - no_set_aspath_prepend_val_cmd(): idem\n - set_aspath_exclude_cmd(): idem\n - no_set_aspath_exclude_val_cmd(): idem\n"
    },
    {
      "commit": "6e0989e113d9e2268e58cfe29922e971793c1d06",
      "tree": "624de12c4ba2a53c92a38ac6ee0170d108137c37",
      "parents": [
        "0be8dfb2a95f41f100982085595b7c7505127018",
        "e6b6a56419ed5a2e8cf2cb11eab340d7b0d28055"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 02 19:43:51 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 02 19:43:51 2009 +0100"
      },
      "message": "Merge remote branch \u0027origin/master\u0027\n"
    },
    {
      "commit": "0be8dfb2a95f41f100982085595b7c7505127018",
      "tree": "add7218b0c518ac0cd276c74fe700b5ed1f26762",
      "parents": [
        "42176e6b01c9ca2b2725952684b2d7792468e861"
      ],
      "author": {
        "name": "Chris Caputo",
        "email": "ccaputo@alt.net",
        "time": "Tue Jun 02 18:40:07 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 02 18:45:10 2009 +0100"
      },
      "message": "[snmp] Compiler warning fixes for when \"--enable-snmp\" is configured.\n\nCompiled on 32-bit and 64-bit linux gcc 4.1.2 platforms.\nNo run-time testing on 32-bit and limited run-time testing on 64-bit.\n"
    },
    {
      "commit": "42176e6b01c9ca2b2725952684b2d7792468e861",
      "tree": "2eb360778e96efe5ddc554a2b348e5e743030d61",
      "parents": [
        "04d23314ddf950fefb3ff18306c7564bf4573a12"
      ],
      "author": {
        "name": "Chris Caputo",
        "email": "ccaputo@alt.net",
        "time": "Tue Jun 02 18:37:11 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 02 18:38:24 2009 +0100"
      },
      "message": "[smux] 64-bit fix for lib/smux.h SNMP_INTEGER() macro\n\nMacro SNMP_INTEGER() prepares data which is eventually processed\nby asn_build_int().  SNMP_INTEGER() was using \"int32_t\" whereas\nasn_build_int() uses \"long\".  On 32-bit systems these are the\nsame, both 4 bytes, but on x86 64-bit systems \"long\" is 8 bytes.\n\nasn_build_int()\u0027s reaction to an improperly sized value is to return\na NULL pointer.  Quagga\u0027s smux.c would eventually get this NULL\npointer and use it in calculations to determine how much data to send\nover the smux connection, resulting in garbage being sent to the\nSNMP agent.\n\nCorrected SNMP_INTEGER() to use \"long\".\n\nTested on 32-bit and 64-bit x86 Linux 2.6.27.10 systems running\nQuagga 0.99.11 with bgpd smux.\n"
    },
    {
      "commit": "04d23314ddf950fefb3ff18306c7564bf4573a12",
      "tree": "4f95bfb51970b2baf84f67bb12a390b1b6097025",
      "parents": [
        "c5a89ff4e68c49b8841baf3c76290dd78ba383ec"
      ],
      "author": {
        "name": "Francesco Dolcini",
        "email": "fdolcini@sysnetsistemi.it",
        "time": "Tue Jun 02 18:20:09 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 02 18:20:09 2009 +0100"
      },
      "message": "[ospfd] fix vty ospfd no ospf abr-type standard\n\n\"no ospf abr-type standard\" was broken\n"
    },
    {
      "commit": "c5a89ff4e68c49b8841baf3c76290dd78ba383ec",
      "tree": "bd48c628314d40d870b85f539f4408539aa7853e",
      "parents": [
        "acde4b861333d799b50d6e8a53214abc0d17ede3"
      ],
      "author": {
        "name": "Krisztian Kovacs",
        "email": "Kris.Kovacs@MorganStanley.com",
        "time": "Tue Jun 02 18:09:48 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 02 18:09:48 2009 +0100"
      },
      "message": "[ripd] Fix metrix in call to rip_zebra_ipv4_delete\n\nFix a potential problem (most probably not triggering a real problem, at\nleast on Linux). When an interface goes down and ripd tries to delete the\ncorresponding route it errorneously passes the interface\u0027s index instead of\nthe metric to zebra.\n"
    },
    {
      "commit": "acde4b861333d799b50d6e8a53214abc0d17ede3",
      "tree": "e6fa104c7bfb45043aec82c9cab3941cb09459bd",
      "parents": [
        "5012bc3d217f4fff5759745ee689869fb5224b41"
      ],
      "author": {
        "name": "Steve Hill",
        "email": "quagga@cheesy.sackheads.org",
        "time": "Tue Jun 02 14:28:16 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Jun 02 14:28:16 2009 +0100"
      },
      "message": "[bgp] Fix crash on SIGHUP, deref of freed workqueues\n\n* lib/workqueue.c: free-ing workqueues had never been tested obviously,\n  queue\u0027s thread was not being stopped\n* bgpd/bgpd.c: null out freed workqueues, to prevent acting on freed\n  workqueues\n"
    },
    {
      "commit": "e6b6a56419ed5a2e8cf2cb11eab340d7b0d28055",
      "tree": "4d514a0b67f7a94a1213c74cb9a865593a072791",
      "parents": [
        "2bbd71aace61a70a631c1d0c0bce75fbc76ee1d1"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Mon Jun 01 20:20:36 2009 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Mon Jun 01 20:20:36 2009 +0400"
      },
      "message": "[trivia] Fixed typos in communities text (#334)\n"
    },
    {
      "commit": "2bbd71aace61a70a631c1d0c0bce75fbc76ee1d1",
      "tree": "92a33f545e2a10aeb1de080620d0ea3b21a48f03",
      "parents": [
        "8178b2e156d2263015d7d981590a0899f2cb4c05"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Mon Jun 01 20:07:46 2009 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Mon Jun 01 20:07:46 2009 +0400"
      },
      "message": "[doc] Stick with quagga.net for consistency (#436)\n"
    },
    {
      "commit": "8178b2e156d2263015d7d981590a0899f2cb4c05",
      "tree": "3dcf31e5c9a3f094c0f2b24a9a3f552ca51d1d2c",
      "parents": [
        "5012bc3d217f4fff5759745ee689869fb5224b41"
      ],
      "author": {
        "name": "Andrew J. Schorr",
        "email": "schorr@ti82.(none)",
        "time": "Fri May 29 09:15:20 2009 -0400"
      },
      "committer": {
        "name": "Andrew J. Schorr",
        "email": "schorr@ti82.(none)",
        "time": "Fri May 29 09:15:20 2009 -0400"
      },
      "message": "[bgpd] 64-bit bugfix in community_del_val by Jeremy Jackson \u003cjerj@coplanar.net\u003e\n\n* bgpd/bgp_community.c: (community_del_val) Fix bug in memcpy that was\n  using the wrong size on architectures where a pointer is not 32 bits.\n"
    },
    {
      "commit": "5012bc3d217f4fff5759745ee689869fb5224b41",
      "tree": "f3f17de7e606b8377cb2c456b8feb2bcda297410",
      "parents": [
        "e9a3670706edf37c5a863c93e5ef0c269e484eb9"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 08 23:20:19 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri May 08 23:20:19 2009 +0100"
      },
      "message": "[release] Bump version to 0.99.12\n"
    },
    {
      "commit": "e9a3670706edf37c5a863c93e5ef0c269e484eb9",
      "tree": "312ef6b631d3408837f21d9b37d7c47c4693ac2d",
      "parents": [
        "21b86436a8c826da84b47cd773fdffbf3d05141e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Aug 24 20:36:51 2008 -0400"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri May 08 22:59:42 2009 +0100"
      },
      "message": "Fix bgp ipv4/ipv6 accept handling\n\nWhen bgp calls getaddrinfo, it gets both ipv6 and ipv4 addresses.\nUnless IPV6_ONLY is set on Linux, only the ipv6 bind will succeed,\nand the IPV4 connections will come in as mapped connections on the\nIPV6 socket.\n"
    },
    {
      "commit": "21b86436a8c826da84b47cd773fdffbf3d05141e",
      "tree": "0b07397d53eb9bc2b29b195c95806d1ec3b9f42b",
      "parents": [
        "aea339f72807c34a7916d8614e030069815e144c"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri May 08 22:21:09 2009 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri May 08 22:21:09 2009 +0100"
      },
      "message": "[build] tools/multiple-bgpd.sh should be in \u0027make dist\u0027\n"
    },
    {
      "commit": "aea339f72807c34a7916d8614e030069815e144c",
      "tree": "7b0ab93dcfec82736f05ac39106096360e4ceeb5",
      "parents": [
        "c540835eaf0cb59921969537d8e94cc83bb717f5"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Thu Apr 30 17:16:22 2009 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Thu Apr 30 17:16:22 2009 +0400"
      },
      "message": "[bgpd] AS4 bugfix by Chris Caputo \u003cccaputo@alt.net\u003e\n\n* bgpd/bgp_aspath.c: (aspath_make_str_count) \"assert (len \u003c str_size)\" was\n  getting hit under certain 4-byte ASN conditions. New realloc strategy.\n* bgpd/bgp_aspath.c: (aspath_key_make) const warning fix.\n\n\"%d\" -\u003e \"%u\" 4-byte ASN corrections.  Prevent negative number when ASN is\nabove 2^31.\n"
    },
    {
      "commit": "c540835eaf0cb59921969537d8e94cc83bb717f5",
      "tree": "2fbe142c8dc72914dc5a68284d371bbd56981a89",
      "parents": [
        "9eff36b3784acbf72c962770e20ddd3f58f50332"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Mon Apr 13 20:11:44 2009 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Mon Apr 13 20:11:44 2009 +0400"
      },
      "message": "Dmitry Tejblum \u003ctejblum@yandex-team.ru\u003e\n\nDon\u0027t enable HAVE_BSD_STRUCT_IP_MREQ_HACK for FreeBSD 7.0 and upper,\nbecause OS behaviour has changed.\n"
    },
    {
      "commit": "9eff36b3784acbf72c962770e20ddd3f58f50332",
      "tree": "05ad51204eb352298d8308ba72c0558c5a8450ea",
      "parents": [
        "b8192765a320f389e09bf7261e8902958ad21584"
      ],
      "author": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Fri Apr 10 18:51:24 2009 +0400"
      },
      "committer": {
        "name": "Denis Ovsienko",
        "email": "pilot@etcnet.org",
        "time": "Fri Apr 10 18:51:24 2009 +0400"
      },
      "message": "Justified OSPF cost function names and added support for:\n ospf cost \u003c1-65535\u003e A.B.C.D\n no ospf cost \u003c1-65535\u003e\n"
    },
    {
      "commit": "b8192765a320f389e09bf7261e8902958ad21584",
      "tree": "dab031e7db5d0f844164b52391155af17a3c2a81",
      "parents": [
        "6e907dd4abdff9c52c809ea49c76d789b11c0e12"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Mon Nov 10 09:33:30 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sat Nov 29 18:04:22 2008 +0000"
      },
      "message": "[lib] Fix timer precision.\n\nWhenever a thread adds an timer funcname_thread_add_timer_timeval() gets called\nto add the timer. Before adding the timer a quagga_gettimeofday() call\nis made to do some time house keeping. However quagga_gettimeofday() only\nupdates recent_time, not relative_time that is used to calculate\nthe alarm_time. Replace with quagga_get_relative (NULL)\n"
    },
    {
      "commit": "6e907dd4abdff9c52c809ea49c76d789b11c0e12",
      "tree": "fc63d6c0699cc626a316ae3662f045f7de8e90fe",
      "parents": [
        "4768061ad5d7c762f2272436a89e62d4e41676a2"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Mon Nov 17 11:22:25 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sat Nov 29 18:04:11 2008 +0000"
      },
      "message": "[lib] Move type cast in Fletcher checksum\n\nThe int type cast should be on the whole expression\npassed to the mod operator. Otherwise it won\u0027t work\nwhen/if c0/c1 is unsigned.\nMaking c0/c1 unsigned makes it possible to use 5802\nas MODX value.\n"
    },
    {
      "commit": "4768061ad5d7c762f2272436a89e62d4e41676a2",
      "tree": "99034d9631ebf31a38c979fb7b7d334470e52cd1",
      "parents": [
        "84152ee6841d0d83bd46ed6f8f12cc5c08386c7f"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sat Nov 29 16:42:04 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sat Nov 29 16:42:04 2008 +0000"
      },
      "message": "[rpm] some defaults for Fedora are way out of date\n\n* quagga.spec.in: No need to default to accomodate now ancient versions of\n  Fedora\n"
    },
    {
      "commit": "84152ee6841d0d83bd46ed6f8f12cc5c08386c7f",
      "tree": "e832a6c1cb1f752dfd1f38fd3c4804038ec455f2",
      "parents": [
        "e0081f70ede76bc7a3db53eaab3e45ba657cc4d3"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Nov 24 22:25:16 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Nov 24 22:25:16 2008 +0000"
      },
      "message": "[lib] fix missing sockunion_normalise_mapped\n\n* lib/sockunion.c: (sockunion_accept) sockunion needs to be normalised here,\n  as it used to before this was moved to a dedicated function..\n"
    },
    {
      "commit": "e0081f70ede76bc7a3db53eaab3e45ba657cc4d3",
      "tree": "27e143772053a699d10671832e3c7d989ee85392",
      "parents": [
        "5d4b8cf2faba9f5386810a7c70837e5b7fae3572"
      ],
      "author": {
        "name": "Michael Lambert",
        "email": "lambert@psc.edu",
        "time": "Sun Nov 16 20:12:04 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Nov 16 20:12:04 2008 +0000"
      },
      "message": "[bgpd] Add \u0027show bgp views\u0027 command\n\n* bgp_vty.c: (show_bgp_views_cmd) new command to list all defined\n  views.\n  (with small edits by Paul Jakma)\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "5d4b8cf2faba9f5386810a7c70837e5b7fae3572",
      "tree": "ec89383f7bfd4684a0cde15648e5f00e8d2d8f7b",
      "parents": [
        "41dc3488cf127a1e23333459a0c316ded67f7ff3"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sun Nov 16 18:34:19 2008 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sun Nov 16 18:47:02 2008 +0000"
      },
      "message": "[lib] Switch Fletcher checksum back to old ospfd version\n\n* lib/checksum.c: (fletcher_checksum) Switch the second phase of the checksum\n  back to the old ospfd logic.\n\n  The isisd-derived version:\n\n  a) is very hard to follow\n  b) had some kind of subtle bug that caused it be wrong when c0\u003d0 and c1\u003d254\n     (potentially fixable by doing the mods before adjusting x and y)\n\n  Additionally:\n\n  - explicitely cast expressions using non-internal variables to int, to ensure\n    the result is signed.\n  - defensively change the length argument to \u0027size_t\u0027, to ensure the code\n    works with that argument being unsigned..\n\n  Thanks to Joakim Tjernlund for the investigative work into this bug.\n\n* tests/test-checksum.c: new file to exercise the checksum code.\n"
    },
    {
      "commit": "41dc3488cf127a1e23333459a0c316ded67f7ff3",
      "tree": "cae4232896fe9c41864ce8388eb834fa0929e8e1",
      "parents": [
        "8c1bbc7205c5e2a0266e0bf9af42862cf730fbcf"
      ],
      "author": {
        "name": "Bartek Kania",
        "email": "mrbk@gnarf.org",
        "time": "Sat Oct 04 17:12:24 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sat Oct 04 17:12:24 2008 +0100"
      },
      "message": "[vtysh] Add commands from zebra_routemap.c to vtysh\n\n* Makefile.am: vtysh should also pull in commands from zebra_routemap.c\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "8c1bbc7205c5e2a0266e0bf9af42862cf730fbcf",
      "tree": "0c433d2128c492302df16b9a20501be4cfd66c66",
      "parents": [
        "5635b778afcb3b6b3560871a292dc789f8dca5e9",
        "6e1992638864c3847d35bf9442989bce4c81de13"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Oct 02 16:27:16 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Oct 02 16:27:16 2008 +0100"
      },
      "message": "Merge branch \u0027bgpd/fsm\u0027\n"
    },
    {
      "commit": "5635b778afcb3b6b3560871a292dc789f8dca5e9",
      "tree": "4747f91f00d6c821f8cfa1328aa37af8d89c7add",
      "parents": [
        "a8bf6f526ee578a894c72eabae733f0b60abca63"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Oct 02 09:34:34 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Oct 02 09:34:34 2008 +0100"
      },
      "message": "[release] Bump version to 0.99.11\n"
    },
    {
      "commit": "a8bf6f526ee578a894c72eabae733f0b60abca63",
      "tree": "855f05041c4ef5a4f201ef2d3fe869b68b95542d",
      "parents": [
        "6e687d74f74f36bc9d503e29377e7d42f3427221"
      ],
      "author": {
        "name": "Michael Lambert",
        "email": "lambert@psc.edu",
        "time": "Wed Sep 24 17:23:11 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Sep 24 17:23:11 2008 +0100"
      },
      "message": "[bgpd] Fix definition of an rsclient command\n\n* bgp_route.c: (show_ip_bgp_view_rsclient_route_cmd) Add the missing \"ip\"\n  to the command string.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "6e687d74f74f36bc9d503e29377e7d42f3427221",
      "tree": "099899b58728fa5fbcfb8282a906d782076bf1ad",
      "parents": [
        "491eddc20ec072b05607d5a90513e3fffc0d85c2"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Wed Sep 24 17:15:48 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Sep 24 17:15:48 2008 +0100"
      },
      "message": "[ospfd] Fix SEGV during startup introduced in recent commit\n\n* ospfd/ospfd.c: (opsf_if_update) Check if ospf_lookup() returns NULL.\n  Fixes bug introduced with recent ospf_network_run changes in\n  a49eb30a, where SEGV will happen if not the \"router ospf\" command has\n  been executed before the first interfaces are reported by zebra.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "491eddc20ec072b05607d5a90513e3fffc0d85c2",
      "tree": "f97e0f8bc9a1416b74485214eb75058c06c961c4",
      "parents": [
        "0e9de56d5e5ee44768102f7955e046f4046ef0b7"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Wed Sep 24 17:03:59 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Sep 24 17:03:59 2008 +0100"
      },
      "message": "[ospfd] Move passive interface check\n\n* ospf_packet.c: Apply passive check and drop for all packages\n  and not just Hellos.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "0e9de56d5e5ee44768102f7955e046f4046ef0b7",
      "tree": "6951c65602caf3f2ac646d4d5996641a220f3097",
      "parents": [
        "1a7dcf42a244d758732464be389f5cdb1358b9e4"
      ],
      "author": {
        "name": "Paul P Komkoff Jr",
        "email": "i@stingr.net",
        "time": "Wed Sep 24 16:42:35 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Sep 24 16:42:35 2008 +0100"
      },
      "message": "[build] Fix --enable-pie so it can actually be disabled\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "1a7dcf42a244d758732464be389f5cdb1358b9e4",
      "tree": "2ffaad12282dda97d2f180e6c0c0a52d9e38d595",
      "parents": [
        "2b2fc5606f035eabd322b3a6aad4349efb9ab542"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Sep 09 21:17:04 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Sep 09 21:17:04 2008 +0100"
      },
      "message": "[lib] re-enable conversion of v6mapped INET6 sockunions to regular INET\n\n* lib/sockunion.c: Re-enable conversion of v6mapped INET6 sockunions to\n  regular INET sockunions, which was disabled in 0df7c9, as it leads to\n  failures in sockunion_cmp.\n  (sockunion_normalise_mapped) consolidate here\n  (sockunion_accept) remove conversion code altogether here - no sockunion\n  is created\n  (sockunion_get{sockname,peername}) normalise newly created sockunion.\n"
    },
    {
      "commit": "6e1992638864c3847d35bf9442989bce4c81de13",
      "tree": "78ef25d50da4dbaf4aa219240852366d9ce9c176",
      "parents": [
        "2b2fc5606f035eabd322b3a6aad4349efb9ab542"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Sep 09 17:14:33 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Sep 09 17:14:33 2008 +0100"
      },
      "message": "[bgpd] Allow accepted peers to progress even if realpeer is in Connect\n\n* bgpd/bgp_packet.c: (bgp_open_receive) Try fix the little race in the FSM,\n  where a accept-peer that progress faster than realpeer gets closed down if\n  realpeer is still just in Connect, by allowing the realpeer to be\n  bgp_stop\u0027ed and doing the regular swapping-of-FSM state.\n"
    },
    {
      "commit": "2b2fc5606f035eabd322b3a6aad4349efb9ab542",
      "tree": "c689532d2328d0401c66e22023dc73d47141a028",
      "parents": [
        "ef16c8a2abd39b14fed45665eda5c293b93ee54b"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sat Sep 06 13:09:35 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sat Sep 06 13:09:35 2008 +0100"
      },
      "message": "[bgpd] Document the FSM dummy-peer race that sometimes afflicts session setup\n\n* bgp_packet.c: (bgp_open_receive) the accept-peer hack can sometimes\n  cause a race between two peers that try to establish sessions to each other,\n  causing session setup to fail when it should have succeeded. In the worst\n  case, the race can \u0027loop\u0027, causing prolonged failure to establish sessions.\n"
    },
    {
      "commit": "ef16c8a2abd39b14fed45665eda5c293b93ee54b",
      "tree": "3e8a386296fcc36ec3ffef6ebbf38da36c7cfdcf",
      "parents": [
        "b3bc68e5a4eecd85138463ae5742c2ccaa1db4bb",
        "62687ff1cd3d4460cdbd4b0fbf1e3298fe277ad2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Sep 04 13:52:38 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Sep 04 13:52:38 2008 +0100"
      },
      "message": "Merge branch \u0027restricted-mode\u0027\n"
    },
    {
      "commit": "b3bc68e5a4eecd85138463ae5742c2ccaa1db4bb",
      "tree": "57f3167f01485aee55ca6fb47dd9b87e0b01bd41",
      "parents": [
        "742c64ff34a79ad22982c433edd8d7cf32fd9cdf"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Sep 04 13:52:07 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Thu Sep 04 13:52:07 2008 +0100"
      },
      "message": "[ospfd] Minor enhancements to recent self-host-routes suppression patch\n\n\t* ospf_spf.c: (ospf_spf_process_stubs) Track whether\n\t  parent router vertex is the root, so that the host-route\n\t  suppression logic need only be activated for such vertices.\n\t  Move the actual logic to ospf_intra_add_stub.\n\t* ospf_route.c: (ospf_intra_add_stub) Main test of link moved\n\t  here, notionally more appropriate.\n"
    }
  ],
  "next": "742c64ff34a79ad22982c433edd8d7cf32fd9cdf"
}
