diff options
author | Marco Peereboom <marco@conformal.com> | 2011-12-28 15:42:52 -0600 |
---|---|---|
committer | Marco Peereboom <marco@conformal.com> | 2011-12-28 15:42:52 -0600 |
commit | 2cf22fd10091dadcfc8209f4ca58d15d458e90dd (patch) | |
tree | adfd6e972d038edcd552ff07c5106f2ae3ea4235 /xxxterm.c | |
parent | 6e798a18c65df1340037a6881088990e1fa30d14 (diff) | |
download | xombrero-2cf22fd10091dadcfc8209f4ca58d15d458e90dd.tar.gz |
Add round robin user agents
Fixes FS#65 from Elias Norberg xyzzy@kudzu.se
Diffstat (limited to 'xxxterm.c')
-rw-r--r-- | xxxterm.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/xxxterm.c b/xxxterm.c index 09fe44d..61254e8 100644 --- a/xxxterm.c +++ b/xxxterm.c @@ -241,6 +241,7 @@ struct domain_list pl_wl; struct undo_tailq undos; struct keybinding_list kbl; struct sp_list spl; +struct user_agent_list ua_list; struct command_list chl; struct command_list shl; struct command_entry *history_at; @@ -4266,6 +4267,26 @@ webview_npd_cb(WebKitWebView *wv, WebKitWebFrame *wf, return (TRUE); /* we made the decission */ } + /* change user agent */ + if (user_agent_roundrobin ) { + struct user_agent *ua; + + if ((ua = TAILQ_NEXT(user_agent, entry)) == NULL) + user_agent = TAILQ_FIRST(&ua_list); + else + user_agent = ua; + + free(t->user_agent); + t->user_agent = g_strdup(user_agent->value); + + DNPRINTF(XT_D_NAV, "user-agent: %s\n", t->user_agent); + + g_object_set(G_OBJECT(t->settings), + "user-agent", t->user_agent, (char *)NULL); + + webkit_web_view_set_settings(wv, t->settings); + } + /* * This is a little hairy but it comes down to this: * when we run in whitelist mode we have to assist the browser in @@ -5945,7 +5966,7 @@ create_browser(struct tab *t) t->user_agent = g_strdup_printf("%s %s+", strval, version); g_free(strval); } else - t->user_agent = g_strdup(user_agent); + t->user_agent = g_strdup(user_agent->value); t->stylesheet = g_strdup_printf("file://%s/style.css", resource_dir); @@ -7335,6 +7356,7 @@ main(int argc, char *argv[]) TAILQ_INIT(&spl); TAILQ_INIT(&chl); TAILQ_INIT(&shl); + TAILQ_INIT(&ua_list); /* fiddle with ulimits */ if (getrlimit(RLIMIT_NOFILE, &rlp) == -1) |