(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
This commit is contained in:
Assar Westerlund
1996-09-15 21:13:23 +00:00
parent 7ee8ca0553
commit 56d530b451

View File

@@ -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));