Hi Developers,

When using x2goserver 3.0.99 the latest available x2goprint script is broken. 

The attached patch 

 (a) adds x2godbwrapper to x2goprint 
 (b) allows x2goprint when homes are mounted via NFS (with root_squash or
     sec=krb5*)

Greets,
Mike
-- 

DAS-NETZWERKTEAM
mike gabriel, dorfstr. 27, 24245 barmissen
fon: +49 (4302) 281418, fax: +49 (4302) 281419

GnuPG Key ID 0x1943CA5B
mail: [email protected], http://das-netzwerkteam.de

freeBusy:
https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xfb
diff --git a/x2goprint b/x2goprint
index e808d46..0678a55 100755
--- a/x2goprint
+++ b/x2goprint
@@ -2,8 +2,12 @@
 
 use File::Basename;
 use File::Copy;
+use File::Path;
 use strict;
 
+use lib "/usr/lib/x2go";
+use x2godbwrapper;
+
 if (scalar(@ARGV) ==1)
 {
      system ("su @ARGV[0] -c \"x2golistsessions --all-servers\" ");
@@ -31,23 +35,29 @@ if( -e "$printdir/$titleFile")
 
 ($tm,$tm,$uid,$gid,$tm,$tm,$tm,$homedir)=getpwnam($user);
 
-my $spooldir="/tmp/spool_$user/$session";
+my $spoolbase="/tmp/spool_$user";
+my $spooldir="$spoolbase/$session";
+my $spooltmp="$spoolbase/tmp";
+mkpath($spooltmp);
+chown $uid, $gid, "$spooltmp";
+chmod 0700, "$spooltmp";
 
-my $mounts=`sudo x2gopgwrapper getmounts $session`;
+my ($mounts)=db_getmounts($session);
 if( $mounts=~m/$spooldir/)
 {
-     move ("$printdir/$file", "$homedir/.x2go/C-$session/$file") or die "$!: Can't rename $file to $homedir/.x2go/C-$session/$file";
-     chown $uid, $gid, "$homedir/.x2go/C-$session/$file";
-     system ("su $user -c \"mv $homedir/.x2go/C-$session/$file $spooldir\"");
+     move("$printdir/$file", "$spooltmp") or die "$!: Can't move $file to $spooltmp/";
+     chown $uid, $gid, "$spooltmp/$file";
+     system("su $user -c \"mv $spooltmp/$file $spooldir\"");
 
-     open (RFILE,">$homedir/.x2go/C-$session/$file.ready");
+     open (RFILE,">$spooltmp/$file.ready");
      print RFILE "$file\n$title";
      close (RFILE);
 
-     chown $uid, $gid, "$homedir/.x2go/C-$session/$file.ready";
-     system ("su $user -c \"mv $homedir/.x2go/C-$session/$file.ready $spooldir\"");
+     chown $uid, $gid, "$spooltmp/$file.ready";
+     system ("su $user -c \"mv $spooltmp/$file.ready $spooldir\"");
 }
 else
 {
      unlink("$printdir/$file");
 }
+

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
X2go-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/x2go-dev

Reply via email to