Brian P. Hinz 4a11567
diff -up tigervnc-1.0.90-20091221svn3929/unix/vncserver.cookie tigervnc-1.0.90-20091221svn3929/unix/vncserver
Brian P. Hinz 4a11567
--- tigervnc-1.0.90-20091221svn3929/unix/vncserver.cookie	2009-11-12 11:39:54.000000000 +0100
Brian P. Hinz 4a11567
+++ tigervnc-1.0.90-20091221svn3929/unix/vncserver	2009-12-21 16:15:01.907799091 +0100
Brian P. Hinz 4a11567
@@ -189,27 +189,12 @@ $vncPort = 5900 + $displayNumber;
Brian P. Hinz 4a11567
 $desktopLog = "$vncUserDir/$host:$displayNumber.log";
Brian P. Hinz 4a11567
 unlink($desktopLog);
Brian P. Hinz 4a11567
 
Brian P. Hinz 4a11567
-# Make an X server cookie - use /dev/urandom on systems that have it,
Brian P. Hinz 4a11567
-# otherwise use perl's random number generator, seeded with the sum
Brian P. Hinz 4a11567
-# of the current time, our PID and part of the encrypted form of the password.
Brian P. Hinz 4a11567
-
Brian P. Hinz 4a11567
-my $cookie = "";
Brian P. Hinz 4a11567
-if (open(URANDOM, '<', '/dev/urandom')) {
Brian P. Hinz 4a11567
-  my $randata;
Brian P. Hinz 4a11567
-  if (sysread(URANDOM, $randata, 16) == 16) {
Brian P. Hinz 4a11567
-    $cookie = unpack 'h*', $randata;
Brian P. Hinz 4a11567
-  }
Brian P. Hinz 4a11567
-  close(URANDOM);
Brian P. Hinz 4a11567
-}
Brian P. Hinz 4a11567
-if ($cookie eq "") {
Brian P. Hinz 4a11567
-  srand(time+$$+unpack("L",`cat $vncUserDir/passwd`));
Brian P. Hinz 4a11567
-  for (1..16) {
Brian P. Hinz 4a11567
-    $cookie .= sprintf("%02x", int(rand(256)) % 256);
Brian P. Hinz 4a11567
-  }
Brian P. Hinz 4a11567
-}
Brian P. Hinz 4a11567
-
Brian P. Hinz 4a11567
-system("xauth -f $xauthorityFile add $host:$displayNumber . $cookie");
Brian P. Hinz 4a11567
-system("xauth -f $xauthorityFile add $host/unix:$displayNumber . $cookie"); 
Brian P. Hinz 4a11567
+# Make an X server cookie - use mcookie
Brian P. Hinz 4a11567
+$cookie = `/usr/bin/mcookie`;
Brian P. Hinz 4a11567
+open (XAUTH, "|xauth -f $xauthorityFile source -");
Brian P. Hinz 4a11567
+print XAUTH "add $host:$displayNumber . $cookie\n";
Brian P. Hinz 4a11567
+print XAUTH "add $host/unix:$displayNumber . $cookie\n";
Brian P. Hinz 4a11567
+close XAUTH;
Brian P. Hinz 4a11567
 
Brian P. Hinz 4a11567
 if ($opt{'-name'}) {
Brian P. Hinz 4a11567
     $desktopName = $opt{'-name'};