This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository python-x2go. commit 2ff5f60484743e2ecd831251f7aff85ad1ef77a1 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Wed Oct 1 11:01:37 2014 +0200 Support server-side Telekinesis versions that ship their own (teki-)sftpserver. --- debian/changelog | 2 ++ x2go/telekinesis.py | 26 +++++++++++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/debian/changelog b/debian/changelog index c8be003..c82ca2d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -92,6 +92,8 @@ python-x2go (0.5.0.0-0x2go1) UNRELEASED; urgency=low - Don't use compression on TeKi sshfs mounts. - Handle duplicate profile names gracefully (i.e. append a " (1)", " (2)", ... to the session profile name). (Fixes: #500). + - Support server-side Telekinesis versions that ship their own + (teki-)sftpserver. * debian/control: + Add dependencies: python-requests, python-simplejson. * python-x2go.spec: diff --git a/x2go/telekinesis.py b/x2go/telekinesis.py index d649c37..1bedf6b 100644 --- a/x2go/telekinesis.py +++ b/x2go/telekinesis.py @@ -326,13 +326,25 @@ class X2GoTelekinesisClient(threading.Thread): if e.errno == 17: # file exists pass - telekinesis_sshfs_command = ['sshfs', - '-o', 'compression=no', - '-o', 'follow_symlinks', - '-o', 'directport={tekidata_port}'.format(tekidata_port=self.local_tekidata_port), - '127.0.0.1:{remote_home}/.x2go/C-{sid}/telekinesis/remote/'.format(remote_home=self.session_instance.get_remote_home(), sid=self.session_info), - '/tmp/.x2go-{local_user}/telekinesis/S-{sid}/'.format(local_user=_CURRENT_LOCAL_USER, sid=self.session_info), - ] + if self.session_instance.has_server_feature('X2GO_TELEKINESIS_TEKISFTPSERVER'): + # the Perl-based SFTP-Server shipped with Telekinesis Server (teki-sftpserver) supports + # chroot'ing. Let's use this by default, if available. + telekinesis_sshfs_command = ['sshfs', + '-o', 'compression=no', + '-o', 'follow_symlinks', + '-o', 'directport={tekidata_port}'.format(tekidata_port=self.local_tekidata_port), + '127.0.0.1:/', + '/tmp/.x2go-{local_user}/telekinesis/S-{sid}/'.format(local_user=_CURRENT_LOCAL_USER, sid=self.session_info), + ] + else: + # very first Telekinesis Server implementation used OpenSSH's sftp-server + # that lacks/lacked chroot capability + telekinesis_sshfs_command = ['sshfs', + '-o', 'compression=no', + '-o', 'follow_symlinks', + '-o', 'directport={tekidata_port}'.format(tekidata_port=self.local_tekidata_port), + '127.0.0.1:{remote_home}/.x2go/C-{sid}/telekinesis/remote/'.format(remote_home=self.session_instance.get_remote_home(), sid=self.session_info), + '/tmp/.x2go-{local_user}/telekinesis/S-{sid}/'.format(local_user=_CURRENT_LOCAL_USER, sid=self.session_info), self.logger('forking threaded subprocess: %s' % " ".join(telekinesis_sshfs_command), loglevel=log.loglevel_DEBUG) self.telekinesis_sshfs = subprocess.Popen(telekinesis_sshfs_command, env=self.TEKICLIENT_ENV, -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/python-x2go.git