* src/procmsg.c
[claws.git] / src / pgptext.c
index 4ed72ec3f07c7686581deebb94d5abb0b0d66830..bbfd76ded7f0a079d409fe529a68a54c738eeb1d 100644 (file)
@@ -58,17 +58,6 @@ static char *content_names[] = {
     NULL
 };
 
-static char *mime_version_name[] = {
-    "Mime-Version",
-    NULL
-};
-
-
-struct passphrase_cb_info_s {
-    GpgmeCtx c;
-    int did_it;
-};
-
 /* stolen from rfc2015.c */
 static int
 gpg_name_cmp(const char *a, const char *b)
@@ -82,31 +71,6 @@ gpg_name_cmp(const char *a, const char *b)
     return *a != *b;
 }
 
-static const char *
-passphrase_cb (void *opaque, const char *desc, void *r_hd)
-{
-    struct passphrase_cb_info_s *info = opaque;
-    GpgmeCtx ctx = info ? info->c : NULL;
-    const char *pass;
-
-    if (!desc) {
-        /* FIXME: cleanup by looking at *r_hd */
-        return NULL;
-    }
-
-    gpgmegtk_set_passphrase_grab (prefs_common.passphrase_grab);
-    debug_print ("requesting passphrase for `%s': ", desc);
-    pass = gpgmegtk_passphrase_mbox (desc);
-    if (!pass) {
-        debug_print ("cancel passphrase entry\n");
-        gpgme_cancel (ctx);
-    }
-    else
-        debug_print ("sending passphrase\n");
-
-    return pass;
-}
-
 static GpgmeData
 pgptext_decrypt (MimeInfo *partinfo, FILE *fp)
 {
@@ -139,7 +103,7 @@ pgptext_decrypt (MimeInfo *partinfo, FILE *fp)
 
     if (!getenv("GPG_AGENT_INFO")) {
         info.c = ctx;
-        gpgme_set_passphrase_cb (ctx, passphrase_cb, &info);
+        gpgme_set_passphrase_cb (ctx, gpgmegtk_passphrase_cb, (void *)&info);
     } 
 
     err = gpgme_op_decrypt (ctx, cipher, plain);
@@ -147,6 +111,7 @@ pgptext_decrypt (MimeInfo *partinfo, FILE *fp)
 leave:
     gpgme_data_release (cipher);
     if (err) {
+        gpgmegtk_free_passphrase();
         debug_print ("decryption failed: %s\n", gpgme_strerror (err));
         gpgme_data_release (plain);
         plain = NULL;
@@ -188,6 +153,7 @@ headerp(char *p, char **names)
 
 MimeInfo * pgptext_find_signature (MimeInfo *mimeinfo)
 {
+       return NULL;
 }
 
 gboolean pgptext_has_signature (MimeInfo *mimeinfo)
@@ -217,23 +183,24 @@ int pgptext_is_encrypted (MimeInfo *mimeinfo, MsgInfo *msginfo)
        gchar *check_begin_pgp_msg = "-----BEGIN PGP MESSAGE-----\n";
        gchar *check_end_pgp_msg = "-----END PGP MESSAGE-----\n";
        
-       g_return_if_fail(msginfo != NULL);
+       g_return_val_if_fail(msginfo != NULL, 0);
        
        if (!mimeinfo)
                return 0;
        
-       if ((fp = procmsg_open_message(msginfo)) == NULL) return;
+       if ((fp = procmsg_open_message(msginfo)) == NULL) return 0;
        mimeinfo = procmime_scan_mime_header(fp);
        fclose(fp);
-       if (!mimeinfo) return;
+       if (!mimeinfo) return 0;
 
        file = procmsg_get_message_file_path(msginfo);
-       g_return_if_fail(file != NULL);
+       g_return_val_if_fail(file != NULL, 0);
 
        if (mimeinfo->mime_type != MIME_TEXT) {
                if ((fp = fopen(file, "rb")) == NULL) {
                        FILE_OP_ERROR(file, "fopen");
-                       return;
+                       g_free(file);
+                       return 0;
                }
                /* skip headers */
                if (mimeinfo->mime_type == MIME_MULTIPART) {
@@ -258,7 +225,8 @@ int pgptext_is_encrypted (MimeInfo *mimeinfo, MsgInfo *msginfo)
        } else {
                if ((fp = fopen(file, "rb")) == NULL) {
                        FILE_OP_ERROR(file, "fopen");
-                       return;
+                       g_free(file);
+                       return 0;
                }
                /* skip headers */
                if (fseek(fp, mimeinfo->fpos, SEEK_SET) < 0)
@@ -294,8 +262,6 @@ void pgptext_decrypt_message (MsgInfo *msginfo, MimeInfo *mimeinfo, FILE *fp)
 {
     static int id;
     MimeInfo *partinfo;
-    int n, found;
-    int ver_okay=0;
     char *fname;
     GpgmeData plain;
     FILE *dstfp;
@@ -372,10 +338,12 @@ void pgptext_decrypt_message (MsgInfo *msginfo, MimeInfo *mimeinfo, FILE *fp)
 
 int pgptext_encrypt (const char *file, GSList *recp_list)
 {
+       return 0;
 }
 
 int pgptext_sign (const char *file, PrefsAccount *ac)
 {
+       return 0;
 }
 
 #endif /* USE_GPGME */