summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--imap/ChangeLog5
-rw-r--r--imap/fetch.c5
-rw-r--r--imap/imapd.c2
-rw-r--r--imap/imapscanclient.c2
-rw-r--r--imap/imapscanclient.h3
5 files changed, 15 insertions, 2 deletions
diff --git a/imap/ChangeLog b/imap/ChangeLog
index 339bc7e..d91fd8a 100644
--- a/imap/ChangeLog
+++ b/imap/ChangeLog
@@ -1,3 +1,8 @@
+2018-12-09 Sam Varshavchik <mrsam@courier-mta.com>
+
+ * fetch.c: Send an alert about a Unicode messages to a non-Unicode
+ client at most once per IMAP session.
+
5.0.4
2018-11-28 Hideki SAKAMOTO <hsakamt@tsnr.com>
diff --git a/imap/fetch.c b/imap/fetch.c
index d38ca85..5daf150 100644
--- a/imap/fetch.c
+++ b/imap/fetch.c
@@ -299,8 +299,13 @@ int do_fetch(unsigned long n, int byuid, void *p)
return (0);
}
+ if (current_maildir_info.msgs[n-1].err8bitflag)
+ unicode_err=0;
+
if (unicode_err)
{
+ current_maildir_info.msgs[n-1].err8bitflag=1;
+
writes("* OK [ALERT] Message ");
writen(n);
writes(" appears to be a Unicode message and your"
diff --git a/imap/imapd.c b/imap/imapd.c
index b71eb57..a38e2aa 100644
--- a/imap/imapd.c
+++ b/imap/imapd.c
@@ -1334,6 +1334,8 @@ void doNoop(int real_noop)
#endif
new_maildir_info.msgs[j].copiedflag=
current_maildir_info.msgs[i].copiedflag;
+ new_maildir_info.msgs[j].err8bitflag=
+ current_maildir_info.msgs[i].err8bitflag;
++j;
}
diff --git a/imap/imapscanclient.c b/imap/imapscanclient.c
index da79c70..515abc2 100644
--- a/imap/imapscanclient.c
+++ b/imap/imapscanclient.c
@@ -868,7 +868,7 @@ int dowritecache=0;
scaninfo->msgs[i].filename=tempinfo_array[i]->filename;
scaninfo->msgs[i].keywordMsg=NULL;
scaninfo->msgs[i].copiedflag=0;
-
+ scaninfo->msgs[i].err8bitflag=0;
#if SMAP
if (smapflag)
scaninfo->msgs[i].recentflag=0;
diff --git a/imap/imapscanclient.h b/imap/imapscanclient.h
index 2b01180..373bc83 100644
--- a/imap/imapscanclient.h
+++ b/imap/imapscanclient.h
@@ -23,6 +23,7 @@ struct imapscanmessageinfo {
char storeflag; /* Used by imap_addRemoveKeywords() */
+ char err8bitflag; /* Invalid 8 bit header error was reported */
/* When reading keywords, hash messages by filename */
struct imapscanmessageinfo *firstBucket, *nextBucket;
@@ -59,7 +60,7 @@ struct uidplus_info {
unsigned long uid; /* Initialized by imapscan_maildir2 */
unsigned long old_uid; /* Initialized by do_copy() */
-
+
time_t mtime;
} ;