)]}'
{
  "commit": "9bbe77669c6e2b71826449d854f5aa0e2cee7767",
  "tree": "9b396129645d4933c72e9f50497637b7f53a906a",
  "parents": [
    "170bbfd4875b2a3479101b5f5892cdedcf857fd0"
  ],
  "author": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Tue Mar 26 15:17:23 2024 +0000"
  },
  "committer": {
    "name": "Michael Brown",
    "email": "mcb30@ipxe.org",
    "time": "Tue Mar 26 15:57:58 2024 +0000"
  },
  "message": "[efi] Extract basic network settings from loaded image device path\n\nThe UEFI HTTP boot mechanism is extraordinarily badly designed, even\nby the standards of the UEFI specification in general.  It has the\nsymptoms of a feature that has been designed entirely in terms of user\nstories, without any consideration at all being given to the\nunderlying technical architecture.  It does work, provided that you\nare doing precisely and only what was envisioned by the product owner.\nIf you want to try anything outside the bounds of the product owner\u0027s\nextremely limited imagination, then you are almost certainly about to\nenter a world of pain.\n\nAs one very minor example of this: the cached DHCP packet is not\navailable when using HTTP boot.  The UEFI HTTP boot code does perform\nDHCP, but it pointlessly and unhelpfully throws away the DHCP packet\nand trashes the network interface configuration before handing over to\nthe downloaded executable.\n\nWork around this imbecility by parsing and applying the few network\nconfiguration settings that are persisted into the loaded image\u0027s\ndevice path.  This is limited to very basic information such as the IP\naddress, gateway address, and DNS server address, but it does at least\nprovide enough for a functional routing table.\n\nSigned-off-by: Michael Brown \u003cmcb30@ipxe.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e042b97580db6f8bfbec96811653390085e81b35",
      "old_mode": 33188,
      "old_path": "src/include/ipxe/settings.h",
      "new_id": "424188deb5eafc611213b0de23f363c2b61a321e",
      "new_mode": 33188,
      "new_path": "src/include/ipxe/settings.h"
    },
    {
      "type": "modify",
      "old_id": "23f1bb84dbf37f965e98ce93ff561fa696d7bd33",
      "old_mode": 33188,
      "old_path": "src/interface/efi/efi_path.c",
      "new_id": "ac3c049878652f795c1ada27af319e43ea885652",
      "new_mode": 33188,
      "new_path": "src/interface/efi/efi_path.c"
    }
  ]
}
