summaryrefslogtreecommitdiff
path: root/plugins/LdapAuthentication/LdapAuthenticationPlugin.php
diff options
context:
space:
mode:
authorCraig Andrews <candrews@integralblue.com>2009-12-19 15:10:57 -0500
committerCraig Andrews <candrews@integralblue.com>2009-12-19 15:10:57 -0500
commita43c310fbcbe91fe849a2e14fdabd9824be7dbfe (patch)
tree5ce9d9d7d63d4398f0feacfcf1b3f476524bd0a1 /plugins/LdapAuthentication/LdapAuthenticationPlugin.php
parent4002c18065eb324e983a1ecb997af9d2f9b18dde (diff)
Cache the LDAP schema in memcache (if memcache is available)
Diffstat (limited to 'plugins/LdapAuthentication/LdapAuthenticationPlugin.php')
-rw-r--r--plugins/LdapAuthentication/LdapAuthenticationPlugin.php23
1 files changed, 17 insertions, 6 deletions
diff --git a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php
index 0ce08bd78..39967fe42 100644
--- a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php
+++ b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php
@@ -67,6 +67,18 @@ class LdapAuthenticationPlugin extends AuthenticationPlugin
throw new Exception("if password_changeable is set, the password attribute and password_encoding must also be specified");
}
}
+
+ function onAutoload($cls)
+ {
+ switch ($cls)
+ {
+ case 'MemcacheSchemaCache':
+ require_once(INSTALLDIR.'/plugins/LdapAuthentication/MemcacheSchemaCache.php');
+ return false;
+ default:
+ return parent::onAutoload($cls);
+ }
+ }
//---interface implementation---//
@@ -175,12 +187,11 @@ class LdapAuthenticationPlugin extends AuthenticationPlugin
}
if($config == null) $this->default_ldap=$ldap;
- if (isset($this->schema_cachefile)) {
- $cacheConfig = array(
- 'path' => $this->schema_cachefile,
- 'max_age' => (isset($this->schema_maxage) ? $this->schema_maxage : 1200 )
- );
- $cacheObj = new Net_LDAP2_SimpleFileSchemaCache($cacheConfig);
+ $c = common_memcache();
+ if (!empty($c)) {
+ $cacheObj = new MemcacheSchemaCache(
+ array('c'=>$c,
+ 'cacheKey' => common_cache_key('ldap_schema:' . crc32(serialize($config)))));
$ldap->registerSchemaCache($cacheObj);
}
return $ldap;