diff options
author | Werner Koch <wk@gnupg.org> | 2024-11-07 10:49:52 +0100 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2024-11-07 10:51:04 +0100 |
commit | 567fb6eaa037cc3fea46452e58cd720d77d7235d (patch) | |
tree | 5bc5a4b734affe1959e218e76f10ab5607c91e86 /tools/gpg-mail-tube.c | |
parent | gpgtar: Use log-file from common.conf only in --batch mode. (diff) | |
download | gnupg2-567fb6eaa037cc3fea46452e58cd720d77d7235d.tar.xz gnupg2-567fb6eaa037cc3fea46452e58cd720d77d7235d.zip |
gpg-mail-type: Assume text/plain for missing content-type.
* tools/gpg-mail-tube.c (mail_tube_encrypt): Rename var ct_text for
clarity. Replace debug diagnostic by log_info. Assume text/plain for
missing content-type.
--
Without this fix we would create message/rfc822 attachment instead of
a text/plain attachment with the encrypted body.
Diffstat (limited to '')
-rw-r--r-- | tools/gpg-mail-tube.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/tools/gpg-mail-tube.c b/tools/gpg-mail-tube.c index 793218e50..ec32d3f43 100644 --- a/tools/gpg-mail-tube.c +++ b/tools/gpg-mail-tube.c @@ -429,7 +429,7 @@ mail_tube_encrypt (estream_t fpin, strlist_t recipients) gpgrt_process_t proc = NULL; int exitcode; int i, found; - int ct_text = 0; + int ct_is_text = 0; ctx->msg = rfc822parse_open (mail_tube_message_cb, ctx); if (!ctx->msg) @@ -502,9 +502,12 @@ mail_tube_encrypt (estream_t fpin, strlist_t recipients) const char *media; field = rfc822parse_parse_field (ctx->msg, "Content-Type", -1); - if (field && (media = rfc822parse_query_media_type (field, NULL)) - && !strcmp (media, "text")) - ct_text = 1; + if (!field) + ct_is_text = 1; /* Assumed CT is text/plain. */ + else if ((media = rfc822parse_query_media_type (field, NULL)) + && !strcmp (media, "text")) + ct_is_text = 1; + rfc822parse_release_field (field); } @@ -557,14 +560,14 @@ mail_tube_encrypt (estream_t fpin, strlist_t recipients) "\r\n" "--=-=mt-%s=-=\r\n", boundary, - ct_text? "file":"message", + ct_is_text? "file":"message", boundary); - if (ct_text) + if (ct_is_text) es_fprintf (es_stdout, "Content-Type: text/plain; charset=us-ascii\r\n" "Content-Description: PGP encrypted file\r\n" "Content-Disposition: attachment; filename=\"%s\"\r\n" - "\r\n", "pgp-encrypted-file.asc"); + "\r\n", "pgp-encrypted-file.txt.asc"); else es_fprintf (es_stdout, "Content-Type: message/rfc822\r\n" @@ -596,18 +599,19 @@ mail_tube_encrypt (estream_t fpin, strlist_t recipients) goto leave; } - if (opt.as_attach && ct_text) + if (opt.as_attach && ct_is_text) { /* No headers at all; write as plain file and ignore the encoding. */ /* FIXME: Should we do a base64 or QP decoding? */ } else { - /* Write new mime headers using the old content-* values. */ + /* Write new mime headers using the original content-* values. */ for (i=0; i < DIM (ct_names); i++) { line = rfc822parse_get_field (ctx->msg, ct_names[i], -1, NULL); - log_debug ("OLD CT is '%s'\n", line); + if (opt.verbose) + log_info ("original Content-type is '%s'\n", line); if (line) { es_fprintf (gpginfp, "%s\r\n", line); |