diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libfetch/fetch.3 | 4 | ||||
-rw-r--r-- | lib/libfetch/http.c | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/libfetch/fetch.3 b/lib/libfetch/fetch.3 index c4d60a4..4534d64 100644 --- a/lib/libfetch/fetch.3 +++ b/lib/libfetch/fetch.3 @@ -512,6 +512,10 @@ variable. This variable is used if and only if connected to an HTTP proxy, and is ignored if a user and/or a password were specified in the proxy URL. +.It Ev HTTP_USER_AGENT +Specifies the User-Agent string to use for HTTP requests. +This can be useful when working with HTTP origin or proxy servers that +differentiate between usder agents. .El .Sh SEE ALSO .Xr fetch 1 , diff --git a/lib/libfetch/http.c b/lib/libfetch/http.c index 77c3a2d..5863c80 100644 --- a/lib/libfetch/http.c +++ b/lib/libfetch/http.c @@ -777,7 +777,10 @@ _http_request(struct url *URL, const char *op, struct url_stat *us, } /* other headers */ - _http_cmd(fd, "User-Agent: %s " _LIBFETCH_VER, __progname); + if ((p = getenv("HTTP_USER_AGENT")) != NULL && *p != '\0') + _http_cmd(fd, "User-Agent: %s", p); + else + _http_cmd(fd, "User-Agent: %s " _LIBFETCH_VER, __progname); if (url->offset) _http_cmd(fd, "Range: bytes=%lld-", url->offset); _http_cmd(fd, "Connection: close"); |