ldap_enable_cache, ldap_disable_cache, ldap_destroy_cache,
       ldap_flush_cache,                      ldap_uncache_entry,
       ldap_uncache_request, ldap_set_cache_options - LDAP client
       caching routines


SYNOPSIS

       #include <ldap.h>

       ldap_enable_cache( ld, timeout, maxmem )
       LDAP *ld;
       long timeout;
       long maxmem;

       void ldap_disable_cache( ld )
       LDAP *ld;

       void ldap_destroy_cache( ld )
       LDAP *ld;

       void ldap_flush_cache( ld )
       LDAP *ld;

       void ldap_uncache_entry( ld, dn )
       LDAP *ld;
       char *dn;

       void ldap_uncache_request( ld, msgid )
       LDAP *ld;
       int  msgid;

       void ldap_set_cache_options( ld, opts )
       LDAP      *ld;
       unsigned long  opts;


DESCRIPTION

       These routines are used to control the behavior of  client
       caching  of ldap_search(3) and ldap_compare(3) operations.
       By default, the cache is disabled and no caching is  done.
       Enabling  the  cache  can  greatly improve performance and
       reduce network bandwidth when a client DUA makes  repeated
       requests.

       ldap_enable_cache()  should  be  called  to  turn on local
       caching or to change cache parameters (lifetime of  cached
       requests and memory used).  The ld parameter should be the
       result of a successful call to ldap_open(3).  The  timeout
       is specified in seconds, and is used to decide how long to
       keep cached requests.  The maxmem value is in  bytes,  and
       is used to set an upper bound on how memory the cache will
       use.  You can specify 0 for maxmem to restrict  the  cache
       size   by   the   timeout   only.    The   first  call  to
       ldap_enable_cache creates the cache; subsequent calls  re-
       enable the cache and set the timeout and memory values.

       (new requests are not cached and the cache is not  checked
       when  returning  results).   It  does not delete the cache
       contents.

       ldap_destroy_cache()  turns  off  caching  and  completely
       removes the cache from memory.

       ldap_flush_cache()  deletes  the  cache contents, but does
       not effect it in any other way.

       ldap_uncache_entry() removes all requests that make refer­
       ence  to  the  distinguished  name  dn from the cache.  It
       should be used, for example, after doing an ldap_modify(3)
       call involving dn.

       ldap_uncache_request()  removes  the  request indicated by
       the LDAP request id msgid from the cache.

       ldap_set_cache_options() is used to change caching  behav­
       ior.      The     current     supported     options    are
       LDAP_CACHE_OPT_CACHENOERRS  to  suppress  caching  of  any
       requests     that     result     in    an    error,    and
       LDAP_CACHE_OPT_CACHEALLERRS  to  enable  caching  of   all
       requests.   The  default behavior is to not cache requests
       that result in errors, except that request that result  in
       the error LDAP_SIZELIMIT_EXCEEDED are cached.


ERRORS

       ldap_enable_cache()  returns  0 upon success, and -1 if it
       is unable to allocate space for the cache.  All the  other
       calls are declared as void and return nothing.


SEE ALSO

       ldap(3), ldap_search(3), ldap_compare(3)


ACKNOWLEDGEMENTS

       OpenLDAP  is developed and maintained by The OpenLDAP Pro­
       ject (http://www.openldap.org/).  OpenLDAP is derived from
       University of Michigan LDAP 3.3 Release.


Man(1) output converted with man2html