[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 12/20] efi/http: match protocol+hostname of boot url in root_u
From: |
Robbie Harwood |
Subject: |
[PATCH v5 12/20] efi/http: match protocol+hostname of boot url in root_url |
Date: |
Tue, 25 Apr 2023 11:05:23 -0400 |
From: Peter Jones <pjones@redhat.com>
This lets you write config files that don't know urls.
Signed-off-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
---
grub-core/net/efi/http.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c
index 03750e37b6..87fc02da20 100644
--- a/grub-core/net/efi/http.c
+++ b/grub-core/net/efi/http.c
@@ -3,6 +3,7 @@
#include <grub/misc.h>
#include <grub/net/efi.h>
#include <grub/charset.h>
+#include <grub/env.h>
static void
http_configure (struct grub_efi_net_device *dev, int prefer_ip6)
@@ -338,6 +339,24 @@ grub_efihttp_open (struct grub_efi_net_device *dev,
grub_err_t err;
grub_off_t size = 0;
char *buf = NULL;
+ char *root_url;
+ grub_efi_ipv6_address_t address;
+ const char *rest;
+
+ if (grub_efi_string_to_ip6_address (file->device->net->server, &address,
&rest) && *rest == 0)
+ root_url = grub_xasprintf ("%s://[%s]", type ? "https" : "http",
file->device->net->server);
+ else
+ root_url = grub_xasprintf ("%s://%s", type ? "https" : "http",
file->device->net->server);
+ if (root_url)
+ {
+ grub_env_unset ("root_url");
+ grub_env_set ("root_url", root_url);
+ grub_free (root_url);
+ }
+ else
+ {
+ return grub_errno;
+ }
err = efihttp_request (dev->http, file->device->net->server,
file->device->net->name, type, 1, 0);
if (err != GRUB_ERR_NONE)
--
2.40.0
- [PATCH v5 08/20] efinet Configure network from UEFI device path, (continued)
- [PATCH v5 08/20] efinet Configure network from UEFI device path, Robbie Harwood, 2023/04/25
- [PATCH v5 06/20] grub.texi: Add net_bootp6 doumentation, Robbie Harwood, 2023/04/25
- [PATCH v5 15/20] Try mac/guid/etc before grub.cfg on tftp config files, Robbie Harwood, 2023/04/25
- [PATCH v5 20/20] efinet: Add DHCP proxy support, Robbie Harwood, 2023/04/25
- [PATCH v5 05/20] efinet: add structures for PXE messages, Robbie Harwood, 2023/04/25
- [PATCH v5 18/20] http: Prepend prefix when the HTTP path is relative, Robbie Harwood, 2023/04/25
- [PATCH v5 07/20] bootp: Process DHCPACK packet during HTTP Boot, Robbie Harwood, 2023/04/25
- [PATCH v5 09/20] efinet: set DNS server from UEFI protocol, Robbie Harwood, 2023/04/25
- [PATCH v5 02/20] net: read bracketed ipv6 addrs and port numbers, Robbie Harwood, 2023/04/25
- [PATCH v5 17/20] efi/http: Enclose literal IPv6 addresses in square brackets, Robbie Harwood, 2023/04/25
- [PATCH v5 12/20] efi/http: match protocol+hostname of boot url in root_url,
Robbie Harwood <=
- [PATCH v5 14/20] use fw_path prefix when fallback searching for grub config, Robbie Harwood, 2023/04/25