[X2Go-Commits] python-x2go.git - release/0.4.0.x (branch) updated: a3aeee64302c605f726415803ea15e41e2e22b3f
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 a3aeee64302c605f726415803ea15e41e2e22b3f (commit)
from 7c1a074b2bb0fde3707bdb9d4c9c2967ed24413d (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/terminal/_stdout.py | 20 ++++++++++++++++++--
x2go/client.py | 7 +++++--
x2go/defaults.py | 3 ++-
x2go/session.py | 26 +++++++++++++++++---------
x2go/utils.py | 32 +++++++++++++++++++++++++++++---
5 files changed, 71 insertions(+), 17 deletions(-)
The diff of changes is:
diff --git a/x2go/backends/terminal/_stdout.py b/x2go/backends/terminal/_stdout.py
index ea93ef0..cb6edbc 100644
--- a/x2go/backends/terminal/_stdout.py
+++ b/x2go/backends/terminal/_stdout.py
@@ -223,6 +223,7 @@ class X2goTerminalSessionSTDOUT(object):
session_type="application", snd_system='pulse', cmd=None,
rdp_server=None, rdp_options=None,
xdmcp_server=None,
+ convert_encoding=False, server_encoding='UTF-8', client_encoding='UTF-8',
rootdir=None,
profile_name='UNKNOWN', profile_id=utils._genSessionProfileId(),
print_action=None, print_action_args={},
@@ -277,6 +278,10 @@ class X2goTerminalSessionSTDOUT(object):
self.params.rdp_options = rdp_options
self.params.xdmcp_server = xdmcp_server
+ self.params.convert_encoding = convert_encoding
+ self.params.client_encoding = client_encoding
+ self.params.server_encoding = server_encoding
+
self.params.rootdir = (type(rootdir) is types.StringType) and rootdir or self.sessions_rootdir
self.params.update()
@@ -538,14 +543,25 @@ class X2goTerminalSessionSTDOUT(object):
self.control_session._x2go_sftp_write(_x2go_key_fname, _x2go_key_bundle)
+ _convert_encoding = self.params.convert_encoding
+ _client_encoding = self.params.client_encoding
+ _server_encoding = self.params.server_encoding
+
if _X2GOCLIENT_OS == 'Windows':
folder_name = folder_name.replace('\\', '/')
folder_name = folder_name.replace(':', '')
folder_name = '/windrive/%s' % folder_name
+ _convert_encoding = True
+ _client_encoding = 'WINDOWS-1252'
+
+ if _convert_encoding:
+ export_iconv_settings = 'export X2GO_ICONV=modules=iconv,from_code=%s,to_code=%s &&' % (_client_encoding, _server_encoding)
+ else:
+ export_iconv_settings = ''
if folder_type is 'disk':
- cmd_line = [ 'export HOSTNAME &&',
+ cmd_line = [ '%s export HOSTNAME &&' % export_iconv_settings,
'x2gomountdirs',
'dir',
str(self.session_info.name),
@@ -557,7 +573,7 @@ class X2goTerminalSessionSTDOUT(object):
elif folder_type is 'spool':
- cmd_line = [ 'export HOSTNAME &&',
+ cmd_line = [ '%s export HOSTNAME &&' % export_iconv_settings,
'x2gomountdirs',
'dir',
str(self.session_info.name),
diff --git a/x2go/client.py b/x2go/client.py
index 61e6ac9..846f50f 100644
--- a/x2go/client.py
+++ b/x2go/client.py
@@ -433,7 +433,7 @@ class X2goClient(object):
return sessions
def register_session(self, server=None, profile_id=None, profile_name=None, session_name=None,
- printing=False, share_local_folders=[], return_object=False,
+ printing=False, allow_share_local_folders=False, share_local_folders=[], return_object=False,
add_to_known_hosts=False, known_hosts=None,
force=False, **kwargs):
"""\
@@ -473,9 +473,11 @@ class X2goClient(object):
@type profile_name: C{str}
@param printing: enable X2go printing support for the to-be-registered X2go session
@type printing: C{bool}
+ @param allow_share_local_folders: set local folder sharing to enabled/disabled
+ @type allow_share_local_folders: C{bool}
@param share_local_folders: a list of local folders (as strings) to be shared directly
after session start up
- @type share_local_folders: list
+ @type share_local_folders: C{list}
@param return_object: normally this method returns a unique session UUID. If
C{return_object} is set to C{True} an X2goSession object will be returned
instead
@@ -521,6 +523,7 @@ class X2goClient(object):
_profile_name = profile_name or sys.argv[0]
_params = kwargs
_params['printing'] = printing
+ _params['allow_share_local_folders'] = allow_share_local_folders
_params['share_local_folders'] = share_local_folders
_params['client_instance'] = self
diff --git a/x2go/defaults.py b/x2go/defaults.py
index e5eb76a..3538b23 100644
--- a/x2go/defaults.py
+++ b/x2go/defaults.py
@@ -233,8 +233,9 @@ else:
X2GO_SESSIONPROFILE_DEFAULTS = {
'speed': 2, 'pack': '16m-jpeg', 'quality': 9, 'link':'ADSL',
- 'iconvto': 'UTF-8', 'iconvfrom': 'ISO-8859-15', 'useiconv': False,
+ 'iconvto': 'UTF-8', 'iconvfrom': 'UTF-8', 'useiconv': False,
'usesshproxy': False, 'sshproxyhost': '', 'sshproxyuser': '', 'sshproxytunnel': '', 'sshproxykeyfile': '',
+ 'useexports': True,
'fstunnel': True,
'export': '',
'fullscreen': False,
diff --git a/x2go/session.py b/x2go/session.py
index ff104af..d54de5c 100644
--- a/x2go/session.py
+++ b/x2go/session.py
@@ -56,9 +56,10 @@ _X2GO_SESSION_PARAMS = ('geometry', 'depth', 'link', 'pack',
'cache_type', 'kblayout', 'kbtype',
'session_type', 'snd_system', 'cmd',
'rdp_server', 'rdp_options',
- 'xdmcp_server',
+ 'xdmcp_server',
'rootdir', 'loglevel', 'profile_name', 'profile_id',
'print_action', 'print_action_args',
+ 'convert_encoding', 'client_encoding', 'server_encoding',
'proxy_class', 'logger',
'control_backend', 'terminal_backend', 'proxy_backend',
'profiles_backend', 'settings_backend', 'printing_backend',
@@ -75,7 +76,9 @@ class X2goSession(object):
use_sshproxy=False,
profile_id=None, profile_name='UNKNOWN',
session_name=None,
- printing=None, share_local_folders=[],
+ printing=False,
+ allow_share_local_folders=False,
+ share_local_folders=[],
control_backend=_X2goControlSession,
terminal_backend=_X2goTerminalSession,
info_backend=_X2goServerSessionInfo,
@@ -124,6 +127,7 @@ class X2goSession(object):
self.session_name = session_name
self.server = server
self.printing = printing
+ self.allow_share_local_folders = allow_share_local_folders
self.share_local_folders = share_local_folders
self._control_backend = control_backend
self._terminal_backend = terminal_backend
@@ -246,10 +250,10 @@ class X2goSession(object):
else:
del _sshproxy_params[p]
del _terminal_params[p]
- try:
- del _sshproxy_params['use_sshproxy']
- except KeyError:
- pass
+ try: del _sshproxy_params['use_sshproxy']
+ except KeyError: pass
+ try: del _control_params['allow_share_local_folders']
+ except KeyError: pass
self.control_params.update(_control_params)
self.terminal_params.update(_terminal_params)
@@ -558,7 +562,8 @@ class X2goSession(object):
if SUPPORTED_SOUND and _terminal.params.snd_system is not 'none':
_terminal.start_sound()
- if (SUPPORTED_PRINTING and self.printing) or (SUPPORTED_FOLDERSHARING and self.share_local_folders):
+
+ if (SUPPORTED_PRINTING and self.printing) or (SUPPORTED_FOLDERSHARING and self.allow_share_local_folders and self.share_local_folders):
_terminal.start_sshfs()
try:
@@ -570,7 +575,7 @@ class X2goSession(object):
if SUPPORTED_FOLDERSHARING and self.share_local_folders:
if _control.get_transport().reverse_tunnels[_terminal.get_session_name()]['sshfs'][1] is not None:
for _folder in self.share_local_folders:
- _terminal.share_local_folder(_folder)
+ self.share_local_folder(_folder)
# only run the session startup command if we do not resume...
if _new_session:
@@ -799,7 +804,10 @@ class X2goSession(object):
@rtype: C{bool}
"""
- return self.terminal_session.share_local_folder(folder_name=folder_name)
+ if self.allow_share_local_folders:
+ return self.terminal_session.share_local_folder(folder_name=folder_name)
+ else:
+ self.logger('local folder sharing is disabled for this session profile', loglevel=log.loglevel_WARN)
__share_local_folder = share_local_folder
def session_cleanup(self):
diff --git a/x2go/utils.py b/x2go/utils.py
index 5d5c2d2..68767c7 100644
--- a/x2go/utils.py
+++ b/x2go/utils.py
@@ -124,6 +124,7 @@ def _convert_SessionProfileOptions_2_SessionParams(_options):
'layout': 'kblayout',
'speed': 'link',
'sshport': 'port',
+ 'useexports': 'allow_share_local_folders',
'export': 'share_local_folders',
'print': 'printing',
'name': 'profile_name',
@@ -132,6 +133,9 @@ def _convert_SessionProfileOptions_2_SessionParams(_options):
'rdpserver': 'rdp_server',
'rdpoptions': 'rdp_options',
'xdmcpserver': 'xdmcp_server',
+ 'useiconv': 'convert_encoding',
+ 'iconvto': 'server_encoding',
+ 'iconvfrom': 'client_encoding',
'usesshproxy': 'use_sshproxy',
'sshproxyhost': 'sshproxy_host',
'sshproxyuser': 'sshproxy_user',
@@ -204,9 +208,6 @@ def _convert_SessionProfileOptions_2_SessionParams(_options):
# currently known but ignored in Python X2go
_ignored_options = [
- 'iconvto',
- 'iconvfrom',
- 'useiconv',
'dpi',
'setdpi',
'usekbd',
@@ -236,3 +237,28 @@ def touch_file(filename):
os.makedirs(os.path.dirname(filename), mode=00700)
f = open(filename, 'w')
f.close()
+
+
+def unique(seq):
+ # order preserving
+ noDupes = []
+ [noDupes.append(i) for i in seq if not noDupes.count(i)]
+ return noDupes
+
+
+def known_encodings():
+ from encodings.aliases import aliases
+ _raw_encname_list = []
+ _raw_encname_list.extend(aliases.keys())
+ _raw_encname_list.extend(aliases.values())
+ _raw_encname_list.sort()
+ _encname_list = []
+ for _raw_encname in _raw_encname_list:
+ _encname = _raw_encname.upper()
+ _encname = _encname.replace('_', '-')
+ _encname_list.append(_encname)
+ _encname_list.sort()
+ _encname_list = unique(_encname_list)
+ return _encname_list
+
+
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