From b939afe3fc70be446d9ffd6e6071a4af5cf98a8a Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Sun, 31 Jul 2016 01:24:57 +0100 Subject: Allow certificate verification user prompt creation to return errors --- frontends/gtk/ssl_cert.c | 11 ++++++----- frontends/gtk/ssl_cert.h | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'frontends/gtk') 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 -- cgit v1.2.3