Fix this to always set an exception if it returns POP3_FAIL, as
authorDan Winship <danw@src.gnome.org>
Thu, 6 Sep 2001 19:09:57 +0000 (19:09 +0000)
committerDan Winship <danw@src.gnome.org>
Thu, 6 Sep 2001 19:09:57 +0000 (19:09 +0000)
* providers/pop3/camel-pop3-store.c (pop3_get_response): Fix this
to always set an exception if it returns POP3_FAIL, as documented.

* providers/pop3/camel-pop3-folder.c (pop3_get_message_stream):
Revert.

camel/ChangeLog
camel/providers/pop3/camel-pop3-folder.c
camel/providers/pop3/camel-pop3-store.c

index 763901d..c4b8905 100644 (file)
@@ -1,3 +1,11 @@
+2001-09-06  Dan Winship  <danw@ximian.com>
+
+       * providers/pop3/camel-pop3-store.c (pop3_get_response): Fix this
+       to always set an exception if it returns POP3_FAIL, as documented.
+
+       * providers/pop3/camel-pop3-folder.c (pop3_get_message_stream):
+       Revert.
+
 2001-09-06  Jeffrey Stedfast  <fejj@ximian.com>
 
        * providers/pop3/camel-pop3-folder.c (pop3_get_message_stream):
index a87c77f..d18680d 100644 (file)
@@ -40,8 +40,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include <errno.h>
-
 #define CF_CLASS(o) (CAMEL_FOLDER_CLASS (CAMEL_OBJECT_GET_CLASS(o)))
 static CamelFolderClass *parent_class;
 
@@ -333,11 +331,11 @@ pop3_get_message_stream (CamelFolder *folder, int id, gboolean headers_only, Cam
                                     &result, ex, headers_only ? "TOP %d 0" : "RETR %d", id);
        switch (status) {
        case CAMEL_POP3_ERR:
-       case CAMEL_POP3_FAIL:
                camel_exception_setv (ex, CAMEL_EXCEPTION_SERVICE_UNAVAILABLE,
-                                     _("Could not fetch message: %s"), result ? result :
-                                     errno ? g_strerror (errno) : _("Unknown error"));
+                                     _("Could not fetch message: %s"), result);
                g_free (result);
+               /* fall through */
+       case CAMEL_POP3_FAIL:
                camel_operation_end (NULL);
                return NULL;
        }
index 8a0f8b6..e5f6144 100644 (file)
@@ -561,8 +561,12 @@ pop3_get_response (CamelPop3Store *store, char **ret, CamelException *ex)
                status = CAMEL_POP3_OK;
        else if (!strncmp (respbuf, "-ERR", 4))
                status = CAMEL_POP3_ERR;
-       else
+       else {
                status = CAMEL_POP3_FAIL;
+               camel_exception_setv (ex, CAMEL_EXCEPTION_SERVICE_UNAVAILABLE,
+                                     _("Unexpected response from POP server: %s"),
+                                     respbuf);
+       }
        
        if (ret) {
                if (status != CAMEL_POP3_FAIL) {