)]}'
{
  "commit": "d023f9ffae4b040335d12c1aa7409a9a15b7a3ac",
  "tree": "81b4d13e6a5bec9e4716aebc393225c468c54d57",
  "parents": [
    "5a0c1be698a044bc838f3e6c8b259fa52cf9981c"
  ],
  "author": {
    "name": "Paul Jakma",
    "email": "paul.jakma@hpe.com",
    "time": "Fri Sep 16 15:13:43 2016 +0100"
  },
  "committer": {
    "name": "Paul Jakma",
    "email": "paul@quagga.net",
    "time": "Fri Jan 27 14:53:32 2017 +0000"
  },
  "message": "bgpd: Rollback \"always send OPEN\" a little, to workaround test suite issues\n\n* \"bgpd: Send OPEN immediately on inbound connections\" doesn\u0027t play well with\n  some partial BGP implementations, test and conformance suites e.g., which\n  have rigid expectations about ordering and don\u0027t implement much of CD.\n\n  roll back, but only a little, by deferring OPEN sending on outbound till\n  receive.\n\n* bgpd.h: (struct peer) add PEER_STATUS_OPEN_DEFERRED status flag.\n  Kind of a sub-fsm.  Main FSM does not allow transition functions to\n  signal next-state - next-state is inflexibly fixed in the table -\n  so can\u0027t handle it cleanly at that level.\n* bgp_fsm.c: (bgp_connect_success) Defer sending open if the peer is\n  an accept-peer/inbound and there appears to be an outbound connection\n  in progress. Set PEER_STATUS_OPEN_DEFERRED to signal to bgp_open_receive\n  that an OPEN still must be sent.\n* bgp_packet.c: (bgp_open_receive) Send the OPEN here, when deferred.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "84fddeb9bf62847af6d5b5f98f867f16285915e8",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_fsm.c",
      "new_id": "4198a8e42c6b19e9063f0809a21858150cd900e8",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_fsm.c"
    },
    {
      "type": "modify",
      "old_id": "23d2f4a79dfbf23bfb5d4e69657d0b573eed7038",
      "old_mode": 33188,
      "old_path": "bgpd/bgp_packet.c",
      "new_id": "b497e4546ea929bac57ea0c001341286eafd6839",
      "new_mode": 33188,
      "new_path": "bgpd/bgp_packet.c"
    },
    {
      "type": "modify",
      "old_id": "c2df672c230dbf9b40c5f4bb52b5e558c0a270fc",
      "old_mode": 33188,
      "old_path": "bgpd/bgpd.h",
      "new_id": "03df2f6f13464de3ecb80cfea8ded06a7f846a97",
      "new_mode": 33188,
      "new_path": "bgpd/bgpd.h"
    }
  ]
}
