)]}'
{
  "commit": "9c27ef9b9c26db0af507869c2866c4a8463f4ae7",
  "tree": "72279949d2ac9f10f6e62a5a18e332a8b4e02dd5",
  "parents": [
    "b9d92881f5d45601c4268d99baec8835068b73c2"
  ],
  "author": {
    "name": "Paul Jakma",
    "email": "paul.jakma@sun.com",
    "time": "Thu May 04 07:32:57 2006 +0000"
  },
  "committer": {
    "name": "Paul Jakma",
    "email": "paul.jakma@sun.com",
    "time": "Thu May 04 07:32:57 2006 +0000"
  },
  "message": "[ospfd] Fix SPF of virtual-links\n\n2006-04-24 Paul Jakma \u003cpaul.jakma@sun.com\u003e\n\n\t* (general) More Virtual-link fixes, again with much help in\n\t  testing / debug from Juergen Kammer. Primarily in SPF.\n\t* ospf_spf.h: Add guard. ospf_interface.h will include this\n\t  header.\n\t* ospf_interface.h: Modify ospf_vl_lookup definition to take\n\t  struct ospf as argument, so as to allow for NULL area\n\t  argument.\n\t  (struct ospf_vl_data) Remove out_oi, instead add a struct\n\t  vertex_nexthop, to use as initial nexthop for backbone paths\n\t  through a vlink.\n\t* ospf_interface.c: (ospf_vl_lookup) Modified to allow\n\t  NULL area to be passed to indicate \"any\" (first) area.\n\t  Add extra debug.\n\t  (ospf_vl_set_params) vl_oi -\u003e nexthop. Add extra debug.\n\t  (ospf_vl_up_check) Fix debug, inet_ntoa returns a static\n\t  buffer..\n\t* ospf_route.c: (ospf_intra_add_router) Vlinks dont go through\n\t  backbone, don\u0027t bother checking.\n\t* ospf_spf.c: (static struct list vertex_list) Record vertices\n\t  that will need to be freed.\n\t  (cmp) Order network before router vertices, as required,\n\t  wasn\u0027t implemented.\n\t  (vertex_nexthop_free) Mild additional robustness check.\n\t  (vertex_parent_free) Take void argument, as this function\n\t  is passed as list deconstructor for vertex parent list.\n\t  (ospf_vertex_new) More debug. Set deconstructor for parent\n\t  list. Track allocated vertices on the vertex_list.\n\t  (ospf_vertex_free) Get rid of the tricky recursive cleanup of\n\t  vertices. Now frees only the given vertex.\n\t  (ospf_vertex_add_parent) Fix assert.\n\t  (ospf_nexthop_calculation) Fix calculation of nexthop for\n\t  VLink vertices, lookup the vl_data and use its previously\n\t  recorded nexthop information.\n\t  (ospf_spf_calculate) Vertices are freed simply by deleting\n\t  vertex_list nodes and letting ospf_vertex_free as deconstructor\n\t  work per-node.\n\t  (ospf_spf_calculate_timer) Trivial optimisation, leave\n\t  backbone SPF calculation till last to reduce SPF churn on\n\t  VLink updates.\n\t* ospf_vty.c: (ospf_find_vl_data) update call to ospf_vl_lookup\n\t  (no_ospf_area_vlink_cmd) ditto.\n\t  (show_ip_ospf_interface_sub) For Vlinks, the peer address is\n\t  more interesting than the output interface.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ac596705dd7076d6e03821eee010db4f7466243a",
      "old_mode": 33188,
      "old_path": "ospfd/ChangeLog",
      "new_id": "99599f54f69191e6aa1fa112d1c043d9f7d843a6",
      "new_mode": 33188,
      "new_path": "ospfd/ChangeLog"
    },
    {
      "type": "modify",
      "old_id": "52adc420871a93e88d77679f55569fe3692a5134",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_interface.c",
      "new_id": "1264cac6b4e03103ff1a9482a1969427f6712e74",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_interface.c"
    },
    {
      "type": "modify",
      "old_id": "28d95d7edcffedcbf9bb551cfe4caf1dadfd666a",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_interface.h",
      "new_id": "3c759405154accd3d5b66149a218ce4ea56fb156",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_interface.h"
    },
    {
      "type": "modify",
      "old_id": "5eedbd82e5cfb7605a18943fe2c99be366a637d2",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_route.c",
      "new_id": "646b625fc0829733f8286384dbd17dfc2982e40a",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_route.c"
    },
    {
      "type": "modify",
      "old_id": "dbd06361285d4bcc4aa5c5078a02860c1f219086",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_spf.c",
      "new_id": "7228d2d4140998e3229c7382b01601812da0eca8",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_spf.c"
    },
    {
      "type": "modify",
      "old_id": "50e590d6ca4f286f2de5122b93516b2072f36954",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_spf.h",
      "new_id": "c1316e4ccf04490388c9f48af6bd549bd481a0ac",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_spf.h"
    },
    {
      "type": "modify",
      "old_id": "0b74bdf195c77f444c44a9b657d7e03e70739142",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_vty.c",
      "new_id": "74361bcb6f091c6be9a5e01590c7bb0e3bf79fb8",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_vty.c"
    }
  ]
}
