mirror of
https://github.com/moparisthebest/k-9
synced 2024-11-24 10:22:15 -05:00
After discussion with cketti, reinstate using LIST to find the path
delimeter, but only if the server does not support NAMESPACE. Since we've encountered non-compliant servers that freak out at the LIST command, enclose in a try/catch structure so that failures do not totally prevent IMAP communication.
This commit is contained in:
parent
ac3fbf7259
commit
44da2e1fe6
@ -90,7 +90,7 @@ public class ImapStore extends Store
|
|||||||
private AuthType mAuthType;
|
private AuthType mAuthType;
|
||||||
private volatile String mPathPrefix;
|
private volatile String mPathPrefix;
|
||||||
private volatile String mCombinedPrefix = null;
|
private volatile String mCombinedPrefix = null;
|
||||||
private volatile String mPathDelimeter;
|
private volatile String mPathDelimeter = null;
|
||||||
|
|
||||||
private LinkedList<ImapConnection> mConnections =
|
private LinkedList<ImapConnection> mConnections =
|
||||||
new LinkedList<ImapConnection>();
|
new LinkedList<ImapConnection>();
|
||||||
@ -2284,6 +2284,29 @@ public class ImapStore extends Store
|
|||||||
mPathPrefix = "";
|
mPathPrefix = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (mPathDelimeter == null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
List<ImapResponse> nameResponses =
|
||||||
|
executeSimpleCommand(String.format("LIST \"\" \"\""));
|
||||||
|
for (ImapResponse response : nameResponses)
|
||||||
|
{
|
||||||
|
if (response.get(0).equals("LIST"))
|
||||||
|
{
|
||||||
|
mPathDelimeter = response.getString(2);
|
||||||
|
if (K9.DEBUG)
|
||||||
|
Log.d(K9.LOG_TAG, "Got path delimeter '" + mPathDelimeter + "' for " + getLogId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Log.e(K9.LOG_TAG, "Unable to get path delimeter using LIST", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (SSLException e)
|
catch (SSLException e)
|
||||||
{
|
{
|
||||||
@ -2986,7 +3009,7 @@ public class ImapStore extends Store
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (K9.DEBUG)
|
if (K9.DEBUG)
|
||||||
Log.d(K9.LOG_TAG, "There are " + flagSyncMsgSeqs + " messages needing flag sync for " + getLogId());
|
Log.d(K9.LOG_TAG, "UIDs for messages needing flag sync are " + flagSyncMsgSeqs + " for " + getLogId());
|
||||||
|
|
||||||
if (flagSyncMsgSeqs.size() > 0)
|
if (flagSyncMsgSeqs.size() > 0)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user