summaryrefslogtreecommitdiff
path: root/daemon/gdm-server.c
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2012-09-18 11:33:50 -0400
committerRay Strode <rstrode@redhat.com>2012-09-18 11:34:46 -0400
commit668f0ddc57ac0675cd39e3a04e645d99c20dcf15 (patch)
treec70e09370d8f0e6b9e8dffe31c21d03d9cfd9ca9 /daemon/gdm-server.c
parent000082971a288809f9f6df0ec55296f8030a1064 (diff)
downloadgdm-668f0ddc57ac0675cd39e3a04e645d99c20dcf15.tar.gz
server: clean up error handling
Don't bother creating a child watch if we're about to fail anyway. Don't exit from gdm-server.c, we do clean up from gdm-simple-slave.c
Diffstat (limited to 'daemon/gdm-server.c')
-rw-r--r--daemon/gdm-server.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
index d271cbad..d8b17a2c 100644
--- a/daemon/gdm-server.c
+++ b/daemon/gdm-server.c
@@ -722,7 +722,7 @@ gdm_server_spawn (GdmServer *server,
g_warning (_("%s: Empty server command for display %s"),
"gdm_server_spawn",
server->priv->display_name);
- _exit (SERVER_ABORT);
+ goto out;
}
env = get_server_environment (server);
@@ -755,12 +755,15 @@ gdm_server_spawn (GdmServer *server,
g_ptr_array_foreach (env, (GFunc)g_free, NULL);
g_ptr_array_free (env, TRUE);
- g_debug ("GdmServer: Started X server process %d - waiting for READY", (int)server->priv->pid);
+ if (ret) {
+ g_debug ("GdmServer: Started X server process %d - waiting for READY", (int)server->priv->pid);
- server->priv->child_watch_id = g_child_watch_add (server->priv->pid,
- (GChildWatchFunc)server_child_watch,
- server);
+ server->priv->child_watch_id = g_child_watch_add (server->priv->pid,
+ (GChildWatchFunc)server_child_watch,
+ server);
+ }
+out:
return ret;
}