]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Revert "net/http: Allow use of non-standard TCP/IP ports"
authorRobbie Harwood <rharwood@redhat.com>
Tue, 25 Apr 2023 15:05:12 +0000 (11:05 -0400)
committerDaniel Kiper <daniel.kiper@oracle.com>
Tue, 16 May 2023 14:54:02 +0000 (16:54 +0200)
The notation introduced in ac8a37dda (net/http: Allow use of non-standard
TCP/IP ports) contradicts that used in downstream distributions including
Fedora, RHEL, Debian, Ubuntu, and others. Revert it and apply the downstream
notation which was originally proposed to the GRUB in 2016.

This reverts commit ac8a37dda (net/http: Allow use of non-standard TCP/IP ports).

Signed-off-by: Robbie Harwood <rharwood@redhat.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
docs/grub.texi
grub-core/net/http.c

index a3e9ce2d1ac7e780ce6a82e44b33b49718daa18a..73f4d8c0179f81a7515e126430054c5fb05e7f49 100644 (file)
@@ -3057,39 +3057,6 @@ environment variable @samp{net_default_server} is used.
 Before using the network drive, you must initialize the network.
 @xref{Network}, for more information.
 
-For the @samp{http} network protocol, @code{@var{server}} may specify a
-port number other than the default value of @samp{80}. The server name
-and port number are separated by either @samp{,} or @samp{:}.
-For IPv6 addresses, the server name and port number may only be separated
-by @samp{,}.
-
-@itemize @bullet
-@item
-@code{(http,@var{server},@var{port})}
-
-@item
-@code{(http,@var{server}:@var{port})}
-@end itemize
-
-These examples all reference an @samp{http} server at address
-@samp{192.0.2.1} listening on the non-standard port of @samp{3000}.
-In these examples, the DNS name @samp{grub.example.com} is resolved
-to @samp{192.0.2.1}.
-
-@example
-(http,grub.example.com,3000)
-(http,grub.example.com:3000)
-(http,192.0.2.1,3000)
-(http,192.0.2.1:3000)
-@end example
-
-Referencing an @samp{http} server over IPv6 on the non-standard
-port of @samp{3000} would look like this:
-
-@example
-(http,2001:db8::1,3000)
-@end example
-
 If you boot GRUB from a CD-ROM, @samp{(cd)} is available. @xref{Making
 a GRUB bootable CD-ROM}, for details.
 
index 9291a13e2d9e9a491d33acfa2f6164ce4699b121..d67cad48293a4ea675c5eb09ba20a22c4a641de0 100644 (file)
@@ -318,10 +318,6 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial)
   int i;
   struct grub_net_buff *nb;
   grub_err_t err;
-  char *server_name;
-  char *port_string;
-  const char *port_string_end;
-  unsigned long port_number;
 
   nb = grub_netbuff_alloc (GRUB_NET_TCP_RESERVE_SIZE
                           + sizeof ("GET ") - 1
@@ -400,42 +396,10 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial)
   grub_netbuff_put (nb, 2);
   grub_memcpy (ptr, "\r\n", 2);
 
-  port_string = grub_strrchr (file->device->net->server, ',');
-  if (port_string == NULL)
-    {
-      /* If ",port" is not found in the http server string, look for ":port". */
-      port_string = grub_strrchr (file->device->net->server, ':');
-      /* For IPv6 addresses, the ":port" syntax is not supported and ",port" must be used. */
-      if (port_string != NULL && grub_strchr (file->device->net->server, ':') != port_string)
-         port_string = NULL;
-    }
-  if (port_string != NULL)
-    {
-      port_number = grub_strtoul (port_string + 1, &port_string_end, 10);
-      if (*(port_string + 1) == '\0' || *port_string_end != '\0')
-         return grub_error (GRUB_ERR_BAD_NUMBER, N_("non-numeric or invalid port number `%s'"), port_string + 1);
-      if (port_number == 0 || port_number > 65535)
-         return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("port number `%s' not in the range of 1 to 65535"), port_string + 1);
-
-      server_name = grub_strdup (file->device->net->server);
-      if (server_name == NULL)
-         return grub_errno;
-      server_name[port_string - file->device->net->server] = '\0';
-    }
-  else
-    {
-      port_number = HTTP_PORT;
-      server_name = file->device->net->server;
-    }
-
-  data->sock = grub_net_tcp_open (server_name,
-                                 port_number, http_receive,
+  data->sock = grub_net_tcp_open (file->device->net->server,
+                                 HTTP_PORT, http_receive,
                                  http_err, NULL,
                                  file);
-
-  if (server_name != file->device->net->server)
-      grub_free (server_name);
-
   if (!data->sock)
     {
       grub_netbuff_free (nb);