diff options
author | Azure <azure@fox.blue> | 2019-06-30 16:15:22 +0000 |
---|---|---|
committer | Azure <azure@fox.blue> | 2019-06-30 16:15:22 +0000 |
commit | 83e072d6d5b248c416f89cb144e677b2a3bdaba9 (patch) | |
tree | ce5478bd6a172d5e32cc3a68e2e5a748407ff05a /rc.c | |
parent | Update ChangeLog (diff) | |
download | w3m-83e072d6d5b248c416f89cb144e677b2a3bdaba9.tar.gz w3m-83e072d6d5b248c416f89cb144e677b2a3bdaba9.zip |
Allow setting User Agent in Siteconf
Since Google gives usable search results to Lynx but not to w3m, and
many other sites block Lynx but /not/ w3m, we want to be able to set
the User Agent string on a per-site basis.
Diffstat (limited to 'rc.c')
-rw-r--r-- | rc.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -1602,6 +1602,7 @@ helpFile(char *base) * url_charset <charset> * no_referer_from on|off * no_referer_to on|off + * user_agent "<string>" * * The last match wins. */ @@ -1614,6 +1615,7 @@ struct siteconf_rec { unsigned char mask[(SCONF_N_FIELD + 7) >> 3]; char *substitute_url; + char *user_agent; #ifdef USE_M17N wc_ces url_charset; #endif @@ -1640,6 +1642,7 @@ newSiteconfRec(void) memset(ent->mask, 0, sizeof(ent->mask)); ent->substitute_url = NULL; + ent->user_agent = NULL; #ifdef USE_M17N ent->url_charset = 0; #endif @@ -1718,6 +1721,10 @@ loadSiteconf(void) ent->substitute_url = getQWord(&p); SCONF_SET(ent, SCONF_SUBSTITUTE_URL); } + if (strcmp(s, "user_agent") == 0) { + ent->user_agent = getQWord(&p); + SCONF_SET(ent, SCONF_USER_AGENT); + } #ifdef USE_M17N else if (strcmp(s, "url_charset") == 0) { char *charset = getWord(&p); @@ -1797,6 +1804,11 @@ url_found: return tmp->ptr; } return NULL; + case SCONF_USER_AGENT: + if (ent->user_agent && *ent->user_agent) { + return ent->user_agent; + } + return NULL; #ifdef USE_M17N case SCONF_URL_CHARSET: return &ent->url_charset; |