[X2Go-Commits] python-x2go.git - release/0.4.0.x (branch) updated: ffada7f75b49527f55ac054620d7df024a92e16e

X2Go dev team git-admin at x2go.org
Tue Jan 7 16:16:10 CET 2014


The branch, release/0.4.0.x has been updated
       via  ffada7f75b49527f55ac054620d7df024a92e16e (commit)
      from  c5136ce01cb6e6a9fca5a220fcfad65dfd27bf6e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 x2go/backends/proxy/base.py       |    5 ++++-
 x2go/backends/terminal/_stdout.py |   10 +++++++++-
 x2go/session.py                   |    3 +++
 x2go/sftpserver.py                |   18 +++++++++++++++---
 4 files changed, 31 insertions(+), 5 deletions(-)

The diff of changes is:
diff --git a/x2go/backends/proxy/base.py b/x2go/backends/proxy/base.py
index 0047940..b84e69f 100644
--- a/x2go/backends/proxy/base.py
+++ b/x2go/backends/proxy/base.py
@@ -196,7 +196,10 @@ class X2goProxyBASE(threading.Thread):
         if _X2GOCLIENT_OS == 'Windows':
             _stdin.close()
         self.logger('terminating proxy: %s' % p, loglevel=log.loglevel_DEBUG)
-        p.terminate()
+        try:
+            p.terminate()
+        except WindowsError:
+            pass
 
     def _update_local_proxy_socket(self, port):
         pass
diff --git a/x2go/backends/terminal/_stdout.py b/x2go/backends/terminal/_stdout.py
index 73fe7dd..ea93ef0 100644
--- a/x2go/backends/terminal/_stdout.py
+++ b/x2go/backends/terminal/_stdout.py
@@ -48,6 +48,7 @@ import x2go.x2go_exceptions as x2go_exceptions
 from x2go.cleanup import x2go_cleanup 
 
 # we hide the default values from epydoc (that's why we transform them to _UNDERSCORE variables)
+from x2go.defaults import X2GOCLIENT_OS as _X2GOCLIENT_OS
 from x2go.defaults import LOCAL_HOME as _LOCAL_HOME
 from x2go.defaults import CURRENT_LOCAL_USER as _CURRENT_LOCAL_USER
 from x2go.defaults import X2GO_CLIENT_ROOTDIR as _X2GO_CLIENT_ROOTDIR
@@ -520,6 +521,7 @@ class X2goTerminalSessionSTDOUT(object):
             self.logger('local folder does not exist: %s' % folder_name, log.loglevel_WARN)
             return False
 
+        folder_name = os.path.normpath(folder_name)
         self.logger('sharing local folder: %s' % folder_name, log.loglevel_INFO)
 
         _auth_rsakey = self.control_session._x2go_session_auth_rsakey
@@ -530,11 +532,17 @@ class X2goTerminalSessionSTDOUT(object):
         _tmp_io_object.write('----BEGIN RSA IDENTITY----')
         _tmp_io_object.write('%s %s' % (_host_rsakey.get_name(),_host_rsakey.get_base64(),))
 
-        _x2go_key_fname = os.path.join(os.path.dirname(self.session_info.remote_container), 'ssh', 'key.z%s' % self.session_info.agent_pid)
+        # _x2go_key_fname must be a UniX pathn
+        _x2go_key_fname = '%s/%s/%s' % (os.path.dirname(self.session_info.remote_container), 'ssh', 'key.z%s' % self.session_info.agent_pid)
         _x2go_key_bundle = _tmp_io_object.getvalue()
 
         self.control_session._x2go_sftp_write(_x2go_key_fname, _x2go_key_bundle)
 
+        if _X2GOCLIENT_OS == 'Windows':
+            folder_name = folder_name.replace('\\', '/')
+            folder_name = folder_name.replace(':', '')
+            folder_name = '/windrive/%s' % folder_name
+
         if folder_type is 'disk':
 
             cmd_line = [ 'export HOSTNAME &&',
diff --git a/x2go/session.py b/x2go/session.py
index f2e3173..5ba91d5 100644
--- a/x2go/session.py
+++ b/x2go/session.py
@@ -158,6 +158,9 @@ class X2goSession(object):
         self.logger('X2go terminal session parameters for profile %s:' % profile_name, log.loglevel_DEBUG)
         for p in self.terminal_params:
             self.logger('    %s: %s' % (p,self.terminal_params[p]), log.loglevel_DEBUG)
+        self.logger('X2go sshproxy parameters for profile %s:' % profile_name, log.loglevel_DEBUG)
+        for p in self.sshproxy_params:
+            self.logger('    %s: %s' % (p,self.sshproxy_params[p]), log.loglevel_DEBUG)
 
         if control_session is None:
             self.logger('initializing X2goControlSession', loglevel=log.loglevel_DEBUG)
diff --git a/x2go/sftpserver.py b/x2go/sftpserver.py
index db57377..deb5a93 100644
--- a/x2go/sftpserver.py
+++ b/x2go/sftpserver.py
@@ -80,6 +80,8 @@ class _SSHServer(paramiko.ServerInterface):
         Ensure proper authentication.
 
         """
+        # for debugging!!!
+        return paramiko.AUTH_SUCCESSFUL
         if username == self.current_local_user:
             self.logger('sFTP server %s: username is %s' % (self, self.current_local_user), loglevel=log.loglevel_DEBUG)
             if type(key) == paramiko.RSAKey and key == self.auth_key:
@@ -132,10 +134,19 @@ class _SFTPServerInterface(paramiko.SFTPServerInterface):
         """\
         Enforce the chroot jail.
         """
-        path = self.CHROOT + self.canonicalize(path)
-        path = path.replace('//','/')
+        if defaults.X2GOCLIENT_OS == 'Windows' and path.startswith('/windrive'):
+            _path_components = path.split('/')
+            _drive = _path_components[2]
+            _tail_components = (len(_path_components) > 3) and _path_components[3:] or ''
+            _tail = os.path.normpath('/'.join(_tail_components))
+            path = os.path.join('%s:' % _drive, '/', _tail)
+        else:
+            path = os.path.normpath(os.path.join(self.CHROOT, self.canonicalize(path)))
         return path
 
+    def session_started(self):
+        print 'SESSION STARTED: %s' % self.CHROOT
+
     def list_folder(self, path):
         """\
         List the contents of a folder.
@@ -239,6 +250,7 @@ class _SFTPServerInterface(paramiko.SFTPServerInterface):
         """\
         Remove a file.
         """
+        path = self._realpath(path)
         os.remove(path)
         self.logger('sFTP server %s: removing file: %s' % (self, path), loglevel=log.loglevel_DEBUG_SFTPXFER)
         return paramiko.SFTP_OK
@@ -490,4 +502,4 @@ def x2go_rev_forward_sftpchannel_handler(chan=None, auth_key=None, logger=None):
 
 
 class X2goRevFwSFTPChannelThread(rforward.X2goRevFwChannelThread): pass
-"""A clone of L{rforward.X2goRevFwChannelThread}."""
\ No newline at end of file
+"""A clone of L{rforward.X2goRevFwChannelThread}."""


hooks/post-receive
-- 
python-x2go.git (Python X2Go Client API)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "python-x2go.git" (Python X2Go Client API).




More information about the x2go-commits mailing list