From 56d530b4516c3dff1aea80197d1e499532cd8b02 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sun, 15 Sep 1996 21:13:23 +0000 Subject: [PATCH] (get_local_xsocket): try to bind the socket instead of checking for existence with lstat. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@744 ec53bebd-3082-4978-b11e-865c3cabbd6b --- appl/kx/common.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/appl/kx/common.c b/appl/kx/common.c index bb17bb86f..e48dbdbe2 100644 --- a/appl/kx/common.c +++ b/appl/kx/common.c @@ -112,18 +112,18 @@ get_local_xsocket (int *num) struct stat statbuf; sprintf (addr.sun_path, TMPX11 "/X%u", dpy); - if(lstat(addr.sun_path, &statbuf) < 0 && errno == ENOENT) + if(bind(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) + if (errno == EADDRINUSE) + continue; + else + return -1; + else break; } if (dpy == 256) { fprintf (stderr, "%s: no free x-servers\n", prog); return -1; } - if(bind (fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) { - fprintf (stderr, "%s: bind: %s\n", prog, - strerror(errno)); - return -1; - } if (listen (fd, SOMAXCONN) < 0) { fprintf (stderr, "%s: listen: %s\n", prog, strerror(errno));