summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libfetch/fetch.34
-rw-r--r--lib/libfetch/http.c5
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");
OpenPOWER on IntegriCloud