<<< Date Index >>>     <<< Thread Index >>>

imap/2435: capability needs to be rechecked after login



>Number:         2435
>Notify-List:    deckrider@xxxxxxxxx
>Category:       imap
>Synopsis:       capability needs to be rechecked after login
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    mutt-dev
>State:          open
>Keywords:       
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Aug 22 05:36:37 +0200 2006
>Originator:     David Everly
>Release:        1.5.13
>Organization:
I've also opened a debian bug report:

http://bugs.debian.org/384076
>Environment:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.6.16-2-686
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
>Description:
Running mutt against Mirapoint IMAP4PROXY 3.5.8-GR server, the server gives the 
following capabilities before login:

CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS

However, after login if mutt would check, the following capabilities would be 
returned instead:

CAPABILITY IMAP4 IMAP4rev1 IDLE LOGIN-REFERRALS MAILBOX-REFERRALS
NAMESPACE LITERAL+ UIDPLUS CHILDREN

Note that ACL is no longer in the list after login.

It seems to be within the spirit of the rfcs, to recheck after login...here is 
a small patch to mutt 1.5.13 that will re-ask the capabilities after 
authentication.
>How-To-Repeat:
Here is the debug output before applying the attached patch.  Note that the 
server doesn't know about MYRIGHTS.  Mutt would know this and not ask, if it 
had re-checked capabilities after login:

Connected to imap.mcilink.com:143 on fd=4
4< * OK Mirapoint IMAP4PROXY 3.5.8-GR server ready
IMAP queue drained
4> a0000 CAPABILITY^M
4< * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS
Handling CAPABILITY
4< a0000 OK Completed
IMAP queue drained
imap_authenticate: Using any available method.
local ip: 166.34.132.36;41513, remote ip:166.38.62.50;143
SASL: No worthy mechs found
imap_auth_sasl: IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS
unavailableSending LOGIN command for c-david.everly@xxxxxxxxxx
4< a0001 OK LOGIN completed.
IMAP queue drained
4> a0002 LIST "" ""^M
4< * LIST (\Noselect) "/" ""
Root delimiter: /
4< a0002 OK LIST completed.
IMAP queue drained
4> a0003 MYRIGHTS "INBOX"^M
a0004 STATUS "INBOX.Drafts" (MESSAGES)^M
a0005 SELECT "INBOX"^M
4< a0003 BAD Protocol Error: "Unidentifiable command specified".


>Fix:
Apply the patch.
>Add-To-Audit-Trail:

>Unformatted:
 ----gnatsweb-attachment----
 Content-Type: text/x-patch; name="mutt-imap.patch"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename="mutt-imap.patch"
 
 LS0tIGltYXAvaW1hcC5jCTIwMDYtMDgtMjEgMTU6MzA6MjYuMDAwMDAwMDAwIC0wNjAwCisrKyBp
 bWFwL2ltYXAuYwkyMDA2LTA4LTIxIDE1OjMyOjAzLjAwMDAwMDAwMCAtMDYwMApAQCAtMzc2LDYg
 KzM3Niw3IEBACiAgIH0KICAgaWYgKG5ldyAmJiBpZGF0YS0+c3RhdGUgPT0gSU1BUF9BVVRIRU5U
 SUNBVEVEKQogICB7CisgICAgaW1hcF9jaGVja19jYXBhYmlsaXRpZXMgKGlkYXRhKTsKICAgICAv
 KiBnZXQgcm9vdCBkZWxpbWl0ZXIsICcvJyBhcyBkZWZhdWx0ICovCiAgICAgaWRhdGEtPmRlbGlt
 ID0gJy8nOwogICAgIGltYXBfY21kX3F1ZXVlIChpZGF0YSwgIkxJU1QgXCJcIiBcIlwiIik7Cg==