diff --git a/fm.h b/fm.h index 96d3ab3..8face3c 100644 --- a/fm.h +++ b/fm.h @@ -935,6 +935,7 @@ global int w3m_dump init(0); global int w3m_halfload init(FALSE); global Str header_string init(NULL); global int override_content_type init(FALSE); +global int override_user_agent init(FALSE); #ifdef USE_COLOR global int useColor init(TRUE); diff --git a/main.c b/main.c index 43e181c..7bb058e 100644 --- a/main.c +++ b/main.c @@ -375,6 +375,8 @@ make_optional_header_string(char *s) Strcopy_charp_n(hs, s, p - s); if (!Strcasecmp_charp(hs, "content-type")) override_content_type = TRUE; + if (!Strcasecmp_charp(hs, "user-agent")) + override_user_agent = TRUE; Strcat_charp(hs, ": "); if (*(++p)) { /* not null header */ SKIP_BLANKS(p); /* skip white spaces */ diff --git a/url.c b/url.c index 1c17e18..31d7c4b 100644 --- a/url.c +++ b/url.c @@ -1324,12 +1324,14 @@ otherinfo(ParsedURL *target, ParsedURL *current, char *referer) const int *no_referer_ptr; int no_referer; - Strcat_charp(s, "User-Agent: "); - if (UserAgent == NULL || *UserAgent == '\0') - Strcat_charp(s, w3m_version); - else - Strcat_charp(s, UserAgent); - Strcat_charp(s, "\r\n"); + if (!override_user_agent) { + Strcat_charp(s, "User-Agent: "); + if (UserAgent == NULL || *UserAgent == '\0') + Strcat_charp(s, w3m_version); + else + Strcat_charp(s, UserAgent); + Strcat_charp(s, "\r\n"); + } Strcat_m_charp(s, "Accept: ", AcceptMedia, "\r\n", NULL); Strcat_m_charp(s, "Accept-Encoding: ", AcceptEncoding, "\r\n", NULL);