Use mcookie to generate X server cookie
diff --git a/unix/vncserver b/unix/vncserver
index a4d6ad9..725cbd5 100755
--- a/unix/vncserver
+++ b/unix/vncserver
@@ -238,24 +238,9 @@
$desktopLog = "$vncUserDir/$host:$displayNumber.log";
unlink($desktopLog);
-# Make an X server cookie - use /dev/urandom on systems that have it,
-# otherwise use perl's random number generator, seeded with the sum
-# of the current time, our PID and part of the encrypted form of the password.
+# Make an X server cookie and set up the Xauthority file
-my $cookie = "";
-if (open(URANDOM, '<', '/dev/urandom')) {
- my $randata;
- if (sysread(URANDOM, $randata, 16) == 16) {
- $cookie = unpack 'h*', $randata;
- }
- close(URANDOM);
-}
-if ($cookie eq "") {
- srand(time+$$+unpack("L",`cat $vncUserDir/passwd`));
- for (1..16) {
- $cookie .= sprintf("%02x", int(rand(256)) % 256);
- }
-}
+$cookie = `mcookie`;
system("xauth -f $xauthorityFile add $host:$displayNumber . $cookie");
system("xauth -f $xauthorityFile add $host/unix:$displayNumber . $cookie");
@@ -791,7 +776,7 @@
#
cmd:
- foreach $cmd ("uname","xauth") {
+ foreach $cmd ("uname","mcookie","xauth") {
for (split(/:/,$ENV{PATH})) {
if (-x "$_/$cmd") {
next cmd;