From 0853ea91c4383cbf8adbb990410e051b53343f90 Mon Sep 17 00:00:00 2001 From: Marco Peereboom Date: Wed, 16 Nov 2011 11:18:35 -0600 Subject: Add proxy command. We can now toggle a proxy with F2 and we also look at HTTP_PROXY environment variable. This is handy for toggling Tor on and off. --- xxxterm.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) (limited to 'xxxterm.c') diff --git a/xxxterm.c b/xxxterm.c index d904bbf..a26211c 100644 --- a/xxxterm.c +++ b/xxxterm.c @@ -2892,6 +2892,41 @@ restart(struct tab *t, struct karg *args) return (0); } +char *http_proxy_save; /* not a setting, used to toggle */ + +int +proxy_cmd(struct tab *t, struct karg *args) +{ + DNPRINTF(XT_D_CMD, "%s: tab %d\n", __func__, t->tab_id); + + if (t == NULL) + return (1); + + /* setup */ + if (http_proxy) { + if (http_proxy_save) + g_free(http_proxy_save); + http_proxy_save = g_strdup(http_proxy); + } + + if (args->i & XT_PRXY_SHOW) { + if (http_proxy) + show_oops(t, "http_proxy = %s", http_proxy); + else + show_oops(t, "proxy is currently disabled"); + } else if (args->i & XT_PRXY_TOGGLE) { + if (http_proxy_save == NULL && http_proxy == NULL) { + show_oops(t, "can't toggle proxy"); + goto done; + } + if (http_proxy) + setup_proxy(NULL); + else + setup_proxy(http_proxy_save); + } +done: + return (XT_CB_PASSTHROUGH); +} struct cmd { char *cmd; int level; @@ -3079,6 +3114,10 @@ struct cmd { { "inspector", 0, inspector_cmd, XT_INS_SHOW, 0 }, { "show", 1, inspector_cmd, XT_INS_SHOW, 0 }, { "hide", 1, inspector_cmd, XT_INS_HIDE, 0 }, + + /* proxy */ + { "proxy", 0, proxy_cmd, XT_PRXY_SHOW, 0 }, + { "toggle", 1, proxy_cmd, XT_PRXY_TOGGLE, 0 }, }; struct { @@ -7324,8 +7363,13 @@ main(int argc, char *argv[]) env_proxy = getenv("http_proxy"); if (env_proxy) setup_proxy(env_proxy); - else - setup_proxy(http_proxy); + else { + env_proxy = getenv("HTTP_PROXY"); + if (env_proxy) + setup_proxy(env_proxy); + else + setup_proxy(http_proxy); + } if (opte) { send_cmd_to_socket(argv[0]); -- cgit 1.4.1-2-gfad0