summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>2001-05-27 11:00:36 +0000
committerdes <des@FreeBSD.org>2001-05-27 11:00:36 +0000
commit1d4297a2b239d27258d1b7d0e8def340b6bcb721 (patch)
tree3b04545dc176b8f893c6bbfd602c90220e1f81ba
parentc652271f23831ecdba0750810e9fd464605d5e72 (diff)
downloadFreeBSD-src-1d4297a2b239d27258d1b7d0e8def340b6bcb721.zip
FreeBSD-src-1d4297a2b239d27258d1b7d0e8def340b6bcb721.tar.gz
Implement a HTTP_USER_AGENT environment variable.
PR: 27669 Submitted by: Eoin Lawless <eoin@maths.tcd.ie>
-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