Here are the patches to enable a single cups-x2go CUPS server to service
multiple X2Go Servers.  The documentation was posted previously.  Thanks
- John
--- cups-x2go.conf.orig	2010-03-09 11:20:50.873606048 +0000
+++ cups-x2go.conf.new	2010-03-09 12:14:36.800611904 +0000
@@ -3,10 +3,42 @@
 ##
 
 ## Server with x2go system
-x2goserver = local
+#x2goserver = local
 
 ## dsa key for user x2goprint
 #printdsa = /root/.x2go/ssh/.x2goprint/id_dsa
 
 ## command to generate pdf files
 #ps2pdf = /usr/bin/gs -q -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="%s.pdf" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f "%s"
+
+# Multi-X2Go Server options
+#==========================
+# Used when this print server must service multiple X2Go Servers
+# This requires a single database for all X2Go Server session data
+#multiserver = 0
+# Set multiserver to 0 (zero) to disable and 1 (one) to enable
+# defaults to 0
+
+#dbhost = localhost
+# Set dbhost to the name of the database host
+# defaults to localhost
+
+#dbuser = postgres
+# Set dbuser to the user ID for logging into the database
+# defaults to postgres
+
+#dbname = x2go_sessions
+# Set dbname to the database name
+# defaults to x2go_sessions
+
+#dbschema = 
+# Set dbschema to the master schema in a multi-schema X2Go database
+# This is the schema used to coordinate information from the individual
+# X2Go Server schemas in a secure environment (where one server cannot 
+# view another server's session data
+# defaults to an empty string
+
+#dbtable = sessions
+# Set dbtables to the database table used to hold the session data
+# defaults to sessions
+#==========================
--- cups-x2go.orig	2010-03-09 09:16:28.000000000 +0000
+++ cups-x2go	2010-04-06 11:36:58.566761342 +0000
@@ -26,6 +26,12 @@
 my $x2goserver = "local";
 my $printdsa = "/root/.x2go/ssh/.x2goprint/id_dsa";
 my $ps2pdf = "/usr/bin/gs -q -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=\"%s.pdf\" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f \"%s\"";
+my $multiserver=0;
+my $dbhost = "localhost";
+my $dbuser = "postgres";
+my $dbname = "x2go_sessions";
+my $dbschema = "";
+my $dbtable = "sessions";
 my $cfgfile="/etc/cups/cups-x2go.conf";
 my $userName;
 my @sessions;
@@ -60,8 +66,43 @@
          {
              $ps2pdf=$value;
          }
+         if($option eq "multiserver")
+         {
+           $multiserver = $value;
+         }
+         if($option eq "dbhost")
+         {
+           $dbhost=$value;
+         }
+         if($option eq "dbuser")
+         {
+           $dbuser=$value;
+         }
+         if($option eq "dbname")
+         {
+           $dbname=$value;
+         }
+         if($option eq "dbschema")
+         {
+           $dbschema=$value;
+           if($dbschema ne "")
+           {
+             $dbschema="$dbschema.";
+           } 
+         }
+         if($option eq "dbtable")
+         {
+           $dbtable=$value;
+         }         
      }
      close(CFG);
+     if ($multiserver)
+     {
+       $x2goserver=`echo "select server from $dbschema$dbtable where uname='$userName' limit 1" | psql -U $dbuser -h $dbhost -t $dbname`;
+       chomp($x2goserver);
+       chomp($x2goserver);
+       $x2goserver=~s/ //g;
+     }
  }
 }
 
@@ -119,7 +160,6 @@
     print STDERR "ERROR: Usage: cups-x2go job-id user title copies options [file]\n";
     exit 1;
 }
-
 my $jobID;
 my $jobTitle;
 my $copies;
@@ -128,7 +168,6 @@
 
 ($jobID, $userName, $jobTitle, $copies, $printOptions, $printFile) =  @ARGV;
 
-
 my $tempFile;
 if (!$printFile) 
 { 
_______________________________________________
X2go-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/x2go-dev

Reply via email to