From pvibet@gmail.com  Fri Nov 30 07:49:31 2012
Received: (at submit) by bugs.x2go.org; 30 Nov 2012 06:49:31 +0000
Received: from mail-ie0-f179.google.com (mail-ie0-f179.google.com [209.85.223.179])
	by ymir (Postfix) with ESMTPS id BA57C5DB16
	for <submit@bugs.x2go.org>; Fri, 30 Nov 2012 07:49:30 +0100 (CET)
Received: by mail-ie0-f179.google.com with SMTP id k14so183363iea.24
        for <submit@bugs.x2go.org>; Thu, 29 Nov 2012 22:49:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=mime-version:date:message-id:subject:from:to:cc:content-type;
        bh=1I+X3+uH0IYmPp3FUrA+HNF/vyWAt44VrN6/Yyhta/s=;
        b=X9wtqfdWcKueFM7hOv9sUKiR/JTLrPhndDzRio43+1LnH8ohoBesulE5ks+76mMNZq
         fjPcFPjiDTSEF7oAY/rOV4ibTuPN6BPe3j6qCSvMFpt8tinyOjZ0rmw0zif4h9EFlSlR
         AsDJsx7uVUyhQAxX45q3RNIOnkjUNvHwJs8nrP3aCNYoAf1GsIjhf6qf/a2zW7IdhIW8
         X3SnmwPaWhIB5SCkJpu048oHITAP7/MTaStQJv3txvdxgM6+gM7okzc0er6q0kGEjlgj
         wIL04lXOqp9wNCd6HFcY/W+1aN3qKQ80g/nPiBNv5CzHinKUsjxoenlOAXxCBTVY9DN7
         k4Gw==
MIME-Version: 1.0
Received: by 10.42.201.201 with SMTP id fb9mr211283icb.19.1354258168963; Thu,
 29 Nov 2012 22:49:28 -0800 (PST)
Received: by 10.64.0.81 with HTTP; Thu, 29 Nov 2012 22:49:28 -0800 (PST)
Date: Fri, 30 Nov 2012 07:49:28 +0100
Message-ID: <CAPTrY-kyAReZvjPb+5274U6sMPOyaxRWCAH-1NcANtOqH1YMCw@mail.gmail.com>
Subject: Bug when you mount more 1 folder at login
From: Pascal Vibet - ADACIS <pvibet@gmail.com>
To: submit@bugs.x2go.org
Cc: Vibet Pascal <pascalvibet@gmail.com>, 
	"pascal.vibet@i-carre.net" <pascal.vibet@i-carre.net>
Content-Type: multipart/alternative; boundary=20cf3036366b18609e04cfb0cdf5

--20cf3036366b18609e04cfb0cdf5
Content-Type: text/plain; charset=UTF-8

Package: x2goserver

Version: 3.1.1.3-0~571~precise1_amd64


I want to mount 3 folder at login. Only the first one is mount at
login.

This is log file: cat ~/mounts.log
SSHFS version 2.3
Server version: 3
Extension: posix-rename@openssh.com <1>
Extension: statvfs@openssh.com <2>
Extension: fstatvfs@openssh.com <2>
Extension: hardlink@openssh.com <1>
fuse: bad mount point
`/tmp/.x2go-xxxxxxx/media/disk/disk/_home_xxxxxxx_folder2': No such file
or directory
fuse: bad mount point
`/tmp/.x2go-xxxxxxx/media/disk/disk/disk/_home_xxxxxxx_folder3': No such
file or directory


The bug is in /usr/bin/x2gomountdirs, explication:

the $mdir variable is initialize line:
87	my $mdir="$tmp_dir/.x2go-$ENV{'USER'}/media";

but in code bloc
    162	for (my $i=0;$i<@dirs;$i++)
    163	{
    164		my $printspool=0;
    165		my $mimeboxspool=0;
    166		my $mntpath;
    167		if(@dirs[$i]=~m/__PRINT_SPOOL_/)
    168		{
    169			@dirs[$i]=~s/__PRINT_SPOOL_//;
    170			$printspool=1;
    171			$mntpath=$spooldir;
    172			syslog('debug', "mounting $spooldir, mount point type is print
spool directory");
    173		}
    174		elsif(@dirs[$i]=~m/__MIMEBOX_SPOOL_/)
    175		{
    176			@dirs[$i]=~s/__MIMEBOX_SPOOL_//;
    177			$mimeboxspool=1;
    178			$mntpath=$mimeboxdir;
    179			syslog('debug', "mounting $mimeboxdir, mount point type is
MIME box directory");
    180		}
    181		else
    182		{
    183			my $p=@dirs[$i];
    184			if ($type ne "dir")
    185			{
    186				$p=~s/\/ramdrive\/mnt\///;
    187				if ($p =~ m/CDROM/)
    188				{
    189					$mdir=$mdir."/cd";
    190				}
    191				else
    192				{
    193					$mdir=$mdir."/rm";
    194				}
    195			}
    196			else
    197			{
    198				$mdir=$mdir."/disk";
    199			}
    200			$p=~s/\//_/g;
    201			$p=~s/ /_/g;
    202			$p=~s/~_cygdrive_//;
    203			$p=~s/~_windrive_//;
    204			$p=~s/~//g;
    205			mkdir("$mdir/$p");
    206			$mntpath="$mdir/$p";
    207		}

if we have more than 1 folder to share, $mdir variable will became:
first time:
$mdir="$tmp_dir/.x2go-$ENV{'USER'}/media/disk"
second time:
$mdir="$tmp_dir/.x2go-$ENV{'USER'}/media/disk/disk";
third time:
$mdir="$tmp_dir/.x2go-$ENV{'USER'}/media/disk/disk/disk";


Solution is to fix $mdir variable in begin for loop. Add
$mdir="$tmp_dir/.x2go-$ENV{'USER'}/media" in line:
    164		my $printspool=0;
    165		my $mimeboxspool=0;
    166		my $mntpath;
=> 167          $mdir="$tmp_dir/.x2go-$ENV{'USER'}/media";

Regards

---------------------------------
Pascal Vibet

--20cf3036366b18609e04cfb0cdf5
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<pre style=3D"color:rgb(0,0,0);line-height:19px">Package: x2goserver
</pre><pre style=3D"margin-top:0px;margin-bottom:0px;padding-top:0px;paddin=
g-right:0px;padding-bottom:0px;padding-left:0px"><span style=3D"color:rgb(0=
,0,0);font-size:12px;white-space:pre-wrap!important;line-height:19px">Versi=
on: </span><font color=3D"#000000"><span style=3D"line-height:19px;white-sp=
ace:pre-wrap">3.1.1.3-0~571~precise1_amd64</span></font></pre>
<pre style=3D"margin-top:0px;margin-bottom:0px;padding-top:0px;padding-righ=
t:0px;padding-bottom:0px;padding-left:0px;white-space:pre-wrap!important;co=
lor:rgb(0,0,0);font-size:12px"><span style=3D"line-height:19px"><br></span>=
</pre>
<pre style=3D"margin-top:0px;margin-bottom:0px;padding-top:0px;padding-righ=
t:0px;padding-bottom:0px;padding-left:0px;white-space:pre-wrap!important;co=
lor:rgb(0,0,0);font-size:12px">I want to mount 3 folder at login. Only the =
first one is mount at=20
login.

This is log file: cat ~/mounts.log
SSHFS version 2.3
Server version: 3
Extension: <a href=3D"mailto:posix-rename@openssh.com" style=3D"color:rgb(0=
,0,204);outline-style:none;outline-width:initial;outline-color:initial">pos=
ix-rename@openssh.com</a> &lt;1&gt;
Extension: <a href=3D"mailto:statvfs@openssh.com" style=3D"color:rgb(0,0,20=
4);outline-style:none;outline-width:initial;outline-color:initial">statvfs@=
openssh.com</a> &lt;2&gt;
Extension: <a href=3D"mailto:fstatvfs@openssh.com" style=3D"color:rgb(0,0,2=
04);outline-style:none;outline-width:initial;outline-color:initial">fstatvf=
s@openssh.com</a> &lt;2&gt;
Extension: <a href=3D"mailto:hardlink@openssh.com" style=3D"color:rgb(0,0,2=
04);outline-style:none;outline-width:initial;outline-color:initial">hardlin=
k@openssh.com</a> &lt;1&gt;
fuse: bad mount point=20
`/tmp/.x2go-xxxxxxx/media/disk/disk/_home_xxxxxxx_folder2&#39;: No such fil=
e=20
or directory
fuse: bad mount point=20
`/tmp/.x2go-xxxxxxx/media/disk/disk/disk/_home_xxxxxxx_folder3&#39;: No suc=
h=20
file or directory


The bug is in /usr/bin/x2gomountdirs, explication:

the $mdir variable is initialize line:
87	my $mdir=3D&quot;$tmp_dir/.x2go-$ENV{&#39;USER&#39;}/media&quot;;

but in code bloc
    162	for (my $i=3D0;$i&lt;@dirs;$i++)
    163	{
    164		my $printspool=3D0;
    165		my $mimeboxspool=3D0;
    166		my $mntpath;
    167		if(@dirs[$i]=3D~m/__PRINT_SPOOL_/)
    168		{
    169			@dirs[$i]=3D~s/__PRINT_SPOOL_//;
    170			$printspool=3D1;
    171			$mntpath=3D$spooldir;
    172			syslog(&#39;debug&#39;, &quot;mounting $spooldir, mount point typ=
e is print=20
spool directory&quot;);
    173		}
    174		elsif(@dirs[$i]=3D~m/__MIMEBOX_SPOOL_/)
    175		{
    176			@dirs[$i]=3D~s/__MIMEBOX_SPOOL_//;
    177			$mimeboxspool=3D1;
    178			$mntpath=3D$mimeboxdir;
    179			syslog(&#39;debug&#39;, &quot;mounting $mimeboxdir, mount point t=
ype is=20
MIME box directory&quot;);
    180		}
    181		else
    182		{
    183			my $p=3D@dirs[$i];
    184			if ($type ne &quot;dir&quot;)
    185			{
    186				$p=3D~s/\/ramdrive\/mnt\///;
    187				if ($p =3D~ m/CDROM/)
    188				{
    189					$mdir=3D$mdir.&quot;/cd&quot;;
    190				}
    191				else
    192				{
    193					$mdir=3D$mdir.&quot;/rm&quot;;
    194				}
    195			}
    196			else
    197			{
    198				$mdir=3D$mdir.&quot;/disk&quot;;
    199			}
    200			$p=3D~s/\//_/g;
    201			$p=3D~s/ /_/g;
    202			$p=3D~s/~_cygdrive_//;
    203			$p=3D~s/~_windrive_//;
    204			$p=3D~s/~//g;
    205			mkdir(&quot;$mdir/$p&quot;);
    206			$mntpath=3D&quot;$mdir/$p&quot;;
    207		}

if we have more than 1 folder to share, $mdir variable will became:
first time:
$mdir=3D&quot;$tmp_dir/.x2go-$ENV{&#39;USER&#39;}/media/disk&quot;
second time:
$mdir=3D&quot;$tmp_dir/.x2go-$ENV{&#39;USER&#39;}/media/disk/disk&quot;;
third time:
$mdir=3D&quot;$tmp_dir/.x2go-$ENV{&#39;USER&#39;}/media/disk/disk/disk&quot=
;;


Solution is to fix $mdir variable in begin for loop. Add=20
$mdir=3D&quot;$tmp_dir/.x2go-$ENV{&#39;USER&#39;}/media&quot; in line:
    164		my $printspool=3D0;
    165		my $mimeboxspool=3D0;
    166		my $mntpath;
=3D&gt; 167          $mdir=3D&quot;$tmp_dir/.x2go-$ENV{&#39;USER&#39;}/medi=
a&quot;;

Regards

---------------------------------
Pascal Vibet</pre>

--20cf3036366b18609e04cfb0cdf5--
