)]}'
{
  "commit": "f018db83a0746f9336d04e50dd06f3bbf6565f1c",
  "tree": "4c2ba0e661abd2651ee6fa1bd7be9157c8859411",
  "parents": [
    "343aa82219c0cab0315e29267eb303127215caea"
  ],
  "author": {
    "name": "Jorge Boncompte [DTI2]",
    "email": "jorge@dti2.net",
    "time": "Mon May 07 16:53:10 2012 +0000"
  },
  "committer": {
    "name": "David Lamparter",
    "email": "equinox@opensourcerouting.org",
    "time": "Tue May 22 20:35:50 2012 +0200"
  },
  "message": "bgpd: optimize bgp_aggregate_[increment|decrement]()\n\n  If there were no aggregates configured this functions were allocating\nand freeing a struct bgp_node for every call, and it\u0027s called for every\nprefix received.\n\n* bgp_route.c: Bail out early if the there are no aggregates configured.\n  Change from bgp_node_get() to bgp_node_lookup() that does not allocate\n  a new struct bgp_node if not found.\n\nSigned-off-by: Jorge Boncompte [DTI2] \u003cjorge@dti2.net\u003e\nSigned-off-by: David Lamparter \u003cequinox@opensourcerouting.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ce0b57b91eb6a7cfdb8c7ea688d374fbba283e2c",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_route.c",
      "new_id": "cd8f3fea98c3a9dff1de9576cb408bcd6bce641f",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_route.c"
    }
  ]
}
