This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository python-x2go. commit 5c8d005073567b55533ed88b9c4cf1f02cd94e15 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Fri Oct 3 13:10:25 2014 +0200 Handle sudden control session death during local folder sharing --- debian/changelog | 2 ++ x2go/session.py | 34 ++++++++++++++++++++-------------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/debian/changelog b/debian/changelog index b082764..3db9b28 100644 --- a/debian/changelog +++ b/debian/changelog @@ -98,6 +98,8 @@ python-x2go (0.5.0.0-0x2go1) UNRELEASED; urgency=low session name (in X2GoTelekinesis). - Handle socket errors on the reverse port forwarding tunnels more gracefully. + - Handle sudden control session death during local folder sharing +gracefully. * debian/control: + Add dependencies: python-requests, python-simplejson. * python-x2go.spec: diff --git a/x2go/session.py b/x2go/session.py index 718c6db..88fc35e 100644 --- a/x2go/session.py +++ b/x2go/session.py @@ -2614,21 +2614,27 @@ class X2GoSession(object): self.shared_folders[local_path]['status'] = 'mounted' else: self.shared_folders.update({ local_path: { 'status': 'new', 'mountpoint': '', }, }) - if self.terminal_session.share_local_folder(local_path=local_path): - if update_exported_folders: - self._update_restore_exported_folders() - retval = True - else: - # remove local_path from folder again if the unmounting process failed - if self.shared_folders[local_path]['status'] == 'new': - del self.shared_folders[local_path] + try: + if self.terminal_session.share_local_folder(local_path=local_path): + if update_exported_folders: + self._update_restore_exported_folders() + retval = True else: - self.shared_folders[local_path]['status'] = 'unmounted' - - # disable this local folder in session profile if restoring shared folders for following sessions is activated - if self.client_instance and self.restore_shared_local_folders: - if local_path in self._restore_exported_folders.keys(): - self._restore_exported_folders[local_path] = False + # remove local_path from folder again if the unmounting process failed + if self.shared_folders[local_path]['status'] == 'new': + del self.shared_folders[local_path] + else: + self.shared_folders[local_path]['status'] = 'unmounted' + + # disable this local folder in session profile if restoring shared folders for following sessions is activated + if self.client_instance and self.restore_shared_local_folders: + if local_path in self._restore_exported_folders.keys(): + self._restore_exported_folders[local_path] = False + + except x2go_exceptions.X2GoControlSessionException: + if self.connected: self.HOOK_on_control_session_death() + self._X2GoSession__disconnect() + return retval # save exported folders to session profile config if requested by session profile parameter ,,restoreexports''... if update_exported_folders and self.client_instance and self.restore_shared_local_folders: -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/python-x2go.git