commit dae086c92faa1fd9dac9808e840968797ddaf612
parent 5ace6fc45e6b7ec1cde972d833c97ddf78eb6d72
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date: Wed, 2 Jul 2003 17:18:48 +0000
fix crash when syncing multiple mailboxes over a Tunnel
Diffstat:
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/imap.c b/src/imap.c
@@ -855,6 +855,16 @@ imap_connect (config_t * cfg)
return 0;
}
+static int
+mstrcmp (const char *s1, const char *s2)
+{
+ if (s1 == s2)
+ return 0;
+ if (!s1 || !s2)
+ return 1;
+ return strcmp (s1, s2);
+}
+
/* `box' is the config info for the maildrop to sync. `minuid' is the
* minimum UID to consider. in normal mode this will be 1, but in --fast
* mode we only fetch messages newer than the last one seen in the local
@@ -866,8 +876,9 @@ imap_open (config_t * box, unsigned int minuid, imap_t * imap, int imap_create)
if (imap)
{
/* determine whether or not we can reuse the existing session */
- if (strcmp (box->host, imap->box->host) ||
- strcmp (box->user, imap->box->user) ||
+ if (mstrcmp (box->tunnel, imap->box->tunnel) ||
+ mstrcmp (box->host, imap->box->host) ||
+ mstrcmp (box->user, imap->box->user) ||
box->port != imap->box->port
#if HAVE_LIBSSL
/* ensure that security requirements are met */