diff options
Diffstat (limited to 'camel')
-rw-r--r-- | camel/ChangeLog | 18 | ||||
-rw-r--r-- | camel/camel-tcp-stream-ssl.c | 3 | ||||
-rw-r--r-- | camel/providers/imap4/camel-imap4-command.c | 16 | ||||
-rw-r--r-- | camel/providers/imap4/camel-imap4-engine.c | 6 | ||||
-rw-r--r-- | camel/providers/imap4/camel-imap4-store.c | 8 |
5 files changed, 42 insertions, 9 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index d4419611b9..fe763f9fe3 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,21 @@ +2004-06-04 Jeffrey Stedfast <fejj@novell.com> + + * camel-tcp-stream-ssl.c (stream_flush): Always just return 0, + don't try to PR_Sync() - fsync on a socket causes an error. + + * providers/imap4/camel-imap4-command.c + (camel_imap4_command_step): Set exceptions when write/flush fail. + + * providers/imap4/camel-imap4-engine.c + (camel_imap4_engine_take_stream): Set an exception in the case + where we get an unexpected greeting from the server. + + * providers/imap4/camel-imap4-store.c (imap4_create_folder): + store->dir_sep no longer exists, so query the engine for the + directory separator for the parent_folder. + (imap4_build_folder_info): CamelFolderInfo no longer has a path + component. + 2004-06-03 Not Zed <NotZed@Ximian.com> * providers/nntp/camel-nntp-store.c (camel_nntp_command): diff --git a/camel/camel-tcp-stream-ssl.c b/camel/camel-tcp-stream-ssl.c index fd6f4ff550..820912ffa5 100644 --- a/camel/camel-tcp-stream-ssl.c +++ b/camel/camel-tcp-stream-ssl.c @@ -477,7 +477,8 @@ stream_write (CamelStream *stream, const char *buffer, size_t n) static int stream_flush (CamelStream *stream) { - return PR_Sync (((CamelTcpStreamSSL *)stream)->priv->sockfd); + /*return PR_Sync (((CamelTcpStreamSSL *)stream)->priv->sockfd);*/ + return 0; } static int diff --git a/camel/providers/imap4/camel-imap4-command.c b/camel/providers/imap4/camel-imap4-command.c index c1ff3a289b..dc3d43c5d4 100644 --- a/camel/providers/imap4/camel-imap4-command.c +++ b/camel/providers/imap4/camel-imap4-command.c @@ -494,7 +494,7 @@ camel_imap4_command_step (CamelIMAP4Command *ic) if (ic->part == ic->parts) { ic->tag = g_strdup_printf ("%c%.5u", engine->tagprefix, engine->tag++); camel_stream_printf (engine->ostream, "%s ", ic->tag); - d(fprintf (stderr, "sending : %s ", ic->tag)); + d(fprintf (stderr, "sending: %s ", ic->tag)); } #if d(!)0 @@ -514,7 +514,7 @@ camel_imap4_command_step (CamelIMAP4Command *ic) eoln++; if (sending) - fwrite ("sending : ", 1, 10, stderr); + fwrite ("sending: ", 1, 10, stderr); fwrite (linebuf, 1, eoln - linebuf, stderr); linebuf = eoln + 1; @@ -526,11 +526,19 @@ camel_imap4_command_step (CamelIMAP4Command *ic) linebuf = ic->part->buffer; len = ic->part->buflen; - if ((nwritten = camel_stream_write (engine->ostream, linebuf, len)) == -1) + if ((nwritten = camel_stream_write (engine->ostream, linebuf, len)) == -1) { + camel_exception_setv (&ic->ex, CAMEL_EXCEPTION_SYSTEM, + _("Failed sending command to IMAP server %s: %s"), + engine->url->host, g_strerror (errno)); goto exception; + } - if (camel_stream_flush (engine->ostream) == -1) + if (camel_stream_flush (engine->ostream) == -1) { + camel_exception_setv (&ic->ex, CAMEL_EXCEPTION_SYSTEM, + _("Failed sending command to IMAP server %s: %s"), + engine->url->host, g_strerror (errno)); goto exception; + } /* now we need to read the response(s) from the IMAP4 server */ diff --git a/camel/providers/imap4/camel-imap4-engine.c b/camel/providers/imap4/camel-imap4-engine.c index a84ac1dfba..be4a7e8c02 100644 --- a/camel/providers/imap4/camel-imap4-engine.c +++ b/camel/providers/imap4/camel-imap4-engine.c @@ -229,7 +229,8 @@ camel_imap4_engine_take_stream (CamelIMAP4Engine *engine, CamelStream *stream, C if ((code = camel_imap4_engine_handle_untagged_1 (engine, &token, ex)) == -1) { goto exception; } else if (code != CAMEL_IMAP4_UNTAGGED_OK && code != CAMEL_IMAP4_UNTAGGED_PREAUTH) { - /* FIXME: set an error? */ + camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM, _("Unexpected greeting from IMAP server %s."), + engine->url->host); goto exception; } @@ -268,7 +269,10 @@ camel_imap4_engine_capability (CamelIMAP4Engine *engine, CamelException *ex) while ((id = camel_imap4_engine_iterate (engine)) < ic->id && id != -1) ; + fprintf (stderr, "id = %d; status = %d\n", id, ic->status); + if (id == -1 || ic->status != CAMEL_IMAP4_COMMAND_COMPLETE) { + fprintf (stderr, "exception: %s\n", ic->ex.desc); camel_exception_xfer (ex, &ic->ex); retval = -1; } diff --git a/camel/providers/imap4/camel-imap4-store.c b/camel/providers/imap4/camel-imap4-store.c index 85ae32407a..8e228be71a 100644 --- a/camel/providers/imap4/camel-imap4-store.c +++ b/camel/providers/imap4/camel-imap4-store.c @@ -773,11 +773,14 @@ imap4_create_folder (CamelStore *store, const char *parent_name, const char *fol char *utf7_name; const char *c; char *name; + char sep; int id; + sep = imap4_get_path_delim (engine, parent_name); + c = folder_name; while (*c != '\0') { - if (*c == store->dir_sep || strchr ("#%*", *c)) { + if (*c == sep || strchr ("/#%*", *c)) { camel_exception_setv (ex, CAMEL_EXCEPTION_FOLDER_INVALID_PATH, _("The folder name \"%s\" is invalid because " "it contains the character \"%c\""), @@ -959,12 +962,11 @@ imap4_build_folder_info (CamelIMAP4Engine *engine, guint32 flags, GPtrArray *arr p++; } + p = strrchr (name, '/'); camel_url_set_fragment (url, name); fi->full_name = name; - p = strrchr (name, '/'); fi->name = g_strdup (p ? p + 1: name); - fi->path = g_strdup_printf ("/%s", name); fi->uri = camel_url_to_string (url, 0); fi->flags = list->flags; |