)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f302d28d60827d026f378db046d511278a008b2b",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_zebra.c",
      "new_id": "e27f1394ca9fabb076874cd4ee3a2ea5f87d30e8",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_zebra.c"
    },
    {
      "type": "modify",
      "old_id": "a4c4fac31d55e4c0a118925a6b0803cc068c6075",
      "old_mode": 33188,
      "old_path": "ospfd/ospfd.c",
      "new_id": "32580ccf1d6a994c9497d38fadd848bfceabcad9",
      "new_mode": 33188,
      "new_path": "ospfd/ospfd.c"
    },
    {
      "type": "modify",
      "old_id": "b618711159403a89cb675e7f6fae05b7c2c125a1",
      "old_mode": 33188,
      "old_path": "ospfd/ospfd.h",
      "new_id": "6a60e86f2192a60f391a88d253a66a087ec7d753",
      "new_mode": 33188,
      "new_path": "ospfd/ospfd.h"
    }
  ]
}
