[X2Go-Commits] [x2gobroker] 02/06: Move split_host_address() code into x2gobroker.utils.

git-admin at x2go.org git-admin at x2go.org
Thu Sep 11 22:38:32 CEST 2014


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2gobroker.

commit f3bb32d68de84542083ceec093ee0f1ce8cc1333
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Thu Sep 11 20:59:46 2014 +0200

    Move split_host_address() code into x2gobroker.utils.
---
 bin/x2gobroker      |   19 ++-----------------
 debian/changelog    |    1 +
 x2gobroker/utils.py |   29 +++++++++++++++++++++++++++++
 3 files changed, 32 insertions(+), 17 deletions(-)

diff --git a/bin/x2gobroker b/bin/x2gobroker
index 12ea764..f9c878f 100755
--- a/bin/x2gobroker
+++ b/bin/x2gobroker
@@ -95,7 +95,7 @@ except ImportError:
 from x2gobroker import __VERSION__
 from x2gobroker import __AUTHOR__
 from x2gobroker.loggers import logger_broker, logger_access, logger_error, tornado_log_request
-from x2gobroker.utils import drop_privileges
+from x2gobroker.utils import drop_privileges, split_host_address
 
 interactive_mode_warning = False
 # check effective UID the broker runs as and complain appropriately...
@@ -240,22 +240,7 @@ if __name__ == "__main__":
                 if not daemon_logdir.endswith('/'):
                     daemon_logdir += '/'
 
-        # some people just give the port but prepend a colon, webpy does not like this, so we strip if off
-        cmdline_args.bind = cmdline_args.bind.lstrip('*')
-        cmdline_args.bind = cmdline_args.bind.lstrip(':')
-
-        if ':' in cmdline_args.bind:
-            bind_address, bind_port = cmdline_args.bind.rsplit(':', 1)
-            try:
-                bind_port = int(bind_port)
-            except TypeError:
-                # obviously we split an IPv6 address
-                bind_address = cmdline_args.bind
-                bind_port = 22
-        else:
-            bind_address = "0.0.0.0"
-            bind_port = int(cmdline_args.bind)
-        bind_address = bind_address.lstrip('[').rstrip(']')
+        bind_address, bind_port = x2gobroker.utils.split_host_address(cmdline_args.bind, default_address="0.0.0.0")
         cmdline_args.bind = "[{address}]:{port}".format(address=bind_address, port=bind_port)
 
 urls = ()
diff --git a/debian/changelog b/debian/changelog
index 141d2ee..e7d18e7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -150,6 +150,7 @@ x2gobroker (0.0.3.0-0x2go1) UNRELEASED; urgency=low
       performing the query.
     - Make sure bind_address and bind_port are correctly detected from
       /etc/default/x2gobroker-daemon and /etc/x2go/broker/defaults.cfg.
+    - Move split_host_address() code into x2gobroker.utils.
   * debian/control:
     + Provide separate bin:package for SSH brokerage: x2gobroker-ssh.
     + Replace LDAP support with session brokerage support in LONG_DESCRIPTION.
diff --git a/x2gobroker/utils.py b/x2gobroker/utils.py
index 8baaed4..f296b03 100644
--- a/x2gobroker/utils.py
+++ b/x2gobroker/utils.py
@@ -192,3 +192,32 @@ def drop_privileges(uid, gid):
 
     # set the new user's home directory as $HOME
     os.environ['HOME'] = pwd.getpwnam(uid).pw_dir
+
+def split_host_address(host, default_address=None, default_port=22):
+
+    # do some stripping first...
+    host = host.strip()
+    host = host.lstrip('*')
+    host = host.lstrip(':')
+
+    if ':' in host:
+        bind_address, bind_port = host.rsplit(':', 1)
+        try:
+            bind_port = int(bind_port)
+        except TypeError:
+            # obviously we split an IPv6 address
+            bind_address = host
+            bind_port = 22
+    else:
+        if default_address is not None:
+            bind_address = default_address
+            bind_port = int(host)
+        elif default_port is not None:
+            bind_address = host
+            bind_port = default_port
+        else:
+            bind_address = host
+            bind_port = 0
+    bind_address = bind_address.lstrip('[').rstrip(']')
+
+    return bind_address, bind_port

--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/x2gobroker.git


More information about the x2go-commits mailing list