File xfce4-mailwatch-plugin-1.1.0-fix-high-cpu-usage-while-checking-mail.patch of Package xfce4-panel-plugins

diff -ur xfce4-mailwatch-plugin-1.1.0.orig/libmailwatch-core/mailwatch-net-conn.c xfce4-mailwatch-plugin-1.1.0/libmailwatch-core/mailwatch-net-conn.c
--- xfce4-mailwatch-plugin-1.1.0.orig/libmailwatch-core/mailwatch-net-conn.c	2008-09-15 07:14:45.000000000 +0200
+++ xfce4-mailwatch-plugin-1.1.0/libmailwatch-core/mailwatch-net-conn.c	2010-12-05 11:13:09.000000000 +0100
@@ -765,10 +765,16 @@
             return -1;
         } else if(!block)
             return 0;
-    } while(ret < 0 && EINTR == errno && !TIMER_EXPIRED(RECV_TIMEOUT)
-            && SHOULD_CONTINUE(net_conn));
+    } while((ret == 0 || (ret < 0 && EINTR == errno))
+            && !TIMER_EXPIRED(RECV_TIMEOUT) && SHOULD_CONTINUE(net_conn));
 
-    if(!SHOULD_CONTINUE(net_conn)) {
+    if(ret < 0 && EINTR != errno) {
+        if(error) {
+            g_set_error(error, XFCE_MAILWATCH_ERROR,
+            XFCE_MAILWATCH_ERROR_FAILED, strerror(errno));
+        }
+        return -1;
+    } else if(!SHOULD_CONTINUE(net_conn)) {
         if(error) {
             g_set_error(error, XFCE_MAILWATCH_ERROR,
                         XFCE_MAILWATCH_ERROR_ABORTED, _("Operation aborted"));
openSUSE Build Service is sponsored by