[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

unencrypted LDM sessions



i know folks are hankering to release and all, but here's a feature for
LTSP i think might be worth considering...

the attached patch adds support for LDM to not encrypt the entire X
session- so performance is comparable to XDMCP.  the advantages over
just using XDMCP are:

* the login still happens over ssh, so passwords are not sent in the
clear

* local devices and sound support work identical to encrypted LDM
sessions

the default behavior should be identical to the current behavior of LDM,
it just gives the possibility of using unencrypted sessions.

i can upload new ltsp packages with the patch applied if it's deemed a
desired and acceptible feature at this point in the release cycle.

live well,
  vagrant
# Shelved patch: direct x support
--- client/ldm	2007-06-15 21:36:44 +0000
+++ client/ldm	2007-07-03 16:46:29 +0000
@@ -41,6 +41,9 @@
         self.use_xfs = get_config_bool('USE_XFS')
         self.use_sound = get_config_bool('SOUND')
         self.use_localdev = get_config_bool('LOCALDEV')
+# Edited by Gideon Romm <gideon@symbio-technologies.com> (Symbio Technologies)
+# If LDM_DIRECTX is True, X traffic is NOT tunneled through ssh
+        self.directx = get_config_bool('LDM_DIRECTX')
 
         if self.use_sound:
             self.ip = get_ip('eth0')
@@ -112,9 +115,17 @@
             os.environ['SSH_ASKPASS'] = '/usr/lib/ltsp/ldm-askpass'
 
             ssh_opts = ['-v',
-                       '-X',
                        '-c', 'blowfish-cbc,aes128-cbc,3des-cbc']
 
+# Edited by Gideon Romm <gideon@symbio-technologies.com> (Symbio Technologies)
+# Set DISPLAY environment variable if LDM_DIRECTX, otherwise use ssh -X
+            if self.directx:
+                directx_cmd=['DISPLAY=%s%s' % (get_ip('eth0'), self.display)]
+            else:
+                directx_cmd=[]
+                directx_ssh_opts=['-X']
+                ssh_opts.extend(directx_ssh_opts)
+
             if self.use_localdev:
                        localdev_ssh_opts=['-M',
                           '-S', '/var/run/ldm_socket']
@@ -182,9 +193,9 @@
                                   '-c',
                                   " ".join( ['\'',
                                     'env',
-									lang_command,
+                                    lang_command,
                                     'LTSP_CLIENT="%s"' % (socket.gethostname()),
-                                    ] + sound_cmd + [
+                                    ] + sound_cmd + directx_cmd + [
                                     session_manager,
                                     '\''] ),
                                   ';',

Reply to: