From 83e072d6d5b248c416f89cb144e677b2a3bdaba9 Mon Sep 17 00:00:00 2001 From: Azure Date: Sun, 30 Jun 2019 12:15:22 -0400 Subject: 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. --- rc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'rc.c') diff --git a/rc.c b/rc.c index 3fd84ef..25f7a56 100644 --- a/rc.c +++ b/rc.c @@ -1602,6 +1602,7 @@ helpFile(char *base) * url_charset * no_referer_from on|off * no_referer_to on|off + * user_agent "" * * 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; -- cgit v1.2.3