[X2Go-Commits] python-x2go.git - release/0.4.0.x (branch) updated: 6c87cc5cfc6864e49a435085fd2885fe356a841b
X2Go dev team
git-admin at x2go.org
Tue Jan 7 16:16:18 CET 2014
The branch, release/0.4.0.x has been updated
via 6c87cc5cfc6864e49a435085fd2885fe356a841b (commit)
from b54973e98c0dae4a7846392a74bb546e6cf1aae1 (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:
debian/changelog | 8 ++++++++
x2go/__init__.py | 2 +-
x2go/backends/proxy/base.py | 10 ++++++++--
x2go/backends/terminal/_stdout.py | 20 +++++++++-----------
x2go/client.py | 3 ++-
x2go/forward.py | 23 ++++++++++++++++++-----
x2go/session.py | 12 +++++++++++-
7 files changed, 57 insertions(+), 21 deletions(-)
The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 07cacaf..d20d79d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+python-x2go (0.0.36-0~nwt1) lucid maverick testing unstable; urgency=low
+
+ * fixed non-starting sshfs issue
+ * made XServer VcXsrv known to Python X2go (relevant for Windows)
+ * catching forward tunnel setup failure by session and client hook method
+
+ -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de> Thu, 20 Jan 2011 23:00:00 +0100
+
python-x2go (0.0.35-0~nwt1) lucid maverick testing unstable; urgency=low
* added PulseAudio support for Windows
diff --git a/x2go/__init__.py b/x2go/__init__.py
index c1752e7..98c326a 100644
--- a/x2go/__init__.py
+++ b/x2go/__init__.py
@@ -153,7 +153,7 @@ Contact
"""
__NAME__ = 'python-x2go'
-__VERSION__ = '0.0.35'
+__VERSION__ = '0.0.36'
from gevent import monkey
monkey.patch_all()
diff --git a/x2go/backends/proxy/base.py b/x2go/backends/proxy/base.py
index 2760fed..33a418f 100644
--- a/x2go/backends/proxy/base.py
+++ b/x2go/backends/proxy/base.py
@@ -72,7 +72,8 @@ class X2goProxyBASE(threading.Thread):
def __init__(self, session_info=None,
ssh_transport=None, session_log="session.log",
- sessions_rootdir=os.path.join(_LOCAL_HOME, _X2GO_SESSIONS_ROOTDIR),
+ sessions_rootdir=os.path.join(_LOCAL_HOME, _X2GO_SESSIONS_ROOTDIR),
+ session_instance=None,
logger=None, loglevel=log.loglevel_DEFAULT, ):
"""\
@param session_info: session information provided as an C{X2goServerSessionInfo} backend
@@ -100,6 +101,7 @@ class X2goProxyBASE(threading.Thread):
self.session_info = session_info
self.ssh_transport = ssh_transport
self.session_log = session_log
+ self.session_instance = session_instance
self.PROXY_ENV = os.environ.copy()
self.proxy = None
@@ -161,7 +163,11 @@ class X2goProxyBASE(threading.Thread):
local_graphics_port = self.session_info.graphics_port
local_graphics_port = utils.detect_unused_port(bind_address='', preferred_port=local_graphics_port)
- self.fw_tunnel = forward.start_forward_tunnel(local_port=local_graphics_port, remote_port=self.session_info.graphics_port, ssh_transport=self.ssh_transport, logger=self.logger, )
+ self.fw_tunnel = forward.start_forward_tunnel(local_port=local_graphics_port,
+ remote_port=self.session_info.graphics_port,
+ ssh_transport=self.ssh_transport,
+ session_instance=self.session_instance,
+ logger=self.logger, )
# update the proxy port in PROXY_ARGS
self._update_local_proxy_socket(local_graphics_port)
diff --git a/x2go/backends/terminal/_stdout.py b/x2go/backends/terminal/_stdout.py
index ea5dc88..e9c2342 100644
--- a/x2go/backends/terminal/_stdout.py
+++ b/x2go/backends/terminal/_stdout.py
@@ -289,7 +289,7 @@ class X2goTerminalSessionSTDOUT(object):
self.params.update()
self.profile_name = profile_name
- self.proxy_class = proxy_backend
+ self.proxy_backend = proxy_backend
self.snd_port = snd_port
self.print_action = print_action
@@ -715,13 +715,9 @@ class X2goTerminalSessionSTDOUT(object):
">& /dev/null & exit",
]
- print 'SOUNDSYSTEM: %s' % self.params.snd_system
-
if self.params.snd_system == 'pulse':
cmd_line = [ 'PULSE_CLIENTCONFIG=%s/.pulse-client.conf' % self.session_info.remote_container ] + cmd_line
- print cmd_line
-
(stdin, stdout, stderr) = self.control_session._x2go_exec_command(cmd_line)
return stdout.read(), stderr.read()
@@ -818,9 +814,10 @@ class X2goTerminalSessionSTDOUT(object):
)
# set up SSH tunnel for X11 graphical elements
- self.proxy = self.proxy_class(session_info=self.session_info,
+ self.proxy = self.proxy_backend(session_info=self.session_info,
ssh_transport=self.control_session.get_transport(),
sessions_rootdir=self.sessions_rootdir,
+ session_instance=self.session_instance,
logger=self.logger)
self.proxy_subprocess = self.proxy.start_proxy()
self.active_threads.append(self.proxy)
@@ -853,11 +850,12 @@ class X2goTerminalSessionSTDOUT(object):
(stdin, stdout, stderr) = self.control_session._x2go_exec_command(cmd_line)
- self.proxy = self.proxy_class(session_info=self.session_info,
- ssh_transport=self.control_session.get_transport(),
- sessions_rootdir=self.sessions_rootdir,
- logger=self.logger
- )
+ self.proxy = self.proxy_backend(session_info=self.session_info,
+ ssh_transport=self.control_session.get_transport(),
+ sessions_rootdir=self.sessions_rootdir,
+ session_instance=self.session_instance,
+ logger=self.logger
+ )
self.proxy_subprocess = self.proxy.start_proxy()
# local path may be a Windows path, so we use the path separator of the local system
diff --git a/x2go/client.py b/x2go/client.py
index 59bf3c9..d5b2078 100644
--- a/x2go/client.py
+++ b/x2go/client.py
@@ -301,7 +301,8 @@ class X2goClient(object):
self.logger('HOOK_on_sound_tunnel_failed: setting up X2go sound for %s (%s) support failed' % (profile_name, session_name))
def HOOK_rforward_request_denied(self, profile_name='UNKNOWN', session_name='UNKNOWN', server_port=0):
self.logger('TCP port (reverse) forwarding request for session %s to server port %s has been denied by the X2go server. This is a common issue with SSH, it might help to restart the X2go server\'s SSH daemon.' % (session_name, server_port), loglevel=log.loglevel_WARN)
-
+ def HOOK_forwarding_tunnel_setup_failed(self, profile_name='UNKNOWN', session_name='UNKNOWN', chain_host='UNKNOWN', chain_port=0):
+ self.logger('Forwarding tunnel request to [%s]:%s for session %s (%s) was denied by remote X2go/SSH server. Session startup failed.' % (chain_host, chain_port, self.session_name, self.profile_name), loglevel=log.loglevel_ERROR)
def HOOK_on_session_has_started_by_me(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
self.logger('HOOK_on_session_has_started_by_me (session_uuid: %s, profile_name: %s): a new session %s has been started by this application' % (session_uuid, profile_name, session_name), loglevel=log.loglevel_NOTICE)
def HOOK_on_session_has_started_by_other(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
diff --git a/x2go/forward.py b/x2go/forward.py
index 61ee3fd..74378a9 100644
--- a/x2go/forward.py
+++ b/x2go/forward.py
@@ -59,7 +59,7 @@ class X2goFwServer(StreamServer):
@type loglevel: C{int}
"""
- def __init__ (self, listener, remote_host, remote_port, ssh_transport, logger=None, loglevel=log.loglevel_DEFAULT,):
+ def __init__ (self, listener, remote_host, remote_port, ssh_transport, session_instance=None, logger=None, loglevel=log.loglevel_DEFAULT,):
if logger is None:
self.logger = log.X2goLogger(loglevel=loglevel)
else:
@@ -72,6 +72,7 @@ class X2goFwServer(StreamServer):
self.chain_host = remote_host
self.chain_port = remote_port
self.ssh_transport = ssh_transport
+ self.session_instance = session_instance
StreamServer.__init__(self, listener, self.x2go_forward_tunnel_handle)
@@ -94,11 +95,12 @@ class X2goFwServer(StreamServer):
self.logger('incoming request to %s:%d failed: %s' % (self.chain_host,
self.chain_port,
repr(e)), loglevel=log.loglevel_ERROR)
- raise x2go_exceptions.X2goFwTunnelException('forwarding tunnel setup failed')
if self.chan is None:
self.logger('incoming request to %s:%d was rejected by the SSH server.' %
(self.chain_host, self.chain_port), loglevel=log.loglevel_ERROR)
+ if self.session_instance:
+ self.session_instance.HOOK_forwarding_tunnel_setup_failed(chain_host=self.chain_host, chain_port=self.chain_port)
return
self.logger('connected! Tunnel open %r -> %r -> %r' % (fw_socket.getpeername(),
chan_peername, (self.chain_host, self.chain_port)),
@@ -135,19 +137,26 @@ class X2goFwServer(StreamServer):
def start_forward_tunnel(local_host='localhost', local_port=22022,
remote_host='localhost', remote_port=22,
- ssh_transport=None, logger=None, ):
+ ssh_transport=None,
+ session_instance=None,
+ logger=None, ):
"""\
Setup up a Paramiko/SSH port forwarding tunnel (like openssh -L option).
The tunnel is used to transport X2go graphics data through a proxy application like nxproxy.
- @param local_port: local starting point of the forwarding tunnel
+ @param local_host: local starting point of the forwarding tunnel
+ @type local_host: C{int}
+ @param local_port: listen port of the local starting point
@type local_port: C{int}
@param remote_host: from the endpoint of the tunnel, connect to host C{<remote_host>}...
@type remote_host: C{str}
@param remote_port: ... on port C{<remote_port>}
@type remote_port: C{int}
@param ssh_transport: the Paramiko/SSH transport (i.e. the X2go sessions Paramiko/SSH transport object)
+ @type ssh_transport: C{instance}
+ @param session_instance: the L{X2goSession} instance that initiates this tunnel
+ @type session_instance: C{instance}
@param logger: an X2goLogger object
@type logger: C{instance}
@@ -156,7 +165,11 @@ def start_forward_tunnel(local_host='localhost', local_port=22022,
"""
try:
- fw_server = X2goFwServer(listener=(local_host, local_port), remote_host=remote_host, remote_port=remote_port, ssh_transport=ssh_transport, logger=logger)
+ fw_server = X2goFwServer(listener=(local_host, local_port),
+ remote_host=remote_host, remote_port=remote_port,
+ ssh_transport=ssh_transport, session_instance=session_instance,
+ logger=logger,
+ )
try:
fw_server.start()
return fw_server
diff --git a/x2go/session.py b/x2go/session.py
index ee81ce0..a96b500 100644
--- a/x2go/session.py
+++ b/x2go/session.py
@@ -194,6 +194,16 @@ class X2goSession(object):
else:
self.logger('TCP port (reverse) forwarding request for session %s to server port %s has been denied by server %s. This is a common issue with SSH, it might help to restart the server\'s SSH daemon.' % (self.session_name, server_port, self.profile_name), loglevel=log.loglevel_WARN)
+ def HOOK_forwarding_tunnel_setup_failed(self, chain_host='UNKNOWN', chain_port=0):
+ """\
+ STILL UNDOCUMENTED
+
+ """
+ if self.client_instance:
+ self.client_instance.HOOK_forwarding_tunnel_setup_failed(profile_name=self.profile_name, session_name=self.session_name, chain_host=chain_host, chain_port=chain_port)
+ else:
+ self.logger('Forwarding tunnel request to [%s]:%s for session %s (%s) was denied by remote X2go/SSH server. Session startup failed.' % (chain_host, chain_port, self.session_name, self.profile_name), loglevel=log.loglevel_WARN)
+
def init_control_session(self):
"""\
STILL UNDOCUMENTED
@@ -638,7 +648,7 @@ class X2goSession(object):
if (SUPPORTED_PRINTING and self.printing) or \
(SUPPORTED_DROPBOX and self.allow_dropbox) or \
- (SUPPORTED_FOLDERSHARING and self.allow_share_local_folders and self.share_local_folders):
+ (SUPPORTED_FOLDERSHARING and self.allow_share_local_folders):
_terminal.start_sshfs()
try:
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