From c69cd2b93ca36995ca7ddd3976caa101fb9f717b Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Sun, 10 Jul 2022 19:23:01 -0400 Subject: [PATCH] Convert RFC2047-encoded strings to UTF8 before display --- citadel/server/internet_addressing.c | 3 ++- webcit-ng/forum_view.c | 1 + webcit-ng/room_functions.c | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/citadel/server/internet_addressing.c b/citadel/server/internet_addressing.c index 5acf8b781..31e3fe2d8 100644 --- a/citadel/server/internet_addressing.c +++ b/citadel/server/internet_addressing.c @@ -1347,8 +1347,9 @@ char *harvest_collected_addresses(struct CtdlMessage *msg) { if (!CM_IsEmpty(msg, field)) { for (j=0; jcm_fields[field], ','); ++j) { extract_token(addr, msg->cm_fields[field], j, ',', sizeof addr); - if (strstr(addr, "=?") != NULL) + if (strstr(addr, "=?") != NULL) { utf8ify_rfc822_string(addr); + } process_rfc822_addr(addr, user, node, name); h = CtdlHostAlias(node); if (h != hostalias_localhost) { diff --git a/webcit-ng/forum_view.c b/webcit-ng/forum_view.c index 591e5fc55..90ef33746 100644 --- a/webcit-ng/forum_view.c +++ b/webcit-ng/forum_view.c @@ -44,6 +44,7 @@ void json_render_one_message(struct http_transaction *h, struct ctdlsession *c, JsonObjectAppend(j, NewJsonNumber(HKEY("msgnum"), msgnum)); while ((ctdl_readline(c, buf, sizeof(buf)) >= 0) && (strcmp(buf, "text")) && (strcmp(buf, "000"))) { + utf8ify_rfc822_string(&buf[5]); // citadel header parsing here if (!strncasecmp(buf, "from=", 5)) { diff --git a/webcit-ng/room_functions.c b/webcit-ng/room_functions.c index 48701159d..bafb7c9dd 100644 --- a/webcit-ng/room_functions.c +++ b/webcit-ng/room_functions.c @@ -83,6 +83,7 @@ void json_mailbox(struct http_transaction *h, struct ctdlsession *c) { ctdl_readline(c, buf, sizeof(buf)); if (buf[0] == '1') { while (ctdl_readline(c, buf, sizeof(buf)), (strcmp(buf, "000"))) { + utf8ify_rfc822_string(buf); JsonValue *jmsg = NewJsonObject(HKEY("message")); JsonObjectAppend(jmsg, NewJsonNumber(HKEY("msgnum"), extract_long(buf, 0))); JsonObjectAppend(jmsg, NewJsonNumber(HKEY("time"), extract_long(buf, 1))); -- 2.39.2