aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/imap4
diff options
context:
space:
mode:
Diffstat (limited to 'camel/providers/imap4')
-rw-r--r--camel/providers/imap4/camel-imap4-command.c1
-rw-r--r--camel/providers/imap4/camel-imap4-engine.c1
-rw-r--r--camel/providers/imap4/camel-imap4-folder.c9
-rw-r--r--camel/providers/imap4/camel-imap4-store.c26
-rw-r--r--camel/providers/imap4/camel-imap4-summary.c7
-rw-r--r--camel/providers/imap4/camel-imap4-utils.c1
6 files changed, 31 insertions, 14 deletions
diff --git a/camel/providers/imap4/camel-imap4-command.c b/camel/providers/imap4/camel-imap4-command.c
index 9b6061dbd4..b01abe9141 100644
--- a/camel/providers/imap4/camel-imap4-command.c
+++ b/camel/providers/imap4/camel-imap4-command.c
@@ -29,6 +29,7 @@
#include <camel/camel-stream-null.h>
#include <camel/camel-stream-filter.h>
#include <camel/camel-mime-filter-crlf.h>
+#include <camel/camel-i18n.h>
#include "camel-imap4-stream.h"
#include "camel-imap4-engine.h"
diff --git a/camel/providers/imap4/camel-imap4-engine.c b/camel/providers/imap4/camel-imap4-engine.c
index 88c03310ae..f2e94f27a4 100644
--- a/camel/providers/imap4/camel-imap4-engine.c
+++ b/camel/providers/imap4/camel-imap4-engine.c
@@ -28,6 +28,7 @@
#include <camel/camel-sasl.h>
#include <camel/camel-stream-buffer.h>
+#include <camel/camel-i18n.h>
#include "camel-imap4-summary.h"
#include "camel-imap4-command.h"
diff --git a/camel/providers/imap4/camel-imap4-folder.c b/camel/providers/imap4/camel-imap4-folder.c
index 7175a81476..81296985bc 100644
--- a/camel/providers/imap4/camel-imap4-folder.c
+++ b/camel/providers/imap4/camel-imap4-folder.c
@@ -42,6 +42,7 @@
#include <camel/camel-stream-mem.h>
#include <camel/camel-stream-filter.h>
#include <camel/camel-mime-filter-crlf.h>
+#include <camel/camel-i18n.h>
#include "camel-imap4-utils.h"
#include "camel-imap4-store.h"
@@ -278,7 +279,7 @@ camel_imap4_folder_new (CamelStore *store, const char *full_name, CamelException
utf7_name = camel_utf8_utf7 (utf7_name);
- folder = (CamelFolder *) imap_folder = (CamelIMAP4Folder *) camel_object_new (CAMEL_TYPE_IMAP4_FOLDER);
+ folder = (CamelFolder *) (imap_folder = (CamelIMAP4Folder *)camel_object_new (CAMEL_TYPE_IMAP4_FOLDER));
camel_folder_construct (folder, store, full_name, name);
imap_folder->utf7_name = utf7_name;
@@ -399,7 +400,7 @@ imap4_sync_changes (CamelFolder *folder, GPtrArray *sync, CamelException *ex)
continue;
for (j = 0; j < sync->len; j++) {
- iinfo = (CamelIMAP4MessageInfo *) info = sync->pdata[j];
+ iinfo = (CamelIMAP4MessageInfo *) (info = sync->pdata[j]);
camel_imap4_flags_diff (&diff, iinfo->server_flags, info->flags);
if (diff.changed & imap4_flags[i].flag) {
if (diff.bits & imap4_flags[i].flag) {
@@ -432,7 +433,7 @@ imap4_sync_changes (CamelFolder *folder, GPtrArray *sync, CamelException *ex)
return-1;
for (i = 0; i < sync->len; i++) {
- iinfo = (CamelIMAP4MessageInfo *) info = sync->pdata[i];
+ iinfo = (CamelIMAP4MessageInfo *) (info = sync->pdata[i]);
info->flags &= ~CAMEL_MESSAGE_FOLDER_FLAGGED;
iinfo->server_flags = info->flags & folder->permanent_flags;
}
@@ -458,7 +459,7 @@ imap4_sync (CamelFolder *folder, gboolean expunge, CamelException *ex)
sync = g_ptr_array_new ();
max = camel_folder_summary_count (folder->summary);
for (i = 0; i < max; i++) {
- iinfo = (CamelIMAP4MessageInfo *) info = camel_folder_summary_index (folder->summary, i);
+ iinfo = (CamelIMAP4MessageInfo *) (info = camel_folder_summary_index (folder->summary, i));
if (info->flags & CAMEL_MESSAGE_FOLDER_FLAGGED) {
camel_imap4_flags_diff (&diff, iinfo->server_flags, info->flags);
diff.changed &= folder->permanent_flags;
diff --git a/camel/providers/imap4/camel-imap4-store.c b/camel/providers/imap4/camel-imap4-store.c
index 1e9e742f29..a4ca4c4e9e 100644
--- a/camel/providers/imap4/camel-imap4-store.c
+++ b/camel/providers/imap4/camel-imap4-store.c
@@ -34,6 +34,8 @@
#include <camel/camel-private.h>
+#include <camel/camel-i18n.h>
+
#include "camel-imap4-store.h"
#include "camel-imap4-engine.h"
#include "camel-imap4-folder.h"
@@ -275,13 +277,14 @@ connect_to_server (CamelIMAP4Engine *engine, struct addrinfo *ai, int ssl_mode,
static struct {
char *value;
char *serv;
+ char *port;
int mode;
} ssl_options[] = {
- { "", "imaps", MODE_SSL }, /* really old (1.x) */
- { "always", "imaps", MODE_SSL },
- { "when-possible", "imap", MODE_TLS },
- { "never", "imap", MODE_CLEAR },
- { NULL, "imap", MODE_CLEAR },
+ { "", "imaps", "993", MODE_SSL }, /* really old (1.x) */
+ { "always", "imaps", "993", MODE_SSL },
+ { "when-possible", "imap", "143", MODE_TLS },
+ { "never", "imap", "143", MODE_CLEAR },
+ { NULL, "imap", "143", MODE_CLEAR },
};
static gboolean
@@ -292,27 +295,36 @@ connect_to_server_wrapper (CamelIMAP4Engine *engine, CamelException *ex)
const char *ssl_mode;
int mode, ret, i;
char *serv;
-
+ const char *port;
+
if ((ssl_mode = camel_url_get_param (service->url, "use_ssl"))) {
for (i = 0; ssl_options[i].value; i++)
if (!strcmp (ssl_options[i].value, ssl_mode))
break;
mode = ssl_options[i].mode;
serv = ssl_options[i].serv;
+ port = ssl_options[i].port;
} else {
mode = MODE_CLEAR;
serv = "imap";
+ port = "143";
}
if (service->url->port) {
serv = g_alloca (16);
sprintf (serv, "%d", service->url->port);
+ port = NULL;
}
memset (&hints, 0, sizeof (hints));
hints.ai_socktype = SOCK_STREAM;
hints.ai_family = PF_UNSPEC;
- if (!(ai = camel_getaddrinfo (service->url->host, serv, &hints, ex)))
+ ai = camel_getaddrinfo (service->url->host, serv, &hints, ex);
+ if (ai == NULL && port != NULL && camel_exception_get_id(ex) != CAMEL_EXCEPTION_USER_CANCEL) {
+ camel_exception_clear (ex);
+ ai = camel_getaddrinfo (service->url->host, port, &hints, ex);
+ }
+ if (ai == NULL)
return FALSE;
ret = connect_to_server (engine, ai, mode, ex);
diff --git a/camel/providers/imap4/camel-imap4-summary.c b/camel/providers/imap4/camel-imap4-summary.c
index 27b13d9099..c79c36d4d7 100644
--- a/camel/providers/imap4/camel-imap4-summary.c
+++ b/camel/providers/imap4/camel-imap4-summary.c
@@ -35,6 +35,7 @@
#include <e-util/md5-utils.h>
#include <camel/camel-file-utils.h>
+#include <camel/camel-i18n.h>
#include "camel-imap4-store.h"
#include "camel-imap4-engine.h"
@@ -775,20 +776,20 @@ untagged_fetch_all (CamelIMAP4Engine *engine, CamelIMAP4Command *ic, guint32 ind
* server is probably notifying us of a FLAGS change
* by another client? */
g_assert (index < summary->messages->len);
- iinfo = (CamelIMAP4MessageInfo *) info = summary->messages->pdata[index - 1];
+ iinfo = (CamelIMAP4MessageInfo *)(info = summary->messages->pdata[index - 1]);
g_assert (info != NULL);
} else {
if (index > (added->len + fetch->first - 1))
g_ptr_array_set_size (added, index - fetch->first + 1);
if (!(envelope = added->pdata[index - fetch->first])) {
- iinfo = (CamelIMAP4MessageInfo *) info = camel_folder_summary_info_new (summary);
+ iinfo = (CamelIMAP4MessageInfo *) (info = camel_folder_summary_info_new (summary));
envelope = g_new (struct imap4_envelope_t, 1);
added->pdata[index - fetch->first] = envelope;
envelope->info = info;
envelope->changed = 0;
} else {
- iinfo = (CamelIMAP4MessageInfo *) info = envelope->info;
+ iinfo = (CamelIMAP4MessageInfo *) (info = envelope->info);
}
}
diff --git a/camel/providers/imap4/camel-imap4-utils.c b/camel/providers/imap4/camel-imap4-utils.c
index ecad1d28cf..55c6431dc7 100644
--- a/camel/providers/imap4/camel-imap4-utils.c
+++ b/camel/providers/imap4/camel-imap4-utils.c
@@ -28,6 +28,7 @@
#include <errno.h>
#include <camel/camel-store.h>
+#include <camel/camel-i18n.h>
#include "camel-imap4-engine.h"
#include "camel-imap4-stream.h"