From 5c633dc55ffe3c91ad6d58bc05690b905272bdca Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 14 Mar 2019 21:44:28 +0100 Subject: [PATCH] slapd: quote unix socket path in ldap:// URL --- setup.py | 2 +- src/ldaptools/slapd.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 2a9029e..5b25a42 100755 --- a/setup.py +++ b/setup.py @@ -55,7 +55,7 @@ setup(name="ldaptools", packages=find_packages('src'), package_dir={'': 'src'}, include_package_data=True, - install_requires=['python-ldap'], + install_requires=['python-ldap', 'six'], entry_points={ 'console_scripts': ['ldapsync=ldaptools.ldapsync.cmd:main'], }, diff --git a/src/ldaptools/slapd.py b/src/ldaptools/slapd.py index 53247f8..108e30a 100644 --- a/src/ldaptools/slapd.py +++ b/src/ldaptools/slapd.py @@ -13,6 +13,8 @@ except ImportError: from io import StringIO import atexit +from six.moves.urllib.parse import quote + from ldaptools.ldif_utils import ListLDIFParser from ldaptools.paged import PagedLDAPObject @@ -118,7 +120,7 @@ olcAccess: {{0}}to * os.mkdir(self.config_dir) self.socket = os.path.join(self.slapd_dir, 'socket') if not ldap_url: - ldap_url = 'ldapi://%s' % self.socket.replace('/', '%2F') + ldap_url = 'ldapi://%s' % quote(self.socket, '') self.ldap_url = ldap_url config_context = config_context or {} extra_config = ''