From 58c4e189758d829c418bd3a0e30646e533131487 Mon Sep 17 00:00:00 2001
From: Quentin Rameau <quinq@fifth.space>
Date: Wed, 18 Nov 2015 18:44:25 +0100
Subject: Manage ssl errors with GTlsCertificateFlags

Keep a GTlsCertificateFlags in Client for TLS errors.
If we don't use a ssl connection, set it to a value greater than maximum
error flag value (which is G_TLS_CERTIFICATE_VALIDATE_ALL for all
possible errors).
---
 surf.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

(limited to 'surf.c')

diff --git a/surf.c b/surf.c
index fecbd98..7ae1e6f 100644
--- a/surf.c
+++ b/surf.c
@@ -60,11 +60,12 @@ typedef struct Client {
 	WebKitWebView *view;
 	WebKitWebInspector *inspector;
 	WebKitHitTestResult *mousepos;
+	GTlsCertificateFlags tlsflags;
 	const char *title, *targeturi;
 	const char *needle;
 	gint progress;
 	struct Client *next;
-	gboolean zoomed, fullscreen, isinspecting, sslfailed;
+	gboolean zoomed, fullscreen, isinspecting;
 } Client;
 
 typedef struct {
@@ -896,6 +897,7 @@ newclient(Client *rc)
 	clients = c;
 
 	c->view = newview(c, rc ? rc->view : NULL);
+	c->tlsflags = G_TLS_CERTIFICATE_VALIDATE_ALL + 1;
 
 	return c;
 }
@@ -1518,11 +1520,8 @@ getpagestat(Client *c)
 {
 	const char *uri = geturi(c);
 
-	if (strstr(uri, "https://") == uri)
-		pagestat[0] = c->sslfailed ? 'U' : 'T';
-	else
-		pagestat[0] = '-';
-
+	pagestats[0] = c->tlsflags > G_TLS_CERTIFICATE_VALIDATE_ALL ? '-' :
+	    c->tlsflags > 0 ? 'U' : 'T';
 	pagestat[1] = '\0';
 }
 
-- 
cgit v1.2.3