summaryrefslogtreecommitdiffstats
path: root/security/seahorse-plugins/files/patch-agent_seahorse-agent-io.c
blob: 4ecd849405c723438b7696cfbbc515e07d21af62 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
--- agent/seahorse-agent-io.c.orig  Sun Aug 28 15:52:02 2005
+++ agent/seahorse-agent-io.c   Fri Oct  7 21:51:25 2005
@@ -412,12 +412,18 @@ io_handler (GIOChannel *source, GIOCondi
     gsize length;
     GError *err = NULL;
     gboolean ret = TRUE;
+    GIOStatus status;
 
     if (condition & G_IO_IN) {
         /* Read 1 line from the io channel, including newline character */
-        g_io_channel_read_line (source, &string, &length, NULL, &err);
+        status = g_io_channel_read_line (source, &string, &length, NULL, &err);
 
-        if (err != NULL) {
+   if (status == G_IO_STATUS_EOF) {
+       free_conn (cn);
+       ret = FALSE;
+   }
+
+   else if (err != NULL) {
             g_critical ("couldn't read from socket: %s", err->message);
             g_clear_error (&err);
             free_conn (cn);
@@ -434,7 +440,7 @@ io_handler (GIOChannel *source, GIOCondi
             g_free (string);
     }
 
-    if (cn && condition & G_IO_HUP) {
+    else if (cn && condition & G_IO_HUP) {
         free_conn (cn);
         ret = FALSE;            /* removes watch */
     }