[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 11/19] efi/http: match protocol+hostname of boot url in root_u
From: |
Robbie Harwood |
Subject: |
[PATCH v4 11/19] efi/http: match protocol+hostname of boot url in root_url |
Date: |
Mon, 9 Jan 2023 18:30:37 -0500 |
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.39.0
- [PATCH v4 00/19] UEFI networking support including ipv6 + dhcpv6, Robbie Harwood, 2023/01/09
- [PATCH v4 01/19] Revert "net/http: Allow use of non-standard TCP/IP ports", Robbie Harwood, 2023/01/09
- [PATCH v4 04/19] efinet: add structures for PXE messages, Robbie Harwood, 2023/01/09
- [PATCH v4 10/19] efinet: also use the firmware acceleration for http, Robbie Harwood, 2023/01/09
- [PATCH v4 02/19] net: read bracketed ipv6 addrs and port numbers, Robbie Harwood, 2023/01/09
- [PATCH v4 11/19] efi/http: match protocol+hostname of boot url in root_url,
Robbie Harwood <=
- [PATCH v4 14/19] Try mac/guid/etc before grub.cfg on tftp config files, Robbie Harwood, 2023/01/09
- [PATCH v4 06/19] bootp: Process DHCPACK packet during HTTP Boot, Robbie Harwood, 2023/01/09
- [PATCH v4 12/19] Add fw_path variable to detect config file on efi, Robbie Harwood, 2023/01/09
- [PATCH v4 13/19] use fw_path prefix when fallback searching for grub config, Robbie Harwood, 2023/01/09
- [PATCH v4 08/19] efinet: set DNS server from UEFI protocol, Robbie Harwood, 2023/01/09
- [PATCH v4 05/19] grub.texi: Add net_bootp6 doumentation, Robbie Harwood, 2023/01/09
- [PATCH v4 15/19] Prepend prefix when HTTP path is relative, Robbie Harwood, 2023/01/09
- [PATCH v4 16/19] efi/http: Enclose literal IPv6 addresses in square brackets, Robbie Harwood, 2023/01/09
- [PATCH v4 17/19] http: Prepend prefix when the HTTP path is relative, Robbie Harwood, 2023/01/09
- [PATCH v4 03/19] efinet + bootp: add net_bootp6 command supporting dhcpv6, Robbie Harwood, 2023/01/09