]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Forget about greeter IO watch when it is complete so we don't try and remove it on...
authorRobert Ancell <robert.ancell@canonical.com>
Mon, 9 Dec 2013 22:48:18 +0000 (11:48 +1300)
committerRobert Ancell <robert.ancell@canonical.com>
Mon, 9 Dec 2013 22:48:18 +0000 (11:48 +1300)
src/greeter.c

index 4d962d5f80dae014204efcbde6c83236da71e5a0..4ed18c2fe17f71b7fbf87c4800c3487ce8007d26 100644 (file)
@@ -712,6 +712,7 @@ read_cb (GIOChannel *source, GIOCondition condition, gpointer data)
     if (condition == G_IO_HUP)
     {
         l_debug (greeter, "Greeter closed communication channel");
+        greeter->priv->from_greeter_watch = 0;
         return FALSE;
     }
   
@@ -720,7 +721,10 @@ read_cb (GIOChannel *source, GIOCondition condition, gpointer data)
     {
         n_to_read = get_message_length (greeter);
         if (n_to_read <= HEADER_SIZE)
+        {
+            greeter->priv->from_greeter_watch = 0;
             return FALSE;
+        }
     }
 
     status = g_io_channel_read_chars (greeter->priv->from_greeter_channel,
@@ -782,6 +786,7 @@ read_cb (GIOChannel *source, GIOCondition condition, gpointer data)
         if (n_secrets > max_secrets)
         {
             l_warning (greeter, "Array length of %u elements too long", n_secrets);
+            greeter->priv->from_greeter_watch = 0;
             return FALSE;
         }
         secrets = g_malloc (sizeof (gchar *) * (n_secrets + 1));