It shouldn't be necessary to actually open the XFS unix socket.  If the socket file exists, then XFS is running.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3782 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/unix/vncserver b/unix/vncserver
index 1578a5e..873e8db 100755
--- a/unix/vncserver
+++ b/unix/vncserver
@@ -403,23 +403,20 @@
 
 sub CheckXFS
 {
-    if (@_ == 1) {
-	socket(S, $AF_UNIX, $SOCK_STREAM, 0) || die "$prog: socket failed: $!\n";
-	eval 'setsockopt(S, &SOL_SOCKET, &SO_REUSEADDR, pack("l", 1))';
-	if (!bind(S, pack('S a108', $AF_UNIX, 7100))) {
-	    close(S);
-	    return 0;
+    if ($_[0] == 1) {
+	if (-e "/tmp/.font-unix/fs7100") {
+	    return 1;
 	}
     } else {
 	socket(S, $AF_INET, $SOCK_STREAM, 0) || die "$prog: socket failed: $!\n";
 	eval 'setsockopt(S, &SOL_SOCKET, &SO_REUSEADDR, pack("l", 1))';
-	if (!bind(S, pack('S n a4 x8', $AF_INET, 7100))) {
+	if (!bind(S, pack('S n x12', $AF_INET, 7100))) {
 	    close(S);
-	    return 0;
+	    return 1;
 	}
     }
     close(S);
-    return 1;
+    return 0;
 }
 
 
@@ -714,20 +711,16 @@
 	    if (($os eq "SunOS") && ($osrev !~ /^4/)) {
 		$AF_INET = 2;
 		$SOCK_STREAM = 2;
-		$AF_UNIX = 1;
 	    } else {
 		$AF_INET = 2;
 		$SOCK_STREAM = 1;
-		$AF_UNIX = 1;
 	    }
 	} else {
 	    $AF_INET = &AF_INET;
 	    $SOCK_STREAM = &SOCK_STREAM;
-	    $AF_UNIX = &AF_UNIX;
 	}
     } else {
 	$AF_INET = &AF_INET;
 	$SOCK_STREAM = &SOCK_STREAM;
-	$AF_UNIX = &AF_UNIX;
     }
 }