[X2go-dev] x2go with likewise-open (ldap) questions

John A. Sullivan III jsullivan at opensourcedevel.com
Wed Dec 15 17:47:54 CET 2010


On Wed, 2010-12-15 at 16:19 +0200, Ivan Boyadzhiev wrote:
>         Bingo! 
>         
>         This above is the exact problem.
>         
>         I cleaned all the folders. Then I started new x2goclient
>         session. While the session was starting, I've created symbolic
>         folder without "\" symbol, in the next moment when the folder
>         with "\" appeared. As result I had 2 folders in ~/.x2go/ - the
>         one with "\" and symlink without "\". Then the 3
>         files .pulse-cookie; .pulse-client.conf and cmdoutput
>         appeared, as well as the sound in my client!
>         
>         That is the problem then. Can you, please, provide fix?
>         
>         
> 
> Hi hi,
> although this issue is happening on the server side (located in Ubuntu
> x2goserver), the code is actually sending from the client - reverse
> ssh.
> 
> I'm using x2goclient 3.01-13 on my Windows 7, as 3.01-14 doesn't work
> properly. Still I've tested x2goclient 3.01-14 on VMWare Ubuntu, and
> it doesn't solve this issue, infact, it doesn't have sound at all. 
> I couldn't find x2goclient 3.01-13 sources, but I have found 3.01-14
> sources, so I made my investigations there.
> 
> Before we start dig in the source: 
>  1. We have problem with creating 3 files
> (.pulse-cookie; .pulse-client.conf, cmdoutput)
>  2. We have problem with not properly set environment
> (PULSE_CLIENTCONFIG)
> All these errors are because:
>  1. These files are located in non-existing folder (without "\")
>  2. This environment is pointing to non-existing folder (without "\")
> 
> We have 2 solutions: to use everywhere DOMAIN\user, or DOMAINuser.
> I think using everywhere DOMAIN\user is better, but it is complete up
> to you as development to decide.
> 
> Another problem: I've checked, and because of very same problem, sshfs
> can't map local folder with remote folder, because of
> non-existing /tmp/DOMAINuser_media folder.
> 
> Deep in the code: 
> All sources are in the file: onmainwindow.cpp. Searching
> for .pulse-cookie and PULSE_CLIENTCONFIG lead us to the first places
> 
> 
> row 3,227:
>     if ( sndSystem==PULSE )
>     {
>         startSoundServer=false;
>         QString scmd;
>         if ( !sshSndTunnel )
>             scmd="echo \"default-server=`echo "
>                  "$SSH_CLIENT | awk '{print $1}'`:"+
>                  sndPort+
>                  "\"> ~/.x2go/C-"+
>                  resumingSession.sessionId+
>                  "/.pulse-client.conf"
>                  ";echo \"cookie-file=.x2go/C-"+
>                  resumingSession.sessionId+
>                  "/.pulse-cookie"+
>                  "\">> ~/.x2go/C-"+
>                  resumingSession.sessionId+
>                  "/.pulse-client.conf";
> 
> row 4,274:
>             cmd="PULSE_CLIENTCONFIG=~/.x2go/C-"+
>                 resumingSession.sessionId+
>                 "/.pulse-client.conf "+cmd;
> 
> 
> Note: same variable: resumingSession.sessionId
> 
> Where is resumingSession initialise?
> 
> row 3,203:
>     if ( newSession )
>     {
>         QString sString=output.trimmed();
>         sString.replace ( '\n','|' );
>         host=resumingSession.server;
>         resumingSession=getNewSessionFromString ( sString );
> 
> getNewSessionFromString and sString:
> 
> row 4,160:
> x2goSession ONMainWindow::getNewSessionFromString ( const QString&
> string )
> {
>     QStringList lst=string.split ( '|' );
>     x2goSession s;
>     s.display=lst[0];
>     s.cookie=lst[1];
>     s.agentPid=lst[2];
>     s.sessionId=lst[3];
> 
> row 3,205:
> sString comes from: output.trimmed();
> 
> Here is not possible for QT function trimmed() to remove "\" because
> this howto:
> http://doc.qt.nokia.com/4.7-snapshot/qstring.html#trimmed
> 
> Then where is output coming from? - From the Method, which is: 
> 
> row 3,089:
> void ONMainWindow::slot_retResumeSess ( bool result,
>                                         QString output,
>                                         sshProcess* proc )
> 
> Where is slot_retResumeSess called from? Various places, but I think
> it is from here:
> 
> row 2,724:
>     connect ( proc,SIGNAL ( sshFinished ( bool,
> QString,sshProcess* ) ),
>               this,SLOT ( slot_retResumeSess ( bool, QString,
>                                                sshProcess* ) ) );
> 
> Still there is NO parameter given for second variable, which should
> come as output?!
> 
> Still working on ...
<snip>
Thank you, Ivan, for all the detailed work you are doing to troubleshoot
this - John




More information about the x2go-dev mailing list