summaryrefslogtreecommitdiffstats
path: root/tools/gpg-mail-tube.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2024-11-07 10:49:52 +0100
committerWerner Koch <wk@gnupg.org>2024-11-07 10:51:04 +0100
commit567fb6eaa037cc3fea46452e58cd720d77d7235d (patch)
tree5bc5a4b734affe1959e218e76f10ab5607c91e86 /tools/gpg-mail-tube.c
parentgpgtar: Use log-file from common.conf only in --batch mode. (diff)
downloadgnupg2-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.c24
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);