Skip to content

Commit

Permalink
Merge branch 'so/http-user-agent'
Browse files Browse the repository at this point in the history
* so/http-user-agent:
  Allow HTTP user agent string to be modified.
  • Loading branch information
Junio C Hamano committed Aug 22, 2010
2 parents e40b34b + b1d1058 commit dfdb1e4
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 2 deletions.
9 changes: 9 additions & 0 deletions Documentation/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1248,6 +1248,15 @@ http.noEPSV::
support EPSV mode. Can be overridden by the 'GIT_CURL_FTP_NO_EPSV'
environment variable. Default is false (curl will use EPSV).

http.useragent::
The HTTP USER_AGENT string presented to an HTTP server. The default
value represents the version of the client git such as git/1.7.1.
This option allows you to override this value to a more common value
such as Mozilla/4.0. This may be necessary, for instance, if
connecting through a firewall that restricts HTTP connections to a set
of common USER_AGENT strings (but not including those like git/1.7.1).
Can be overridden by the 'GIT_HTTP_USER_AGENT' environment variable.

i18n.commitEncoding::
Character encoding the commit messages are stored in; git itself
does not care per se, but this information is necessary e.g. when
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1873,7 +1873,7 @@ builtin/init-db.s builtin/init-db.o: EXTRA_CPPFLAGS = \

config.s config.o: EXTRA_CPPFLAGS = -DETC_GITCONFIG='"$(ETC_GITCONFIG_SQ)"'

http.s http.o: EXTRA_CPPFLAGS = -DGIT_USER_AGENT='"git/$(GIT_VERSION)"'
http.s http.o: EXTRA_CPPFLAGS = -DGIT_HTTP_USER_AGENT='"git/$(GIT_VERSION)"'

ifdef NO_EXPAT
http-walker.s http-walker.o: EXTRA_CPPFLAGS = -DNO_EXPAT
Expand Down
9 changes: 8 additions & 1 deletion http.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ static long curl_low_speed_time = -1;
static int curl_ftp_no_epsv;
static const char *curl_http_proxy;
static char *user_name, *user_pass;
static const char *user_agent;

#if LIBCURL_VERSION_NUM >= 0x071700
/* Use CURLOPT_KEYPASSWD as is */
Expand Down Expand Up @@ -196,6 +197,9 @@ static int http_options(const char *var, const char *value, void *cb)
return 0;
}

if (!strcmp("http.useragent", var))
return git_config_string(&user_agent, var, value);

/* Fall back on the default ones */
return git_default_config(var, value, cb);
}
Expand Down Expand Up @@ -279,7 +283,8 @@ static CURL *get_curl_handle(void)
if (getenv("GIT_CURL_VERBOSE"))
curl_easy_setopt(result, CURLOPT_VERBOSE, 1);

curl_easy_setopt(result, CURLOPT_USERAGENT, GIT_USER_AGENT);
curl_easy_setopt(result, CURLOPT_USERAGENT,
user_agent ? user_agent : GIT_HTTP_USER_AGENT);

if (curl_ftp_no_epsv)
curl_easy_setopt(result, CURLOPT_FTP_USE_EPSV, 0);
Expand Down Expand Up @@ -380,6 +385,8 @@ void http_init(struct remote *remote)
#endif
set_from_env(&ssl_cainfo, "GIT_SSL_CAINFO");

set_from_env(&user_agent, "GIT_HTTP_USER_AGENT");

low_speed_limit = getenv("GIT_HTTP_LOW_SPEED_LIMIT");
if (low_speed_limit != NULL)
curl_low_speed_limit = strtol(low_speed_limit, NULL, 10);
Expand Down

0 comments on commit dfdb1e4

Please sign in to comment.