From: Stephan Bosch Date: Wed, 27 Aug 2025 00:53:24 +0000 (+0200) Subject: lib-imap-urlauth: imap-urlauth-fetch - Add IMAP_URLAUTH_FETCH_FLAG_UTF8 flag X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e09b95e1c9a3fd041357ec2b97662bdcf802d768;p=thirdparty%2Fdovecot%2Fcore.git lib-imap-urlauth: imap-urlauth-fetch - Add IMAP_URLAUTH_FETCH_FLAG_UTF8 flag --- diff --git a/src/lib-imap-urlauth/imap-urlauth-fetch.c b/src/lib-imap-urlauth/imap-urlauth-fetch.c index 03976a6a69..ac789de82b 100644 --- a/src/lib-imap-urlauth/imap-urlauth-fetch.c +++ b/src/lib-imap-urlauth/imap-urlauth-fetch.c @@ -178,6 +178,8 @@ imap_urlauth_fetch_local(struct imap_urlauth_fetch *ufetch, const char *url, const char *error, *errormsg = NULL, *bpstruct = NULL; enum mail_error error_code; struct imap_msgpart_url *mpurl = NULL; + bool utf8 = HAS_ALL_BITS(url_flags, IMAP_URLAUTH_FETCH_FLAG_UTF8); + enum imap_quote_flags qflags = (utf8 ? IMAP_QUOTE_FLAG_UTF8 : 0); int ret; bool success = TRUE; @@ -208,7 +210,7 @@ imap_urlauth_fetch_local(struct imap_urlauth_fetch *ufetch, const char *url, imap_msgpart_url_set_decode_to_binary(mpurl); if (success && (url_flags & IMAP_URLAUTH_FETCH_FLAG_BODYPARTSTRUCTURE) != 0) { - ret = imap_msgpart_url_get_bodypartstructure(mpurl, 0, + ret = imap_msgpart_url_get_bodypartstructure(mpurl, qflags, &bpstruct, &error); if (ret <= 0) { errormsg = t_strdup_printf( diff --git a/src/lib-imap-urlauth/imap-urlauth-fetch.h b/src/lib-imap-urlauth/imap-urlauth-fetch.h index 628a95ec2c..2f58158690 100644 --- a/src/lib-imap-urlauth/imap-urlauth-fetch.h +++ b/src/lib-imap-urlauth/imap-urlauth-fetch.h @@ -14,6 +14,8 @@ enum imap_urlauth_fetch_flags { IMAP_URLAUTH_FETCH_FLAG_BINARY = 0x04, /* Fetch IMAP bodypartstructure */ IMAP_URLAUTH_FETCH_FLAG_BODYPARTSTRUCTURE = 0x08, + /* IMAP UTF8 extensions active */ + IMAP_URLAUTH_FETCH_FLAG_UTF8 = 0x10, }; struct imap_urlauth_fetch_reply {