)]}'
{
  "commit": "8f1c1201199a924eeba31494be5aa6bf13eb3fa0",
  "tree": "7f42f39cbd8bbfc834da9bb85a2602d084a5f844",
  "parents": [
    "54fcb7c29ce2fabe109286e3c4dfeb297e0f3916"
  ],
  "author": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Wed Mar 08 00:43:33 2023 +0000"
  },
  "committer": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Tue Mar 14 11:35:30 2023 +0000"
  },
  "message": "[dhcp] Unregister ProxyDHCP and PXEBS settings on a successful DHCPACK\n\nWhen a DHCP transaction does not result in the registration of a new\n\"proxydhcp\" or \"pxebs\" settings block, any existing settings blocks\nare currently left unaltered.\n\nThis can cause surprising behaviour.  For example: when chainloading\niPXE, the \"proxydhcp\" and \"pxebs\" settings blocks may be prepopulated\nusing cached values from the previous PXE bootloader.  If iPXE\nperforms a subsequent DHCP request, then the DHCP or ProxyDHCP servers\nmay choose to respond differently to iPXE.  The response may choose to\nomit the ProxyDHCP or PXEBS stages, in which case no new \"proxydhcp\"\nor \"pxebs\" settings blocks may be registered.  This will result in\niPXE using a combination of both old and new DHCP responses.\n\nFix by assuming that a successful DHCPACK effectively acquires\nownership of the \"proxydhcp\" and \"pxebs\" settings blocks, and that any\nexisting settings blocks should therefore be unregistered.\n\nReported-by: Henry Tung \u003chtung@palantir.com\u003e\nSigned-off-by: Michael Brown \u003cmcb30@ipxe.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a1a481e198e7897b53a3337d762ab6fbbc1cf869",
      "old_mode": 33188,
      "old_path": "src/net/udp/dhcp.c",
      "new_id": "bd2c4a197ad342ca5a95bef475bf2a973dc06329",
      "new_mode": 33188,
      "new_path": "src/net/udp/dhcp.c"
    }
  ]
}
