From 95f0c52013270fd83e33c480254a8001211fe9fa Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Fri, 12 Oct 2007 10:37:36 -0400 Subject: [PATCH] Remove buggy connection caching. Create a new connection for each LDAP request. --- ipa-server/xmlrpc-server/funcs.py | 43 +++++-------------------------- 1 file changed, 7 insertions(+), 36 deletions(-) diff --git a/ipa-server/xmlrpc-server/funcs.py b/ipa-server/xmlrpc-server/funcs.py index 86c12065f..517d54a78 100644 --- a/ipa-server/xmlrpc-server/funcs.py +++ b/ipa-server/xmlrpc-server/funcs.py @@ -68,19 +68,14 @@ class IPAConnPool: def getConn(self, host, port, krbccache=None, debug=None): conn = None + ccache = krbV.CCache(name=krbccache, context=self._ctx) cprinc = ccache.principal() - self._lock.acquire() - try: - try: - conn = self._dict[cprinc.name] - del self._dict[cprinc.name] - self._lru.remove(cprinc.name) - except KeyError: - conn = ipaserver.ipaldap.IPAdmin(host,port,None,None,None,debug) - conn.set_krbccache(krbccache, cprinc.name) - finally: - self._lock.release() + + conn = ipaserver.ipaldap.IPAdmin(host,port,None,None,None,debug) + + # This will bind the connection + conn.set_krbccache(krbccache, cprinc.name) return conn @@ -88,31 +83,7 @@ class IPAConnPool: if conn is None: return - cprinc = conn.principal - - self._lock.acquire() - try: - - # Look to see if we are already on the list from another source and - # if so, remove it. - try: - c = self._dict[cprinc] - del self._dict[cprinc] - self._lru.remove(cprinc) - except KeyError: - # Not in the list - pass - - if self._maxsize and len(self._dict) > self._maxsize: - princ = self._lru.pop(0) - c = self._dict[princ] - c.unbind_s() - del self._dict[cprinc] - - self._lru.append(cprinc) - self._dict[cprinc] = conn - finally: - self._lock.release() + conn.unbind_s() class IPAServer: