From 78335df3db2501a17ec5df90f811c083db7f8a2c Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 31 Oct 2020 13:27:09 +0100 Subject: [PATCH] Workaround large QUOTA responses --- .../com/sun/mail/imap/protocol/IMAPProtocol.java | 5 ++++- patches/JavaMail.patch | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java b/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java index 3b22fdfaed..07eec0664d 100644 --- a/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java +++ b/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java @@ -2953,7 +2953,10 @@ public class IMAPProtocol extends Protocol { long usage = r.readLong(); long limit = r.readLong(); Quota.Resource res = new Quota.Resource(name, usage, limit); - v.add(res); + if ("STORAGE".equals(name) && v.size() < 32) + v.add(res); + else + eu.faircode.email.Log.w("Dropping QUOTA " + name + "/" + usage + "/" + limit + " count=" + v.size()); } } q.resources = v.toArray(new Quota.Resource[v.size()]); diff --git a/patches/JavaMail.patch b/patches/JavaMail.patch index 5ba501ff20..2a4a293a2a 100644 --- a/patches/JavaMail.patch +++ b/patches/JavaMail.patch @@ -379,3 +379,19 @@ diff -rupN /home/marcel/JavaMail/mail/src/main/java/com/sun/mail/imap/protocol/I } } } +diff --git a/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java b/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java +index 3b22fdfae..07eec0664 100644 +--- a/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java ++++ b/app/src/main/java/com/sun/mail/imap/protocol/IMAPProtocol.java +@@ -2953,7 +2953,10 @@ public class IMAPProtocol extends Protocol { + long usage = r.readLong(); + long limit = r.readLong(); + Quota.Resource res = new Quota.Resource(name, usage, limit); +- v.add(res); ++ if ("STORAGE".equals(name) && v.size() < 32) ++ v.add(res); ++ else ++ eu.faircode.email.Log.w("Dropping QUOTA " + name + "/" + usage + "/" + limit + " count=" + v.size()); + } + } + q.resources = v.toArray(new Quota.Resource[v.size()]);