Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > ce2e75decdd057e5c961fad858af3221 > files > 28

kdebase4-workspace-4.4.5-0.2mdv2010.2.src.rpm

Index: kdm/backend/server.c
===================================================================
--- kdm/backend/server.c
+++ kdm/backend/server.c	2010-04-12 17:40:26.000000000 +0200
@@ -146,11 +146,28 @@
 void
 startServerFailed()
 {
+	char **args;
+	int ret;
+
 	struct display *d = startingServer;
 	if (!d->serverAttempts || d->startTries < d->serverAttempts) {
 		d->serverStatus = pausing;
 		serverTimeout = d->openDelay + now;
 	} else {
+		if ((args = addStrArr( 0, "/usr/bin/openvt", 15 )) &&
+				(args = addStrArr( args, "-c8", 3 )) &&
+                                (args = addStrArr( args, "-s", 2 )) &&
+                                (args = addStrArr( args, "/usr/bin/XKeepCrashing", 22 ))) {
+
+			ret = runAndWait( args, systemEnviron );
+           if (ret != 1 &&  system( "nohup /sbin/service dm restart" ) != 0 ) {
+               logError( "** Please restart the machine, we failed to restart the X server\n" );
+           }
+			logError( "** runAndWait ret=%d\n", ret );
+			freeStrArr( args );
+		} else {
+			logError( "** failed addStrArr...\n" );
+		}
 		d->serverStatus = ignore;
 		serverTimeout = TO_INF;
 		startingServer = 0;