[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    [PATCH] wget: add header Accept: */*
From:       Natanael Copa <ncopa () alpinelinux ! org>
Date:       2024-03-11 11:57:38
Message-ID: 20240311115738.18177-1-ncopa () alpinelinux ! org
[Download RAW message or body]

Some servers (like https://netfilter.org) returns failure if the Accept
header is missing. Both GNU wget and curl adds this header, so make
busybox do the same.

fixes: https://bugs.busybox.net/show_bug.cgi?id=15982

function                                             old     new   delta
wget_main                                           3120    3144     +24
.rodata                                            79296   79310     +14
wget_user_headers                                     76      84      +8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 46/0)               Total: 46 bytes
   text	   data	    bss	    dec	    hex	filename
 825278	  14260	   2008	 841546	  cd74a	busybox_old
 825324	  14260	   2008	 841592	  cd778	busybox_unstripped
---
 networking/wget.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/networking/wget.c b/networking/wget.c
index 199ddd4da..48486fdee 100644
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -212,14 +212,16 @@ enum {
 	HDR_USER_AGENT    = (1<<1),
 	HDR_RANGE         = (1<<2),
 	HDR_CONTENT_TYPE  = (1<<3),
-	HDR_AUTH          = (1<<4) * ENABLE_FEATURE_WGET_AUTHENTICATION,
-	HDR_PROXY_AUTH    = (1<<5) * ENABLE_FEATURE_WGET_AUTHENTICATION,
+	HDR_ACCEPT        = (1<<4),
+	HDR_AUTH          = (1<<5) * ENABLE_FEATURE_WGET_AUTHENTICATION,
+	HDR_PROXY_AUTH    = (1<<6) * ENABLE_FEATURE_WGET_AUTHENTICATION,
 };
 static const char wget_user_headers[] ALIGN1 =
 	"Host:\0"
 	"User-Agent:\0"
 	"Range:\0"
 	"Content-Type:\0"
+	"Accept:\0"
 # if ENABLE_FEATURE_WGET_AUTHENTICATION
 	"Authorization:\0"
 	"Proxy-Authorization:\0"
@@ -229,6 +231,7 @@ static const char wget_user_headers[] ALIGN1 =
 # define USR_HEADER_USER_AGENT   (G.user_headers & HDR_USER_AGENT)
 # define USR_HEADER_RANGE        (G.user_headers & HDR_RANGE)
 # define USR_HEADER_CONTENT_TYPE (G.user_headers & HDR_CONTENT_TYPE)
+# define USR_HEADER_ACCEPT       (G.user_headers & HDR_ACCEPT)
 # define USR_HEADER_AUTH         (G.user_headers & HDR_AUTH)
 # define USR_HEADER_PROXY_AUTH   (G.user_headers & HDR_PROXY_AUTH)
 #else /* No long options, no user-headers :( */
@@ -236,6 +239,7 @@ static const char wget_user_headers[] ALIGN1 =
 # define USR_HEADER_USER_AGENT   0
 # define USR_HEADER_RANGE        0
 # define USR_HEADER_CONTENT_TYPE 0
+# define USR_HEADER_ACCEPT       0
 # define USR_HEADER_AUTH         0
 # define USR_HEADER_PROXY_AUTH   0
 #endif
@@ -1232,6 +1236,8 @@ static void download_one_url(const char *url)
 			SENDFMT(sfp, "Host: %s\r\n", target.host);
 		if (!USR_HEADER_USER_AGENT)
 			SENDFMT(sfp, "User-Agent: %s\r\n", G.user_agent);
+		if (!USR_HEADER_ACCEPT)
+			SENDFMT(sfp, "Accept: */*\r\n");
 
 		/* Ask server to close the connection as soon as we are done
 		 * (IOW: we do not intend to send more requests)
-- 
2.44.0

_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic