)]}'
{
  "commit": "6c88b44dcb26b60bb1f93e5c387aa102019ed849",
  "tree": "772aacb2702dd635ca271ceca966986e38ecb3be",
  "parents": [
    "cca85d27a59c31e1b20e4c4adc7d9bb57606e584"
  ],
  "author": {
    "name": "Chris Caputo",
    "email": "ccaputo@alt.net",
    "time": "Tue Jul 27 16:28:55 2010 +0000"
  },
  "committer": {
    "name": "Paul Jakma",
    "email": "paul@quagga.net",
    "time": "Mon Mar 21 13:15:32 2011 +0000"
  },
  "message": "bgpd: fix bgp_node locking issues\n\n* bgpd: Connected table locks were being locked but not unlocked, such that\n  eventually a lock would exceed 2^31 and become negative, thus triggering\n  an assert later on.\n* bgp_main.c: (bgp_exit) delete connected elements along with ifp\u0027s.\n* bgp_nexthop.c: (bgp_nexthop_lookup{,_ipv6}) add missing unlocks\n  (bgp_multiaccess_check_v4) ditto\n  (bgp_connected_{add,delete}) Use a distinct memtype for bgp_connected_ref.\n  (bgp_scan_finish) reset the nexthop cache to clean it up when bgpd exits\n* bgp_route.c: fix missing bgp_node unlocks\n* lib/memtype.c: (memory_list_bgp) add MTYPE_BGP_CONN\n* testing: has been tested for almost 2 months now.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9d14683caf3780242d615267d02976acdc0a8886",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_main.c",
      "new_id": "1a460c6bbecd7d6814e27c91851df6967de354e3",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_main.c"
    },
    {
      "type": "modify",
      "old_id": "0cde665eb380e4d2585d3d8595d7a41b249d30ca",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_nexthop.c",
      "new_id": "719cb966cd61d55075a20e142b3c3eafc1476a39",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_nexthop.c"
    },
    {
      "type": "modify",
      "old_id": "60e9610ef18a749addf9dbcec272673928d6af8e",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_route.c",
      "new_id": "ed98ac0afb89dc54e3ab77881d10b17278f9f4f0",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_route.c"
    },
    {
      "type": "modify",
      "old_id": "05d932252724b3ff34fcb6faf790621f61530de9",
      "old_mode": 33188,
      "old_path": "lib/memtypes.c",
      "new_id": "5902067182dc7aa7126f5c3a3cd657f5ddea1123",
      "new_mode": 33188,
      "new_path": "lib/memtypes.c"
    }
  ]
}
