)]}'
{
  "commit": "4bab6806914dbb4b43f376ebf966a034a0ea72cd",
  "tree": "3b5e1cc5217bef269184e30795314de6ba8fafe5",
  "parents": [
    "ad5233a1bcdd7124992300673ad9c1035336eadd"
  ],
  "author": {
    "name": "Vipin Kumar",
    "email": "vipin@cumulusnetworks.com",
    "time": "Tue Sep 30 14:32:22 2014 -0700"
  },
  "committer": {
    "name": "Paul Jakma",
    "email": "paul@quagga.net",
    "time": "Tue Nov 11 17:26:04 2014 +0000"
  },
  "message": "Fix to take care of ordering between interface and router ospf command.\n\nSYMPTOM:\n\nInterface mode OSPF area configuration is not retained after restarting quagga.\n\nExample -\n\nquagga(config)# interface swp49\nquagga(config-if)# ip ospf area 0.0.0.0\n\nquagga# sh run\n\u003csnip\u003e\ninterface swp49\n ip ospf area 0.0.0.0\n ipv6 nd suppress-ra\n link-detect\n!\n\nquagga# write memory\n\n* Restart quagga at this point*\n\nquagga# sh run\n\u003csnip\u003e\ninterface swp49\n ipv6 nd suppress-ra\n link-detect\n!\n\nISSUE:\n\nThe issue is that the interface mode commands can reach the OSPF process even\nbefore \u0027router ospf\u0027 command that initializes the default OSPF instance, this\nis not getting handled properly in OSPF process.\n\nFIX:\n\nInitialize the default OSPF instance during OSPF process initializations, which\nis before \u0027router ospf\u0027 command is received in OSPF process. So, when interface\nmode command is received, it is guaranteed to have ospf instance to work with.\n\nOther way could be to call ospf_get() instead of ospf_lookup() while processing\nthe config command callbacks, although OSPF needs to have at least one instance\nstructure anyways, therefore calling it unconditionally in OSPF initializations\nshould be fine too.\n\nThere could be more elaborate fix(es) possible to handle this, like adding some\nordering mechanism for commands as they are read by a process, or storing the\nreceived command and applying it after the commands its dependent upon are\nprocessed. For the issue at hand, initializing the default instance in main()\nserves the purpose well.\n\nSigned-off-by: Vipin Kumar \u003cvipin@cumulusnetworks.com\u003e\nReviewed-by: Dinesh Dutt \u003cddutt@cumulusnetworks.com\u003e\nReviewed-by: Paul Jakma \u003cpaul@opensourcerouting.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "82735b731642cf1e90d1187d5257088ae63270d2",
      "old_mode": 33188,
      "old_path": "ospfd/ospf_main.c",
      "new_id": "96dfd5799ecf40aa9259349d9f18dc2b0eff9c73",
      "new_mode": 33188,
      "new_path": "ospfd/ospf_main.c"
    }
  ]
}
