static unsigned short ImapPort = 0;
static unsigned short ImapsPort = 0;
struct servent *service;
- char tmp[128];
ciss_url_t url;
char *c;
- int n;
if (!ImapPort) {
service = getservbyname ("imap", "tcp");
c = safe_strdup (path);
url_parse_ciss (&url, c);
- if (url.scheme == U_IMAP || url.scheme == U_IMAPS) {
- if (mutt_account_fromurl (&mx->account, &url) < 0) {
- FREE (&c);
- return -1;
- }
-
- mx->mbox = safe_strdup (url.path);
-
- if (url.scheme == U_IMAPS)
- mx->account.flags |= M_ACCT_SSL;
+ if (!(url.scheme == U_IMAP || url.scheme == U_IMAPS) ||
+ mutt_account_fromurl (&mx->account, &url) < 0) {
FREE (&c);
+ return -1;
}
- /* old PINE-compatibility code */
- else {
- FREE (&c);
- if (sscanf (path, "{%127[^}]}", tmp) != 1)
- return -1;
- c = strchr (path, '}');
- if (!c)
- return -1;
- else
- /* walk past closing '}' */
- mx->mbox = safe_strdup (c + 1);
-
- if ((c = strrchr (tmp, '@'))) {
- *c = '\0';
- strfcpy (mx->account.user, tmp, sizeof (mx->account.user));
- strfcpy (tmp, c + 1, sizeof (tmp));
- mx->account.flags |= M_ACCT_USER;
- }
+ mx->mbox = safe_strdup (url.path);
- if ((n = sscanf (tmp, "%127[^:/]%127s", mx->account.host, tmp)) < 1) {
- debug_print (1, ("NULL host in %s\n", path));
- FREE (&mx->mbox);
- return -1;
- }
+ if (url.scheme == U_IMAPS)
+ mx->account.flags |= M_ACCT_SSL;
- if (n > 1) {
- if (sscanf (tmp, ":%hu%127s", &(mx->account.port), tmp) >= 1)
- mx->account.flags |= M_ACCT_PORT;
- if (sscanf (tmp, "/%s", tmp) == 1) {
- if (!ascii_strncmp (tmp, "ssl", 3))
- mx->account.flags |= M_ACCT_SSL;
- else {
- debug_print (1, ("Unknown connection type in %s\n", path));
- FREE (&mx->mbox);
- return -1;
- }
- }
- }
- }
+ FREE (&c);
#if defined(USE_SSL) || defined(USE_GNUTLS)
if (option (OPTIMAPFORCESSL))
case '+':
{
#ifdef USE_IMAP
- /* if folder = {host} or imap[s]://host/: don't append slash */
- if (imap_is_magic (NONULL (Maildir), NULL) == M_IMAP &&
- (Maildir[safe_strlen (Maildir) - 1] == '}' ||
- Maildir[safe_strlen (Maildir) - 1] == '/'))
+ /* if folder = imap[s]://host/: don't append slash */
+ if (imap_is_magic (NONULL (Maildir), NULL) == M_IMAP &&
+ Maildir[safe_strlen (Maildir) - 1] == '/')
strfcpy (p, NONULL (Maildir), sizeof (p));
else
#endif
}
while (recurse);
-#ifdef USE_IMAP
- /* Rewrite IMAP path in canonical form - aids in string comparisons of
- * folders. May possibly fail, in which case s should be the same. */
- if (imap_is_magic (s, NULL) == M_IMAP)
- imap_expand_path (s, slen);
-#endif
-
return (s);
}