- patch from Csaba Henk to make the "User-Agent" header field configurable.
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Sat, 2 Sep 2006 15:30:26 +0000 (15:30 -0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Sat, 2 Sep 2006 15:30:26 +0000 (15:30 -0000)
include/usage.h
networking/wget.c

index 0f95708c5a419139c92651d1de97452230825a20..3e3e8c84aecce28a4179675237327b37d609363f 100644 (file)
@@ -3396,7 +3396,8 @@ USE_FEATURE_START_STOP_DAEMON_FANCY( \
 
 #define wget_trivial_usage \
        "[-c|--continue] [-q|--quiet] [-O|--output-document file]\n" \
-       "\t\t[--header 'header: value'] [-Y|--proxy on/off] [-P DIR] url"
+       "\t\t[--header 'header: value'] [-Y|--proxy on/off] [-P DIR]\n" \
+       "\t\t[-U|--user-agent agent] url"
 #define wget_full_usage \
        "wget retrieves files via HTTP or FTP\n\n" \
        "Options:\n" \
@@ -3404,6 +3405,7 @@ USE_FEATURE_START_STOP_DAEMON_FANCY( \
        "\t-q\tquiet mode - do not print\n" \
        "\t-P\tSet directory prefix to DIR\n" \
        "\t-O\tsave to filename ('-' for stdout)\n" \
+       "\t-U\tadjust 'User-Agent' field\n" \
        "\t-Y\tuse proxy ('on' or 'off')"
 
 #define which_trivial_usage \
index 42fbeaf99ee46ec86d2b81d781183036aedea17f..7555152627788ec2e817b077ae7174618696c941 100644 (file)
@@ -132,6 +132,7 @@ static char *base64enc(unsigned char *p, char *buf, int len) {
 #define WGET_OPT_HEADER        16
 #define WGET_OPT_PREFIX        32
 #define WGET_OPT_PROXY 64
+#define WGET_OPT_USER_AGENT    128
 
 #if ENABLE_FEATURE_WGET_LONG_OPTIONS
 static const struct option wget_long_options[] = {
@@ -142,6 +143,7 @@ static const struct option wget_long_options[] = {
        { "header",          1, NULL, 131 },
        { "directory-prefix",1, NULL, 'P' },
        { "proxy",           1, NULL, 'Y' },
+       { "user-agent",      1, NULL, 'U' },
        { 0,                 0, 0, 0 }
 };
 #endif
@@ -172,6 +174,7 @@ int wget_main(int argc, char **argv)
        int quiet_flag = FALSE;         /* Be verry, verry quiet...         */
        int use_proxy = 1;              /* Use proxies if env vars are set  */
        char *proxy_flag = "on";        /* Use proxies if env vars are set  */
+       char *user_agent = "Wget"; /* Content of the "User-Agent" header field */
 
        /*
         * Crack command line.
@@ -180,9 +183,9 @@ int wget_main(int argc, char **argv)
 #if ENABLE_FEATURE_WGET_LONG_OPTIONS
        bb_applet_long_options = wget_long_options;
 #endif
-       opt = bb_getopt_ulflags(argc, argv, "cq\213O:\203:P:Y:",
+       opt = bb_getopt_ulflags(argc, argv, "cq\213O:\203:P:Y:U:",
                                        &fname_out, &headers_llist,
-                                       &dir_prefix, &proxy_flag);
+                                       &dir_prefix, &proxy_flag, &user_agent);
        if (opt & WGET_OPT_CONTINUE) {
                ++do_continue;
        }
@@ -317,7 +320,8 @@ int wget_main(int argc, char **argv)
                                fprintf(sfp, "GET /%s HTTP/1.1\r\n", target.path);
                        }
 
-                       fprintf(sfp, "Host: %s\r\nUser-Agent: Wget\r\n", target.host);
+                       fprintf(sfp, "Host: %s\r\nUser-Agent: %s\r\n", target.host,
+                               user_agent);
 
 #ifdef CONFIG_FEATURE_WGET_AUTHENTICATION
                        if (target.user) {