Closed Bug 98294 Opened 23 years ago Closed 23 years ago

Problems of the list command on Lotus Domino IMAP server

Categories

(MailNews Core :: Networking: IMAP, defect)

x86
Windows NT
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: huang, Assigned: cavin)

References

Details

(Whiteboard: PDT+)

Attachments

(1 file)

Now, bug 94305 is resolved - users can subscribe & unsubscribe and access subfolders on Lotus Domino IMAP server. But, I am still seeing some problem for the list command as the following problem on the IMAP log.... I am logging this bug for tracking the rest issues from this lotus Domino IMAP server. ---------------------------------------------------------------------------- 323[4d95630]: 198.112.211.44:S-INBOX:SendData: 74 list "" "k1/k2/%/%" 323[4d95630]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 74 OK LIST completed 323[4d95630]: 198.112.211.44:S-INBOX:SendData: 75 list "" "k1/k2/k3/%" 323[4d95630]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 75 OK LIST completed 323[4d95630]: 198.112.211.44:S-INBOX:SendData: 76 list "" "k1/k2/k3/%/%" 323[4d95630]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 76 OK LIST completed 323[4d95630]: 198.112.211.44:S-INBOX:SendData: 77 list "" "k1/k2/k3/k4/%" 323[4d95630]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 77 OK LIST completed 323[4d95630]: 198.112.211.44:S-INBOX:SendData: 78 list "" "k1/k2/k3/k4/%/%" 323[4d95630]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 78 OK LIST completed -----------------------------------------------------------------------------
Summary: list command with on Lotus Domino IMAP server → Problems of the list command on Lotus Domino IMAP server
Ccing Wei-Lee. BTW - Cavin & I found that your server display all the subfolders when execute list "" "%\\%" as following, is this server problem? 323[4d95630]: 198.112.211.44:S-INBOX:SendData: 47 list "" "%\\%" 323[4d95630]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST () "\\" {21} 323[4d95630]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 0904_test1\0904_test2 323[4d95630]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST () "\\" {32} 323[4d95630]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 0904_test1\0904_test2\0904_test3 323[4d95630]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST () "\\" {43} 323[4d95630]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 0904_test1\0904_test2\0904_test3\0904_test4
OK, the problem seems to be caused by the SetSpec() call in nsImapService::DiscoverChildren(). For some reason CoaleseDirs() (which is one of the lowest level routines called by SetSpec()) in netwerk\base\src\nsURLHelper.cpp) replaces '\' with '/' which eventually makes the 'OnlineSubDirSeparator' in the nsImapUrl object set to '/' instead of '\'. Note that in nsImapService::DiscoverChildren() we already have the right server hierarchy delimiter from the following call: PRUnichar hierarchySeparator = GetHierarchyDelimiter(aImapMailFolder); Then in CreateServerSourceFolderPathString() when we try to come up with the correct server folder pathname we use the delimiter stored in the nsImapUrl object (which was set wrong earlier) to construct the path string. Obviously, the folder pathname will be wrong. So, it seems like in nsImapService::DiscoverChildren() we should make sure that the server hierarchy delimiters in both nsImapUrl and nsMsgFolder objects are the same. A patch is coming up.
Assignee: mscott → cavin
Now that the problem of Domino server's response to the "LIST parentFolder\\%" command is fixed (the response used to be exactly the same as the command "LIST parentFolder\\*"), we need to fix this bug in order for the Domino clients to subscribe to the previously unsubscribed folders. In other words, this bug has the same net effect as bug 68296. Nominating for PDT.
Whiteboard: PDT
marking PDT+ for tracking. What does the fix entail? How risky is it?
Whiteboard: PDT → PDT+
The risk is minimal as it only affects the folder list in the subscribe dialog. Currently we don't issue the right LIST IMAP commands (semantically) to various IMAP servers supporting various hierarchical delimiters such as '/', '.' and '\'. Without the fix Lotus Domino clients won't be able to subscribe folders in some cases.
Comment on attachment 48364 [details] [diff] [review] proposed patch for the problem. sr=mscott
Attachment #48364 - Flags: superreview+
Comment on attachment 48364 [details] [diff] [review] proposed patch for the problem. r=sspitzer
Attachment #48364 - Flags: review+
Fix checked in on trunk.
adding the nsBranch+ keyword for tracking purposes.
Keywords: nsbranch+
Forgot to change resolution.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Reopen for nsBranch+ tracking purpose.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Blocks: 99508
PDT+ per PDT meeting today.
Fix checked into branch.
Status: REOPENED → RESOLVED
Closed: 23 years ago23 years ago
Resolution: --- → FIXED
OK. Verified on 09-17-05-0.9.4 build. Now, I search for list command, and it all displays as following: --------------------------------------------------------------------- 168[469ceb0]: 198.112.211.44:S-INBOX:SendData: 106 list "" "k1\\%" 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "\\" {7} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k1-1 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "\\" {7} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k1-2 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasChildren) "\\" {5} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 106 OK LIST completed 168[469ceb0]: 198.112.211.44:S-INBOX:SendData: 107 list "" "k1\\%\\%" 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "\\" {10} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k2-1 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "\\" {10} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k2-2 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasChildren) "\\" {8} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k3 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 107 OK LIST completed 168[469ceb0]: 198.112.211.44:S-INBOX:SendData: 108 list "" "k1\\k2\\%" 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "\\" {10} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k2-1 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "\\" {10} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k2-2 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasChildren) "\\" {8} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k3 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 108 OK LIST completed 168[469ceb0]: 198.112.211.44:S-INBOX:SendData: 109 list "" "k1\\k2\\%\\%" 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "\\" {13} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k3\k3-1 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "\\" {13} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k3\k3-2 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasChildren) "\\" {11} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k3\k4 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 109 OK LIST completed 168[469ceb0]: 198.112.211.44:S-INBOX:SendData: 110 list "" "k1\\k2\\k3\\%" 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "\\" {13} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k3\k3-1 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "\\" {13} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k3\k3-2 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasChildren) "\\" {11} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k3\k4 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 110 OK LIST completed 168[469ceb0]: 198.112.211.44:S-INBOX:SendData: 111 list "" "k1\\k2\\k3\\%\\%" 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "\\" {16} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k3\k4\k4-1 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "\\" {16} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k3\k4\k4-2 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 111 OK LIST completed 168[469ceb0]: 198.112.211.44:S-INBOX:SendData: 112 list "" "k1\\k2\\k3\\k4\\%" 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "\\" {16} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k3\k4\k4-1 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "\\" {16} 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: k1\k2\k3\k4\k4-2 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 112 OK LIST completed 168[469ceb0]: 198.112.211.44:S-INBOX:SendData: 113 list "" "k1\\k2\\k3\\k4\\%\\%" 168[469ceb0]: 198.112.211.44:S-INBOX:CreateNewLineFromSocket: 113 OK LIST completed ------------------------------------------------------------------------------- And on the subscribe Dialog for subscribe & unsubscribe, it list all the subfolders now. Marking as verified.
Status: RESOLVED → VERIFIED
Product: MailNews → Core
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: