* src/imap.c
authorChristoph Hohmann <reboot@gmx.ch>
Sat, 27 Jul 2002 00:33:32 +0000 (00:33 +0000)
committerChristoph Hohmann <reboot@gmx.ch>
Sat, 27 Jul 2002 00:33:32 +0000 (00:33 +0000)
add another check if a valid msginfo
        was returned

ChangeLog.claws
configure.in
src/imap.c

index 2fedb67..b8fe61f 100644 (file)
@@ -1,3 +1,9 @@
+2002-07-27 [christoph] 0.8.0claws21
+
+       * src/imap.c
+               add another check if a valid msginfo
+               was returned
+
 2002-07-26 [hoa]       0.8.0claws20
 
        * src/folder.c
index 1e9e176..58fdc32 100644 (file)
@@ -8,7 +8,7 @@ MINOR_VERSION=8
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws20
+EXTRA_VERSION=claws21
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index dded5c6..834135f 100644 (file)
@@ -3206,28 +3206,33 @@ MsgInfo *imap_fetch_msginfo(Folder *_folder, FolderItem *item, gint num)
        g_string_assign(str, tmp);
        g_free(tmp);
 
-       if (str->str[0] == '*') {
-               msginfo = imap_parse_envelope(SESSION(session)->sock,
-                                             item, str);
-               if (!msginfo) {
-                       log_warning(_("can't parse envelope: %s\n"), str->str);
-               }
-       }
-       else {
+       /* if the server did not return a envelope */
+       if (str->str[0] != '*') {
                g_string_free(str, TRUE);
                return NULL;
        }
 
+       msginfo = imap_parse_envelope(SESSION(session)->sock,
+                                     item, str);
+
+       /* Read all data on the socket until the server is read for a new command */
        tmp = NULL;
        do {
                g_free(tmp);
                tmp = sock_getline(SESSION(session)->sock);
        } while (!(tmp == NULL || tmp[0] != '*' || tmp[1] != ' '));
+       g_free(tmp);
 
-       msginfo->folder = item;
+       /* if message header could not be parsed */
+       if (!msginfo) {
+               log_warning(_("can't parse envelope: %s\n"), str->str);
+               return NULL;
+       }
 
        g_string_free(str, TRUE);
-       
+
+       msginfo->folder = item;
+
        return msginfo;
 }