)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "742c64ff34a79ad22982c433edd8d7cf32fd9cdf",
      "tree": "cd8e57bebdc1a930223ed71966c56c787b004820",
      "parents": [
        "06fb2828f183a7099ecbfd12235e1203f8f0459a",
        "910e2704bee6bf78aee858db65f5393be618e683"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Sep 03 09:00:44 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Wed Sep 03 09:00:44 2008 +0100"
      },
      "message": "Merge commit \u0027remotes/jocke/delete_ghost_route\u0027\n"
    },
    {
      "commit": "06fb2828f183a7099ecbfd12235e1203f8f0459a",
      "tree": "b896fa5a5245220a4941c311158e0a93dca2d088",
      "parents": [
        "a49eb30a178547189147c8a35bf9e35f429abb66",
        "53d0deceeb855493aa03c59477f8af7f6bb75140"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Sep 02 21:50:50 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Sep 02 21:50:50 2008 +0100"
      },
      "message": "Merge commit \u002753d0deceeb855493aa03c59477f8af7f6bb75140\u0027\n"
    },
    {
      "commit": "a49eb30a178547189147c8a35bf9e35f429abb66",
      "tree": "5d660dead08f4a98498240fefb86202000210932",
      "parents": [
        "5d7bdd0ed9595f515bdfaa8af76fcfd41be7a6a6"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Tue Sep 02 19:06:31 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Sep 02 21:38:00 2008 +0100"
      },
      "message": "[ospfd] Restructure opsf_if_update() and ospf_network_run()\n\n    Add an struct interface paramenter and adjust the affected\n    code accordingly.\n\n    The old code was a mess looping over all interfaces several times\n    when one interface was added/changed.\n\n    * ospfd/ospfd.h: Add struct interface parameter to ospf_if_update()\n    * ospfd/ospf_zebra.c: Add ifp arg to ospf_if_update() calls.\n      (ospf_interface_address_delete) delete ospf_if_update() call,\n      redundant as function calls ospf_if_free() itself.\n    * ospfd/ospfd.c: (ospf_network_unset) handle deconfiguration here,\n      rather than ospf_if_update.\n      (ospf_network_run_interface) ospf_network_run, for\n      any given interface.\n      (ospf_network_run) move guts to previous, and use it.\n      (ospf_if_update) Adjust to take struct interface as argument, as\n      all callers have a specific ifp in mind.\n      Iterate over ifp\u0027s connected list and call ospf_network_run_interface\n      instead of ospf_network_run, turning this path into O(nm) rather\n      than O(n^2).\n      Adjust all code dealing with opsf_if_update and ospf_network_run to\n      pass the new struct interface * arg.\n\n     (some minor modifications and bug-additions by Paul Jakma).\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "5d7bdd0ed9595f515bdfaa8af76fcfd41be7a6a6",
      "tree": "c54c1c217a1742549ea1f1067419574aa1366d35",
      "parents": [
        "d6bb5aa52793979616f0bfc5f38a0eb2e5f1c7e4",
        "35f891404a6d2f0d034ca0fb724904db72baf552",
        "fb62a3cef5960885119f9e87c833520ddf2a9b49"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Mon Sep 01 20:19:14 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Mon Sep 01 20:19:14 2008 +0100"
      },
      "message": "Merge commit \u0027remotes/jocke/ospf_neighbour\u0027; commit \u0027remotes/jocke/snmp_crosscompile\u0027\n"
    },
    {
      "commit": "d6bb5aa52793979616f0bfc5f38a0eb2e5f1c7e4",
      "tree": "8b516fd17f2ba531372734c98ca5b8e665ce2712",
      "parents": [
        "19a937224469055beb7dfce73ba452e3a33c89ed"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Aug 26 22:15:03 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Aug 26 22:15:03 2008 +0100"
      },
      "message": "[doc] Update HACKING to reflect SCM changes and latest practice\n"
    },
    {
      "commit": "19a937224469055beb7dfce73ba452e3a33c89ed",
      "tree": "a16e32aa133ac796c051c0fdddb58d08022feeb2",
      "parents": [
        "6556d8a04079eb54d1805df3bef3e66ff1267d02"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Aug 26 14:49:40 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Aug 26 15:05:54 2008 +0100"
      },
      "message": "test\n"
    },
    {
      "commit": "6556d8a04079eb54d1805df3bef3e66ff1267d02",
      "tree": "35b35c8f7fbad9e6622ab8adfd9f5d71e2cfc541",
      "parents": [
        "b38309a4ee831a440ef78f8a27db584f2f8e8276"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Aug 26 14:33:28 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Tue Aug 26 14:33:28 2008 +0100"
      },
      "message": "Revert \"[bgpd] Add \u0027bgp open-accept\u0027 option, to send OPEN immediately on accepted conns\"\n\nRevert commit d664ae1182c29b74b409bc8594b7bd0575e91ce9. An experimental\npatch which violates RFC4271 quite badly, but managed to accidently sneak\nits way in.\n"
    },
    {
      "commit": "53d0deceeb855493aa03c59477f8af7f6bb75140",
      "tree": "d90d9bffb35916108d9ce155c5c991edfea18395",
      "parents": [
        "b38309a4ee831a440ef78f8a27db584f2f8e8276"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Fri May 30 16:04:39 2008 +0200"
      },
      "committer": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Mon Aug 25 09:52:06 2008 +0200"
      },
      "message": "Set destination for PtP links to OSPF_ALLSPFROUTERS.\n\nUpdate ospf_db_desc_send(), ospf_ls_upd_queue_send() and ospf_ls_req_send()\nto always use OSPF_ALLSPFROUTERS for PtP links.\n\nSee RFC 2328, chap 8.1 for details:\n\n    \"The IP destination address for the packet is selected as\n     follows.  On physical point-to-point networks, the IP\n     destination is always set to the address AllSPFRouters.\"\n\nWithout this, it won\u0027t be possible to establish adjacencies on\nmultiple unnumbered links to the same router.\nChangeLog:\n2008-07-25 Joakim Tjernlund \u003cJoakim.Tjernlund@transmode.se\u003e\n\n\t* ospfd/ospf_packet.c: Set destination for PtP links to\n\t  OSPF_ALLSPFROUTERS.\n"
    },
    {
      "commit": "910e2704bee6bf78aee858db65f5393be618e683",
      "tree": "881c792fa2424d34c485e23b368a57c9c6a6daaa",
      "parents": [
        "b38309a4ee831a440ef78f8a27db584f2f8e8276"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Wed Aug 20 14:24:39 2008 +0200"
      },
      "committer": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Mon Aug 25 09:50:17 2008 +0200"
      },
      "message": "Ignore host routes to self.\n\nPtP links with /32 masks adds host routes to the remote host,\nsee RFC 2328, 12.4.1.1, Option 1.\nMake sure that such routes are ignored\n"
    },
    {
      "commit": "fb62a3cef5960885119f9e87c833520ddf2a9b49",
      "tree": "cf6c5cde38c91ad555021f44793b92fd34de8198",
      "parents": [
        "b38309a4ee831a440ef78f8a27db584f2f8e8276"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Tue May 13 20:03:32 2008 +0200"
      },
      "committer": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Mon Aug 25 09:48:30 2008 +0200"
      },
      "message": "Make --enable-snmp cross compile and make libcrypto optional with --without-crypto\n\nAutoconfig work by me, the rest was done by\n\"Kirill K. Smirnov\" \u003clich@math.spbu.ru\u003e\n"
    },
    {
      "commit": "35f891404a6d2f0d034ca0fb724904db72baf552",
      "tree": "c88b3a0ed05fa5664e0a731792619b6134230231",
      "parents": [
        "b38309a4ee831a440ef78f8a27db584f2f8e8276"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Tue Jul 01 16:54:07 2008 +0200"
      },
      "committer": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Mon Aug 25 09:44:18 2008 +0200"
      },
      "message": "Fix SEGV in ip ospf neighbor all\n\nDont use vty-\u003eindex in show_ip_ospf_neighbor_all_cmd(),\nIt is invalid, use ospf_lookup() instead.\n"
    },
    {
      "commit": "62687ff1cd3d4460cdbd4b0fbf1e3298fe277ad2",
      "tree": "6bea5c1cf07d9d702c95fabe356fcec418b91398",
      "parents": [
        "b38309a4ee831a440ef78f8a27db584f2f8e8276"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sat Aug 23 14:27:06 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sat Aug 23 14:27:06 2008 +0100"
      },
      "message": "[vty] Add support for a \u0027restricted mode\u0027 with anonymous vty connections\n\n\t* lib/command.h: Add a RESTRICTED_NODE, intended for use with\n\t  anonymous, \u0027no login\u0027 vtys, to provide a subset of \u0027view\u0027 mode\n\t  commands.\n\t* lib/command.c: Add RESTRICTED_NODE bits, nothing special, just\n\t  following VIEW_NODE.\n\t* lib/vty.c: (vty_auth) enable authentication should fall back to\n\t  restricted/view node as appropriate.\n\t  (vty_create) init vty\u0027s to restricted/view node as appropriate,\n\t  for the \u0027no login\u0027 case.\n\t  (vty_{no_,}restricted_mode_cmd) config commands to enable\n\t  \u0027anonymous restricted\u0027 in vty configuration.\n\t  (vty_config_write) \u0027anonymous restricted\u0027 config.\n\t  (vty_init) Install some commands to restricted mode, and the\n\t  \u0027anonymous restricted\u0027 config commands into VTY_NODE.\n\t* bgpd/*.c: Install some of the safe(r) BGP commands into\n\t  \u0027restricted mode\u0027, i.e. lookup commands of non-sensitive data.\n\t  Useful with looking-glass route-servers.\n"
    },
    {
      "commit": "b38309a4ee831a440ef78f8a27db584f2f8e8276",
      "tree": "8a367cc995ceae79dbb3dc4d480244bbd01386df",
      "parents": [
        "5515de330cf6c5449c0a56862072750b07d23fd7"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sat Aug 23 08:36:42 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Sat Aug 23 08:36:42 2008 +0100"
      },
      "message": "[trivia] Make \u0027make dist\u0027 happy about ChangeLog expunge\n\n\t* ChangeLog: Add back a dummy, top-level ChangeLog\n\t* m4/Makefile.am: remove ChangeLog from EXTRA_DIST, why it was\n\t  listed there, who knows.\n"
    },
    {
      "commit": "5515de330cf6c5449c0a56862072750b07d23fd7",
      "tree": "4651f48d94ba97117d84fdaa2210563676adc8df",
      "parents": [
        "d68cbf9261869e532dfdd14dbb4122b3f3feb0d4"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Wed Mar 21 12:41:22 2007 +0000"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 20:02:08 2008 +0100"
      },
      "message": "[administrivia] Update gitignore files\n\n- Add more stuff, archive libraries, etc..\n"
    },
    {
      "commit": "d68cbf9261869e532dfdd14dbb4122b3f3feb0d4",
      "tree": "5cc873e6a38a3db9ad5fb4dfe579624ff7693c13",
      "parents": [
        "3998bfd76620a676fbd77f19c5c6ea80a4cc88d2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Sat Oct 21 18:35:27 2006 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 20:00:46 2008 +0100"
      },
      "message": "[administrivia] Git should ignore backup files and .loT files\n"
    },
    {
      "commit": "3998bfd76620a676fbd77f19c5c6ea80a4cc88d2",
      "tree": "66bf93340e55bb06b25544ef04afec3749269391",
      "parents": [
        "e5248434c0d287668be956a2bd52399d67b16c39"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Tue Aug 19 14:13:43 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:57:22 2008 +0100"
      },
      "message": "[trivia] Remove ChangeLog files, as this data is now maintained in SCM\n"
    },
    {
      "commit": "e5248434c0d287668be956a2bd52399d67b16c39",
      "tree": "6942a3563d2f9014d85f0cee1502a4d4f614cdfa",
      "parents": [
        "f3019aff2421d9c3d16498f22cd245e3f8948d4c"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Aug 17 18:08:24 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:26 2008 +0100"
      },
      "message": "[zebra] trivial: fix spelling mistake\n"
    },
    {
      "commit": "f3019aff2421d9c3d16498f22cd245e3f8948d4c",
      "tree": "e5630448e6bf0697cbdb35e42054ef84763bda21",
      "parents": [
        "ef9b113e2d4c0d49bd7d61458fa9acc113658d2c"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Aug 17 17:51:47 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:26 2008 +0100"
      },
      "message": "[bgpd] remove useless check and return in bgp_config_write_damp\n\n2008-08-17 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* bgp_damp.?: (bgp_config_write_damp) remove useless check\n\t  of statically allocated config storage, and useless return\n\t  value\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "ef9b113e2d4c0d49bd7d61458fa9acc113658d2c",
      "tree": "f2f57b5c771e7709be26daefa2861cd657764aeb",
      "parents": [
        "d145bc008a03889fff8949890cb8c532ee6aff74"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Aug 17 17:44:47 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:26 2008 +0100"
      },
      "message": "[zebra] trivia: static qualifiers for metaq\n\n2008-08-17 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* zebra_rib.c: (process_subq) mark static\n\t  (rib_meta_queue_add) ditto\n\t  (meta_queue_new) ditt\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "d145bc008a03889fff8949890cb8c532ee6aff74",
      "tree": "f8bb5b09a4ca2c3f8fa0e93ae6d8a8acd46d3889",
      "parents": [
        "16814f9698a3ee14b1412286c53711a562c348fc"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Aug 17 17:41:37 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[zebra] make some data local\n\n2008-06-17 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* zebra_rib.c: static qualifier on local data\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "16814f9698a3ee14b1412286c53711a562c348fc",
      "tree": "9fb7ec8e786b648f0c74f0aeff5ff959dc663d18",
      "parents": [
        "4c699477d24e7104893130d072963df5cea17214"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Aug 17 17:39:31 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[zebra] ignore dead routes in RIB update\n\n2008-08-17 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* zebra_rib.c: When doing a RIB update, routes in process of removal\n\t  should be ignored. This fixes bugs where a route is removed but a\n\t  recursive route is not changed.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "4c699477d24e7104893130d072963df5cea17214",
      "tree": "9e4336586dd07868f905c87a4a7479e2b8b0795f",
      "parents": [
        "898987e976e8f7a50a4549475ab4970a85895f31"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Aug 17 17:01:44 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[zebra:linux] netlink: no need to change privs for receive\n\n2008-06-17 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* rt_netlink.c: (netlink_parse_info) Linux doesn\u0027t check privledges\n\t  on receive, so avoid the overhead of lowering and raising the\n\t  priviledges on each received message\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "898987e976e8f7a50a4549475ab4970a85895f31",
      "tree": "7e0b44b20459f8aa30a1c7e12e463b6088fcff74",
      "parents": [
        "30afea3b584515ba19b38fcde6f562a550c1fcab"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Aug 17 16:56:15 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[zebra:linux] netlink: quiet harmless errors\n\n2008-06-17 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* rt_netlink.c: (netlink_parse_info) There can be harmless races\n\t  such as adding an existing route, or deleting an already deleted\n\t  route. Don\u0027t bother logging these unless debugging is turned on.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "30afea3b584515ba19b38fcde6f562a550c1fcab",
      "tree": "f39773af1c2c29518fbbc222f2dd4948be2484ef",
      "parents": [
        "cadfb2cd81528fc6f85af24dbf0ff3fd0ff63e6b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sat Aug 16 18:25:47 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[zebra:linux] netlink buffer size tweaking only needed on receive socket\n\n2008-08-16 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* rt_netlink.c: (netlink_recvbuf) consolidate recvbuf setting\n\t  (netlink_socket) no need to set receive buffer on netlink sockets\n\t  generally\n\t  (kernel_init) set recvbuffer on the listen socket\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "cadfb2cd81528fc6f85af24dbf0ff3fd0ff63e6b",
      "tree": "9b21ab9fe0e4836dc1ea11e0571f4f4ba458d94d",
      "parents": [
        "4cde931e2d5a83708cf55e63eae7b629e8e4296a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sat Aug 16 18:03:44 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[build] Linux netlink doesn\u0027t need IF_PROC\n\n2008-08-16 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* configure.ac: If netlink is available, then that is how the\n\tinitial routes and interfaces should be read, rather than through\n\t/proc, so don\u0027t set IF_PROC.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "4cde931e2d5a83708cf55e63eae7b629e8e4296a",
      "tree": "09cdea4432cca881b390b9499914a9acb130d78b",
      "parents": [
        "3d265b4d9d748bf4c92aefebc2ca0c04fd607945"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sat Aug 16 17:51:27 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[zebra:linux] clean up blocking setting of netlink sockets\n\n2008-08-16 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* zebra/rt_netlink.c: This change removes the overhead of twiddling\n          the socket twice on every route change. The netlink support has\n          two sockets, one is used for request/response and should always\n          block. The other is used for asynchronous notification and should\n          always be non-blocking.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "3d265b4d9d748bf4c92aefebc2ca0c04fd607945",
      "tree": "45bdddf4ce6736d8f4dd9091ce20313eae894572",
      "parents": [
        "30a2231a4881f53deca61ef7a62b225a43dab4c5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sat Aug 16 17:30:39 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:56:25 2008 +0100"
      },
      "message": "[zebra:linux] Filter out unwanted netlink messages by PID\n\n2008-08-16 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* zebra/rt_netlink.c: Update the netlink socket BPF to cancel out\n\t  unwanted ACKs on the listen socket by matching on the PID.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "30a2231a4881f53deca61ef7a62b225a43dab4c5",
      "tree": "f26dff922a4f85d302fa67bbd9a120108db41c44",
      "parents": [
        "f5612dd382d9c0f4089b08ec164c25a8082d9f89"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Aug 15 14:05:22 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:59 2008 +0100"
      },
      "message": "[warnings] Fix various SOS warnings\n\n2008-08-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* */*: Fix various problems flagged by Sun Studio compiler.\n\t  - \u0027\u003cqualifier\u003e \u003cstorage\u003e\u0027 obsolescent in declarations\n\t  - empty statements (\u0027;\u0027 after ALIAS definitions)\n\t  - implicit declarations (e.g printstack in lib/log.c)\n\t  - \"\\%\" in printf string instead of \"%%\"\n\t  - loops that return on the first iteration (legitimately, but\n \t    compiler can\u0027t really know), e.g. bgp_routemap.c\n \t  - internal declarations which mask prototypes.\n"
    },
    {
      "commit": "f5612dd382d9c0f4089b08ec164c25a8082d9f89",
      "tree": "6766dccbdf57cc0b936d622c8172ae7a9f8cfc6e",
      "parents": [
        "6ac29a51075def99217a4ab1015635db3b3e83ed"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Aug 15 14:05:08 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:58 2008 +0100"
      },
      "message": "[lib] Fix mistake in tcp-md5sig commit which broke compile on BSD\n\n2008-08-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* lib/sockopt.c: (sockopt_tcp_signature) ifdef\u0027ing hid variable\n\t  declaration for HAVE_DECL_TCP_MD5SIG \u0026\u0026 !GNU_LINUX, breaking\n\t  compile - fix.\n"
    },
    {
      "commit": "6ac29a51075def99217a4ab1015635db3b3e83ed",
      "tree": "1152b55eb3a2099c67a0ba8e62d7e41f07e00135",
      "parents": [
        "1423c809cc4ddc2e013ba6264c49a11e5719c6f2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Fri Aug 15 13:45:30 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:58 2008 +0100"
      },
      "message": "[trivia] finish off static\u0027ification of ospf6d and ripngd\n\n2008-08-15 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* {ospf6d,ripngd}/*: Finish job of marking functions as static, or\n\t  exporting declarations for them, to quell warning noise with\n\t  Quagga\u0027s GCC default high-level of warning flags. Thus allowing\n\t  remaining, more useful warnings to be more easily seen.\n"
    },
    {
      "commit": "1423c809cc4ddc2e013ba6264c49a11e5719c6f2",
      "tree": "db0389e7de020bbcb9fd78d45417b0842a6adb0b",
      "parents": [
        "89d9fa301e146193093ff876f96b3612dc390bbb"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Thu Aug 14 17:59:25 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:58 2008 +0100"
      },
      "message": "[lib] mes_lookup string lookup table argument should be marked const\n\n2008-08-14 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* lib/log.{c,h}: struct message argument should point to const\n\t* */*.c: adjust to suit,\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "89d9fa301e146193093ff876f96b3612dc390bbb",
      "tree": "b4e20ad3c60f8299f0c69a72d039d17f5222a9de",
      "parents": [
        "6072b24eb776e6486f076b1762d3650e803954c2"
      ],
      "author": {
        "name": "Paul Jakma",
        "email": "paul.jakma@sun.com",
        "time": "Thu Aug 14 17:04:57 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:58 2008 +0100"
      },
      "message": "[trivia] ignore automake generated \u0027compile\u0027 file\n"
    },
    {
      "commit": "6072b24eb776e6486f076b1762d3650e803954c2",
      "tree": "d6a305760bdd5b612be661ae53e32325990337aa",
      "parents": [
        "ffe11cfb0a808ae514193438616dfabc512b4cf6"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Thu Aug 14 16:52:26 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:58 2008 +0100"
      },
      "message": "[zebra] mark some rt_netlink functions static\n\n2008-08-14 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* zebra/rt_netlink.c: local functions should be static.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "ffe11cfb0a808ae514193438616dfabc512b4cf6",
      "tree": "94452dba2c1a49d6e6a0782c6513acb36823cefc",
      "parents": [
        "9fd4958a4eef88c536e4a5aeefce302e10ee8ee6"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Thu Aug 14 16:25:25 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:58 2008 +0100"
      },
      "message": "[lib] hash compare function arguments ought to be const qualified\n\n2008-08-14 Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\n\n\t* lib/hash.h: (struct hash) Hash comparator callback really\n\t  ought to treat storage behind arguments as constant - a compare\n\t  function with side-effects would be evil.\n\t* */*.c: Adjust comparator functions similarly, thus fixing at least\n\t  a few compiler warnings about const qualifier being dropped.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "9fd4958a4eef88c536e4a5aeefce302e10ee8ee6",
      "tree": "b014b5fe3a94a6eab059632fea56929b335cbe28",
      "parents": [
        "69954565621127a62c11ec315b175b930230c217"
      ],
      "author": {
        "name": "Daniel Ng",
        "email": "daniel_ng11@lycos.com",
        "time": "Wed Aug 13 20:37:52 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:57 2008 +0100"
      },
      "message": "[ospfd] Default route needs to be refreshed after neighbour state change\n\n2008-08-13 Daniel Ng \u003cdaniel_ng11@lycos.com\u003e\n\n\t* ospf_nsm.c: (nsm_change_state) Refresh default route on\n\t  state change - a hack, but it works.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    },
    {
      "commit": "69954565621127a62c11ec315b175b930230c217",
      "tree": "3ed8c676746cf5ffada57f866923cef445de938c",
      "parents": [
        "6a270cd93d02a88709e7292684db47552b630abf"
      ],
      "author": {
        "name": "Jingjing Duan",
        "email": "Jingjing.Duan@sun.com",
        "time": "Wed Aug 13 19:29:47 2008 +0100"
      },
      "committer": {
        "name": "Paul Jakma",
        "email": "paul@quagga.net",
        "time": "Fri Aug 22 19:52:57 2008 +0100"
      },
      "message": "[isisd:DLPI] Try open vanity-named DLPI dev before style 1,2\n\n2008-08-13 Jingjing Duan \u003cJingjing.Duan@sun.com\u003e\n\n\t* isisd/isis_dlpi.c: (open_dlpi_dev) Clearview-UV device nodes are\n\t  under /dev/net, try opening there before attempting style 1 or 2\n\t  names.\n\nSigned-off-by: Paul Jakma \u003cpaul@quagga.net\u003e\n"
    }
  ],
  "next": "6a270cd93d02a88709e7292684db47552b630abf"
}
