diff options
author | Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> | 2012-12-19 14:45:26 +0100 |
---|---|---|
committer | Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> | 2012-12-19 14:45:26 +0100 |
commit | 2633cccdd1dfd02205e9d81858d5fcdf571a3179 (patch) | |
tree | 4fdf61e72c266356fac4044f014f7bd184e09b82 /pykolab/utils.py | |
parent | 05e22e2a6a219462164e919aa26541e3a59a177c (diff) | |
download | pykolab-2633cccdd1dfd02205e9d81858d5fcdf571a3179.tar.gz |
Adjust utils.parse_ldap_uri()
Diffstat (limited to 'pykolab/utils.py')
-rw-r--r-- | pykolab/utils.py | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/pykolab/utils.py b/pykolab/utils.py index 4fca016..dc2b088 100644 --- a/pykolab/utils.py +++ b/pykolab/utils.py @@ -333,11 +333,29 @@ def parse_ldap_uri(uri): or None on failure """ + _protocol = uri.split(':')[0] + try: - _protocol = uri.split(':')[0] - _ldap_uri, _attr, _scope, _filter = uri.split('?') - _server = _ldap_uri.split('//')[1].split('/')[0] - _base_dn = _ldap_uri.split('//')[1].split('/')[1] + try: + _ldap_uri, _attr, _scope, _filter = uri.split('?') + _server = _ldap_uri.split('//')[1].split('/')[0] + _base_dn = _ldap_uri.split('//')[1].split('/')[1] + + except: + _server = uri.split('//')[1].split('/')[0] + _attr = None + _scope = None + _filter = None + _base_dn = None + + if len(_server.split(':')) > 1: + _port = _server.split(':')[1] + _server = _server.split(':')[0] + else: + if _protocol == 'ldaps': + _port = "636" + else: + _port = "389" if _server == '': _server = None @@ -352,7 +370,7 @@ def parse_ldap_uri(uri): if _filter == '': _filter = "(objectclass=*)" - return (_protocol, _server, _base_dn, _attr, _scope, _filter) + return (_protocol, _server, _port, _base_dn, _attr, _scope, _filter) except: return None |