[X2Go-Commits] python-x2go.git - build-baikal (branch) updated: 0.0.37.0-41-gc17955c
X2Go dev team
git-admin at x2go.org
Wed Jan 8 15:30:01 CET 2014
The branch, build-baikal has been updated
via c17955ccc33e7ce2f13428968e46f8b3e2a03803 (commit)
from d9cb960c2336786493ec889a86c6978aa4d21e36 (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/control/_stdout.py | 11 +++++++++++
x2go/client.py | 12 ++++++++++++
x2go/session.py | 28 ++++++++++++++++++++++++++--
3 files changed, 49 insertions(+), 2 deletions(-)
The diff of changes is:
diff --git a/x2go/backends/control/_stdout.py b/x2go/backends/control/_stdout.py
index 370b9ff..59d4bd3 100644
--- a/x2go/backends/control/_stdout.py
+++ b/x2go/backends/control/_stdout.py
@@ -234,6 +234,17 @@ class X2goControlSessionSTDOUT(paramiko.SSHClient):
def set_profile_name(self, profile_name):
self.profile_name = profile_name
+ def check_host(self, host, port=22):
+ """\
+ Perform a Paramiko/SSH host key check.
+
+ """
+ #paramiko.SSHClient.connect(host=host, port=port, username='foo', password='bar')
+ _host = host
+ _port = port
+ _fingerprint = 'dummy fingerprint'
+ return (False, _host, _port, _fingerprint)
+
def connect(self, hostname, port=22, username='', password='', pkey=None,
use_sshproxy=False, sshproxy_host='', sshproxy_user='', sshproxy_password='',
sshproxy_key_filename='', sshproxy_tunnel='',
diff --git a/x2go/client.py b/x2go/client.py
index a8e8999..ffee146 100644
--- a/x2go/client.py
+++ b/x2go/client.py
@@ -294,6 +294,10 @@ class X2goClient(object):
self.logger('HOOK_printaction_error: incoming print job ,, %s'' on printer %s caused error: %s' % (filename, printer, err_msg), loglevel=log.loglevel_ERROR)
else:
self.logger('HOOK_printaction_error: incoming print job ,, %s'' caused error: %s' % (filename, err_msg), loglevel=log.loglevel_ERROR)
+ def HOOK_check_host_dialog(self, profile_name='UNKNOWN', host='UNKNOWN', port=22, fingerprint='no fingerprint'):
+ self.logger('HOOK_check_host_dialog: host check requested for session profile %s: Automatically adding host [%s]:%s with fingerprint: ,,%s\'\' as a known host.' % (profile_name, host, port, fingerprint), loglevel=log.loglevel_WARN)
+ # this HOOK has to return either True (accept host connection) or False (deny host conection)
+ return True
def HOOK_on_control_session_death(self, profile_name):
self.logger('HOOK_on_control_session_death: the control session of profile %s has died unexpectedly' % profile_name, loglevel=log.loglevel_WARN)
def HOOK_pulseaudio_not_supported_in_RDPsession(self):
@@ -681,6 +685,14 @@ class X2goClient(object):
"""
return self.session_registry(session_uuid).set_username(username=username)
+ def check_session_host(self, session_uuid):
+ """\
+ Provide a mechanism to evaluate the validity of an X2go server host.
+
+ """
+ return self.session_registry(session_uuid).check_host()
+ __check_session_host = check_session_host
+
def connect_session(self, session_uuid,
username='',
password='',
diff --git a/x2go/session.py b/x2go/session.py
index 66fb9bf..0a15069 100644
--- a/x2go/session.py
+++ b/x2go/session.py
@@ -188,7 +188,7 @@ class X2goSession(object):
if self.client_instance:
self.client_instance.HOOK_rforward_request_denied(profile_name=self.profile_name, session_name=self.session_name, server_port=server_port)
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)
+ self.logger('HOOK_rforward_request_denied: 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):
"""\
@@ -198,7 +198,18 @@ class X2goSession(object):
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)
+ self.logger('HOOK_forwarding_tunnel_setup_failed: 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 HOOK_check_host_dialog(self, host, port, fingerprint='no fingerprint'):
+ """\
+ STILL UNDOCUMENTED
+
+ """
+ if self.client_instance:
+ return self.client_instance.HOOK_check_host_dialog(profile_name=self.profile_name, host=host, port=port, fingerprint=fingerprint)
+ else:
+ self.logger('HOOK_check_host_dialog: host check requested for [%s]:%s with fingerprint: ,,%s.\'\'. Automatically adding host as known host.' % (host, port, fingerprint), loglevel=log.loglevel_WARN)
+ return True
def init_control_session(self):
"""\
@@ -459,6 +470,19 @@ class X2goSession(object):
return self.terminal_session is not None
__has_terminal_session = has_terminal_session
+ def check_host(self):
+ """\
+ Provide a host check mechanism.
+
+ """
+ if self.connected:
+ return True
+
+ _port = self.control_params['port']
+ (_valid, _host, _port, _fingerprint) = self.control_session.check_host(self.server, port=_port)
+ return _valid or self.HOOK_check_host_dialog(host=_host, port=_port, fingerprint=_fingerprint)
+ __check_host = check_host
+
def connect(self, username='', password='', add_to_known_hosts=False, force_password_auth=False,
use_sshproxy=False, sshproxy_user='', sshproxy_password=''):
"""\
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