projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor import_keys to take directly an open file.
[apps/madmutt.git]
/
lib-crypt
/
crypt-gpgme.c
diff --git
a/lib-crypt/crypt-gpgme.c
b/lib-crypt/crypt-gpgme.c
index
aac1f10
..
d17abb8
100644
(file)
--- a/
lib-crypt/crypt-gpgme.c
+++ b/
lib-crypt/crypt-gpgme.c
@@
-14,16
+14,6
@@
#include <lib-lib/lib-lib.h>
#include <lib-lib/lib-lib.h>
-#ifdef HAVE_LOCALE_H
-# include <locale.h>
-#endif
-#ifdef HAVE_LANGINFO_D_T_FMT
-# include <langinfo.h>
-#endif
-#ifdef HAVE_SYS_RESOURCE_H
-# include <sys/resource.h>
-#endif
-
#include <gpgme.h>
#include <lib-mime/mime.h>
#include <gpgme.h>
#include <lib-mime/mime.h>
@@
-3871,13
+3861,13
@@
int crypt_smime_verify_sender (HEADER * h)
return ret;
}
return ret;
}
-
static void invoke_import(const char *fname
, int smime)
+
void crypt_invoke_import(FILE *stream
, int smime)
{
gpgme_ctx_t ctx = create_gpgme_context(smime);
gpgme_data_t data;
gpgme_error_t err;
{
gpgme_ctx_t ctx = create_gpgme_context(smime);
gpgme_data_t data;
gpgme_error_t err;
- err = gpgme_data_new_from_
file(&data, fname, 1
);
+ err = gpgme_data_new_from_
stream(&data, stream
);
if (err) {
mutt_error (_("error allocating data object: %s\n"), gpgme_strerror (err));
gpgme_release(ctx);
if (err) {
mutt_error (_("error allocating data object: %s\n"), gpgme_strerror (err));
gpgme_release(ctx);
@@
-3897,38
+3887,24
@@
static void invoke_import(const char *fname, int smime)
return;
}
return;
}
-void crypt_pgp_invoke_import(const char *fname)
-{
- invoke_import(fname, 0);
-}
-
-void crypt_smime_invoke_import(const char *fname)
-{
- invoke_import(fname, 1);
-}
-
-static void pgp_extract_keys_from_attachment (FILE * fp, BODY * top)
+static void pgp_extract_keys_from_attachment(FILE * fp, BODY * top)
{
{
- STATE s;
- FILE *tempfp;
- char tempfname[_POSIX_PATH_MAX];
+ STATE s;
+ FILE *tmpfp = tmpfile();
- tempfp = m_tempfile(tempfname, sizeof(tempfname), NONULL(MCore.tmpdir), NULL);
- if (tempfp == NULL) {
- mutt_perror (_("Can't create temporary file"));
- return;
- }
-
- p_clear(&s, 1);
-
- s.fpin = fp;
- s.fpout = tempfp;
+ if (tmpfp == NULL) {
+ mutt_perror (_("Can't create temporary file"));
+ return;
+ }
- mutt_body_handler (top, &s);
+ p_clear(&s, 1);
+ s.fpin = fp;
+ s.fpout = tmpfp;
+ mutt_body_handler(top, &s);
-
m_fclose(&te
mpfp);
-
crypt_pgp_invoke_import(tempfname
);
-
mutt_unlink (tempfname
);
+
rewind(t
mpfp);
+
crypt_invoke_import(tmpfp, 0
);
+
m_fclose(&tmpfp
);
}
void crypt_pgp_extract_keys_from_attachment_list(FILE * fp, int tag, BODY * top)
}
void crypt_pgp_extract_keys_from_attachment_list(FILE * fp, int tag, BODY * top)