)]}'
{
  "commit": "4f1735fd6ac5d0881bafa9bd421e00645b6c60fd",
  "tree": "ec6039710bef675594c4ce50aa488bfb64e4157b",
  "parents": [
    "cba1fab2d7e22921a03b8b886772daec8b5977c4"
  ],
  "author": {
    "name": "Matthias Ferdinand",
    "email": "mf@14v.de",
    "time": "Mon Dec 26 16:35:30 2011 +0400"
  },
  "committer": {
    "name": "Denis Ovsienko",
    "email": "infrastation@yandex.ru",
    "time": "Mon Jan 02 19:13:58 2012 +0400"
  },
  "message": "zebra: fix ifindex test condition (BZ#487)\n\nWhen the same ip address is used on several interfaces,\nand one of them gets deleted (or equivalent: set to down and\nthen address removed), rib_delete_ipv[46] will also remove\nthe connected route from other interfaces.\n\nrib_delete_ipv[46] is called twice when an interface is\ndeleted:\n    - for the \"ifdown\" event\n    - for the address removal\n(note: this may be specific to the netlink interface of linux)\nThe second call does not find the connected route to that same\nifindex anymore, but deletes similar connected routes to any\nother ifindex instead.\n\nReason: the ifindex check is on the same level as the check\nfor ZEBRA_ROUTE_CONNECT/NEXTHOP_TYPE_IFINDEX. If everything\nmatches except for the ifindex, the \"else\" part (intended for\ndifferent route types) is executed, thus removing the route\nfrom the wrong interface.\n\nfix: move ifindex check inside the \"then\" part of the check\nfor ZEBRA_ROUTE_CONNECT/NEXTHOP_TYPE_IFINDEX. Now connected\nroutes to other ifindexes will not spill over to the \"else\"\npart for different route types anymore.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "72633895709e29b103e915caf25ea39f0e994160",
      "old_mode": 33188,
      "old_path": "zebra/zebra_rib.c",
      "new_id": "d239501d33ef6b6c6a286053dec9f2a124d1dd22",
      "new_mode": 33188,
      "new_path": "zebra/zebra_rib.c"
    }
  ]
}
