From 4db7f7f07bdb51af338765afca95809e42d05f4e Mon Sep 17 00:00:00 2001 From: netblue30 Date: Thu, 25 Feb 2016 09:32:44 -0500 Subject: x11 fixes --- src/firejail/x11.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/firejail/x11.c b/src/firejail/x11.c index 8f9a4c11f..e09bb3411 100644 --- a/src/firejail/x11.c +++ b/src/firejail/x11.c @@ -199,23 +199,32 @@ void x11_start(int argc, char **argv) { perror("execvp"); exit(1); } - sleep(1); - - if (arg_debug) { - printf("X11 sockets: "); fflush(0); - int rv = system("ls /tmp/.X11-unix"); - (void) rv; - } // check X11 socket char *fname; if (asprintf(&fname, "/tmp/.X11-unix/X%d", display) == -1) errExit("asprintf"); - if (stat(fname, &s) == -1) { + int n = 0; + // wait for x11 server to start + while (++n < 10) { + sleep(1); + if (stat(fname, &s) == 0) + break; + }; + + if (n == 10) { fprintf(stderr, "Error: failed to start xpra\n"); exit(1); } + free(fname); + sleep(1); + if (arg_debug) { + printf("X11 sockets: "); fflush(0); + int rv = system("ls /tmp/.X11-unix"); + (void) rv; + } + // run attach command client = fork(); if (client < 0) -- cgit v1.2.3-70-g09d2