Ticket #1105: imap4_flags.py

File imap4_flags.py, 1014 bytes (added by therve, 14 years ago)

Patch for unsolicited flags response on imap4

Line 
1Index: imap4.py
2===================================================================
3--- imap4.py    (revision 16040)
4+++ imap4.py    (working copy)
5@@ -364,9 +364,16 @@
6             names = parseNestedParens(L)
7             N = len(names)
8             if (N >= 1 and names[0] in self._1_RESPONSES or
9-                N >= 2 and names[1] in self._2_RESPONSES or
10                 N >= 2 and names[0] == 'OK' and isinstance(names[1], types.ListType) and names[1][0] in self._OK_RESPONSES):
11                 send.append(L)
12+            elif N >= 3 and names[1] in self._2_RESPONSES:
13+                if isinstance(names[2], types.ListType) and len(names[2]) >= 1 and \
14+                   names[2][0] == 'FLAGS' and 'FLAGS' not in self.args:
15+                    unuse.append(L)
16+                else:
17+                    send.append(L)
18+            elif N >= 2 and names[1] in self._2_RESPONSES:
19+                send.append(L)
20             else:
21                 unuse.append(L)
22         d, self.defer = self.defer, None