summaryrefslogtreecommitdiff
path: root/frontends/gtk
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2016-07-31 01:24:57 +0100
committerVincent Sanders <vince@kyllikki.org>2016-07-31 13:25:20 +0100
commitb939afe3fc70be446d9ffd6e6071a4af5cf98a8a (patch)
tree65c10f7b9d363f20621e2b4429f4eb3c958fa986 /frontends/gtk
parent51725592c96b3cb94aa70761b10960c738815534 (diff)
downloadnetsurf-b939afe3fc70be446d9ffd6e6071a4af5cf98a8a.tar.gz
netsurf-b939afe3fc70be446d9ffd6e6071a4af5cf98a8a.tar.bz2
Allow certificate verification user prompt creation to return errors
Diffstat (limited to 'frontends/gtk')
-rw-r--r--frontends/gtk/ssl_cert.c11
-rw-r--r--frontends/gtk/ssl_cert.h2
2 files changed, 7 insertions, 6 deletions
diff --git a/frontends/gtk/ssl_cert.c b/frontends/gtk/ssl_cert.c
index 463f5cd60..e3bc8a7b2 100644
--- a/frontends/gtk/ssl_cert.c
+++ b/frontends/gtk/ssl_cert.c
@@ -64,7 +64,7 @@ static gboolean nsgtk_ssl_delete_event(GtkWidget *w, GdkEvent *event, gpointer
return FALSE;
}
-void gtk_cert_verify(nsurl *url, const struct ssl_cert_info *certs,
+nserror gtk_cert_verify(nsurl *url, const struct ssl_cert_info *certs,
unsigned long num, nserror (*cb)(bool proceed, void *pw),
void *cbpw)
{
@@ -82,15 +82,14 @@ void gtk_cert_verify(nsurl *url, const struct ssl_cert_info *certs,
/* state while dlg is open */
session = calloc(sizeof(void *), 3);
if (session == NULL) {
- return;
+ return NSERROR_NOMEM;
}
res = nsgtk_builder_new_from_resname("ssl", &builder);
if (res != NSERROR_OK) {
LOG("SSL UI builder init failed");
free(session);
- cb(false, cbpw);
- return;
+ return NSERROR_INIT_FAILED;
}
gtk_builder_connect_signals(builder, NULL);
@@ -114,7 +113,7 @@ void gtk_cert_verify(nsurl *url, const struct ssl_cert_info *certs,
if (ssl_window == NULL) {
free(session);
g_object_unref(G_OBJECT(dlg));
- return;
+ return NSERROR_INIT_FAILED;
}
accept = GTK_BUTTON(gtk_builder_get_object(builder, "sslaccept"));
@@ -133,4 +132,6 @@ void gtk_cert_verify(nsurl *url, const struct ssl_cert_info *certs,
(gpointer)session);
gtk_widget_show(GTK_WIDGET(dlg));
+
+ return NSERROR_OK;
}
diff --git a/frontends/gtk/ssl_cert.h b/frontends/gtk/ssl_cert.h
index 48937d457..398f1cc29 100644
--- a/frontends/gtk/ssl_cert.h
+++ b/frontends/gtk/ssl_cert.h
@@ -31,6 +31,6 @@ struct ssl_cert_info;
* \param cb Callback upon user decision.
* \param cbpw Context pointer passed to cb
*/
-void gtk_cert_verify(struct nsurl *url, const struct ssl_cert_info *certs, unsigned long num, nserror (*cb)(bool proceed, void *pw), void *cbpw);
+nserror gtk_cert_verify(struct nsurl *url, const struct ssl_cert_info *certs, unsigned long num, nserror (*cb)(bool proceed, void *pw), void *cbpw);
#endif