0.8.8claws33
[claws.git] / src / gtk / sslcertwindow.c
index d7d2d17d362410f15fc2676c47005cc37711d336..ec6c5823fbc222b5481d58dd7ebac1346e8c03ad 100644 (file)
 #include <openssl/ssl.h>
 #include <glib.h>
 #include <gtk/gtk.h>
-#include "../common/intl.h"
-#include "../ssl_certificate.h"
-#include "../common/utils.h"
+#include "intl.h"
+#include "ssl_certificate.h"
+#include "utils.h"
 #include "../alertpanel.h"
+#include "hooks.h"
 
 static void toggle_cert_cb(GtkWidget   *widget,
                         gpointer        data);
+gboolean sslcertwindow_ask_new_cert(SSLCertificate *cert);
+gboolean sslcertwindow_ask_changed_cert(SSLCertificate *old_cert, SSLCertificate *new_cert);
 
 GtkWidget *cert_presenter(SSLCertificate *cert)
 {
@@ -199,6 +202,25 @@ GtkWidget *cert_presenter(SSLCertificate *cert)
        return vbox;
 }
 
+static gboolean sslcert_ask_hook(gpointer source, gpointer data)
+{
+       SSLCertHookData *hookdata = (SSLCertHookData *)source;
+       if (hookdata == NULL) {
+               return FALSE;
+       }
+       if (hookdata->old_cert == NULL)
+               hookdata->accept = sslcertwindow_ask_new_cert(hookdata->cert);
+       else
+               hookdata->accept = sslcertwindow_ask_changed_cert(hookdata->old_cert, hookdata->cert);
+
+       return TRUE;
+}
+
+void sslcertwindow_register_hook(void)
+{
+       hooks_register_hook(SSLCERT_ASK_HOOKLIST, sslcert_ask_hook, NULL);
+}
+
 void sslcertwindow_show_cert(SSLCertificate *cert)
 {
        GtkWidget *cert_widget = cert_presenter(cert);