iAdd support to toggle strict TLS/SSL on the fly. - surf - Surf web browser. Err gopher.r-36.net 70 i Err gopher.r-36.net 70 1Log /scm/surf//log.gph gopher.r-36.net 70 1Files /scm/surf//files.gph gopher.r-36.net 70 1Refs /scm/surf//refs.gph gopher.r-36.net 70 1README /scm/surf//file/README.gph gopher.r-36.net 70 1LICENSE /scm/surf//file/LICENSE.gph gopher.r-36.net 70 i--- Err gopher.r-36.net 70 1commit f8b5e516c6c2afb914a5077817510e2db2a6cf72 /scm/surf//commit/f8b5e516c6c2afb914a5077817510e2db2a6cf72.gph gopher.r-36.net 70 1parent 99376fa57fdd6537600ca819a55d18f890c6a45b /scm/surf//commit/99376fa57fdd6537600ca819a55d18f890c6a45b.gph gopher.r-36.net 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net gopher.r-36.net 70 iDate: Wed, 19 Apr 2017 18:22:34 +0200 Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iAdd support to toggle strict TLS/SSL on the fly. Err gopher.r-36.net 70 i Err gopher.r-36.net 70 iDiffstat: Err gopher.r-36.net 70 i config.def.h | 4 +++- Err gopher.r-36.net 70 i surf.1 | 18 ++++++++++++------ Err gopher.r-36.net 70 i surf.c | 35 +++++++++++++++++++++++++++---- Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i3 files changed, 46 insertions(+), 11 deletions(-) Err gopher.r-36.net 70 i--- Err gopher.r-36.net 70 1diff --git a/config.def.h b/config.def.h /scm/surf//file/config.def.h.gph gopher.r-36.net 70 i@@ -19,7 +19,8 @@ static char *cookiefile = "~/.surf/cookies.txt"; Err gopher.r-36.net 70 i static char *cookiepolicies = "Aa@"; /* A: accept all; a: accept nothing, Err gopher.r-36.net 70 i * @: accept all except third party */ Err gopher.r-36.net 70 i static char *cafile = "/etc/ssl/certs/ca-certificates.crt"; Err gopher.r-36.net 70 i-static Bool strictssl = FALSE; /* Refuse untrusted SSL connections */ Err gopher.r-36.net 70 i+static Bool strictssl = TRUE; /* strict means if to refuse untrusted Err gopher.r-36.net 70 i+ * tls/ssl connections */ Err gopher.r-36.net 70 i static time_t sessiontime = 3600; Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i /* Webkit default features */ Err gopher.r-36.net 70 i@@ -123,6 +124,7 @@ static Key keys[] = { Err gopher.r-36.net 70 i { MODKEY|GDK_SHIFT_MASK,GDK_i, toggle, { .v = "auto-load-images" } }, Err gopher.r-36.net 70 i { MODKEY|GDK_SHIFT_MASK,GDK_s, toggle, { .v = "enable-scripts" } }, Err gopher.r-36.net 70 i { MODKEY|GDK_SHIFT_MASK,GDK_v, toggle, { .v = "enable-plugins" } }, Err gopher.r-36.net 70 i+ { MODKEY|GDK_SHIFT_MASK,GDK_t, togglesoup, { .v = "ssl-strict" } }, Err gopher.r-36.net 70 i { MODKEY|GDK_SHIFT_MASK,GDK_a, togglecookiepolicy, { 0 } }, Err gopher.r-36.net 70 i { MODKEY|GDK_SHIFT_MASK,GDK_m, togglestyle, { 0 } }, Err gopher.r-36.net 70 i { MODKEY|GDK_SHIFT_MASK,GDK_b, togglescrollbars, { 0 } }, Err gopher.r-36.net 70 1diff --git a/surf.1 b/surf.1 /scm/surf//file/surf.1.gph gopher.r-36.net 70 i@@ -3,12 +3,12 @@ Err gopher.r-36.net 70 i surf \- simple webkit-based browser Err gopher.r-36.net 70 i .SH SYNOPSIS Err gopher.r-36.net 70 i .B surf Err gopher.r-36.net 70 i-.RB [-bBdDfFgGiIkKmMnNpPsSvx] Err gopher.r-36.net 70 i+.RB [-bBdDfFgGiIkKmMnNpPsStTvx] Err gopher.r-36.net 70 i .RB [-a\ cookiepolicies] Err gopher.r-36.net 70 i .RB [-c\ cookiefile] Err gopher.r-36.net 70 i .RB [-e\ xid] Err gopher.r-36.net 70 i .RB [-r\ scriptfile] Err gopher.r-36.net 70 i-.RB [-t\ stylefile] Err gopher.r-36.net 70 i+.RB [-y\ stylefile] Err gopher.r-36.net 70 i .RB [-u\ useragent] Err gopher.r-36.net 70 i .RB [-z\ zoomlevel] Err gopher.r-36.net 70 i .RB "URI" Err gopher.r-36.net 70 i@@ -102,10 +102,11 @@ Disable Javascript Err gopher.r-36.net 70 i .B \-S Err gopher.r-36.net 70 i Enable Javascript Err gopher.r-36.net 70 i .TP Err gopher.r-36.net 70 i-.B \-t stylefile Err gopher.r-36.net 70 i-Specify the user Err gopher.r-36.net 70 i-.I stylefile. Err gopher.r-36.net 70 i-This does disable the site-specific styles. Err gopher.r-36.net 70 i+.B \-t Err gopher.r-36.net 70 i+Disable strict SSL/TLS checking. Err gopher.r-36.net 70 i+.TP Err gopher.r-36.net 70 i+.B \-T Err gopher.r-36.net 70 i+Enable strict SSL/TLS checking. Err gopher.r-36.net 70 i .TP Err gopher.r-36.net 70 i .B \-u useragent Err gopher.r-36.net 70 i Specify the Err gopher.r-36.net 70 i@@ -118,6 +119,11 @@ Prints version information to standard output, then exits. Err gopher.r-36.net 70 i .B \-x Err gopher.r-36.net 70 i Prints xid to standard output. This can be used to script the browser in for Err gopher.r-36.net 70 i example Err gopher.r-36.net 70 i+.TP Err gopher.r-36.net 70 i+.B \-y stylefile Err gopher.r-36.net 70 i+Specify the user Err gopher.r-36.net 70 i+.I stylefile. Err gopher.r-36.net 70 i+This does disable the site-specific styles. Err gopher.r-36.net 70 i .BR xdotool(1). Err gopher.r-36.net 70 i .TP Err gopher.r-36.net 70 i .B \-z zoomlevel Err gopher.r-36.net 70 1diff --git a/surf.c b/surf.c /scm/surf//file/surf.c.gph gopher.r-36.net 70 i@@ -104,7 +104,7 @@ static GdkNativeWindow embed = 0; Err gopher.r-36.net 70 i static gboolean showxid = FALSE; Err gopher.r-36.net 70 i static char winid[64]; Err gopher.r-36.net 70 i static gboolean usingproxy = 0; Err gopher.r-36.net 70 i-static char togglestat[9]; Err gopher.r-36.net 70 i+static char togglestat[10]; Err gopher.r-36.net 70 i static char pagestat[3]; Err gopher.r-36.net 70 i static GTlsDatabase *tlsdb; Err gopher.r-36.net 70 i static int policysel = 0; Err gopher.r-36.net 70 i@@ -211,6 +211,7 @@ static void togglecookiepolicy(Client *c, const Arg *arg); Err gopher.r-36.net 70 i static void togglegeolocation(Client *c, const Arg *arg); Err gopher.r-36.net 70 i static void toggleproxy(Client *c, const Arg *arg); Err gopher.r-36.net 70 i static void togglescrollbars(Client *c, const Arg *arg); Err gopher.r-36.net 70 i+static void togglesoup(Client *c, const Arg *arg); Err gopher.r-36.net 70 i static void togglestyle(Client *c, const Arg *arg); Err gopher.r-36.net 70 i static void updatetitle(Client *c); Err gopher.r-36.net 70 i static void updatewinid(Client *c); Err gopher.r-36.net 70 i@@ -1555,6 +1556,22 @@ togglegeolocation(Client *c, const Arg *arg) Err gopher.r-36.net 70 i } Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i void Err gopher.r-36.net 70 i+ttogglesoup(Client *c, const Arg *arg) Err gopher.r-36.net 70 i+{ Err gopher.r-36.net 70 i+ SoupSession *s; Err gopher.r-36.net 70 i+ char *name = (char *)arg->v; Err gopher.r-36.net 70 i+ gboolean value; Err gopher.r-36.net 70 i+ Arg a = { .b = FALSE }; Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i+ /* request handler */ Err gopher.r-36.net 70 i+ s = webkit_get_default_session(); Err gopher.r-36.net 70 i+ g_object_get(G_OBJECT(s), name, &value, NULL); Err gopher.r-36.net 70 i+ g_object_set(G_OBJECT(s), name, !value, NULL); Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i+ reload(c, &a); Err gopher.r-36.net 70 i+} Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i+void Err gopher.r-36.net 70 i ttwitch(Client *c, const Arg *arg) Err gopher.r-36.net 70 i { Err gopher.r-36.net 70 i GtkAdjustment *a; Err gopher.r-36.net 70 i@@ -1584,7 +1601,7 @@ toggleproxy(Client *c, const Arg *arg) Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i if (usingproxy) { Err gopher.r-36.net 70 i pr = NULL; Err gopher.r-36.net 70 i- g_object_get(G_OBJECT(s), "proxy-resolver", &pr); Err gopher.r-36.net 70 i+ g_object_get(G_OBJECT(s), "proxy-resolver", &pr, NULL); Err gopher.r-36.net 70 i if (pr != NULL) Err gopher.r-36.net 70 i g_object_unref(pr); Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i@@ -1636,6 +1653,7 @@ gettogglestat(Client *c) Err gopher.r-36.net 70 i gboolean value; Err gopher.r-36.net 70 i int p = 0; Err gopher.r-36.net 70 i WebKitWebSettings *settings = webkit_web_view_get_settings(c->view); Err gopher.r-36.net 70 i+ SoupSession *s = webkit_get_default_session(); Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i togglestat[p++] = cookiepolicy_set(cookiepolicy_get()); Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i@@ -1653,6 +1671,9 @@ gettogglestat(Client *c) Err gopher.r-36.net 70 i g_object_get(G_OBJECT(settings), "enable-scripts", &value, NULL); Err gopher.r-36.net 70 i togglestat[p++] = value? 'S': 's'; Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i+ g_object_get(G_OBJECT(s), "ssl-strict", &value, NULL); Err gopher.r-36.net 70 i+ togglestat[p++] = value? 'T': 't'; Err gopher.r-36.net 70 i+ Err gopher.r-36.net 70 i g_object_get(G_OBJECT(settings), "enable-plugins", &value, NULL); Err gopher.r-36.net 70 i togglestat[p++] = value? 'V': 'v'; Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i@@ -1714,8 +1735,8 @@ updatewinid(Client *c) Err gopher.r-36.net 70 i void Err gopher.r-36.net 70 i usage(void) Err gopher.r-36.net 70 i { Err gopher.r-36.net 70 i- die("usage: %s [-bBdDfFgGiIkKmMnNpPsSvx] [-a cookiepolicies ] " Err gopher.r-36.net 70 i- "[-c cookiefile] [-e xid] [-r scriptfile] [-t stylefile] " Err gopher.r-36.net 70 i+ die("usage: %s [-bBdDfFgGiIkKmMnNpPsStTvx] [-a cookiepolicies ] " Err gopher.r-36.net 70 i+ "[-c cookiefile] [-e xid] [-r scriptfile] [-y stylefile] " Err gopher.r-36.net 70 i "[-u useragent] [-z zoomlevel] [uri]\n", basename(argv0)); Err gopher.r-36.net 70 i } Err gopher.r-36.net 70 i Err gopher.r-36.net 70 i@@ -1826,6 +1847,12 @@ main(int argc, char *argv[]) Err gopher.r-36.net 70 i enablescripts = 1; Err gopher.r-36.net 70 i break; Err gopher.r-36.net 70 i case 't': Err gopher.r-36.net 70 i+ strictssl = 0; Err gopher.r-36.net 70 i+ break; Err gopher.r-36.net 70 i+ case 'T': Err gopher.r-36.net 70 i+ strictssl = 1; Err gopher.r-36.net 70 i+ break; Err gopher.r-36.net 70 i+ case 'y': Err gopher.r-36.net 70 i stylefile = EARGF(usage()); Err gopher.r-36.net 70 i break; Err gopher.r-36.net 70 i case 'u': Err gopher.r-36.net 70 .