diff options
author | cvsadm <cvsadm> | 2005-01-21 00:44:34 +0000 |
---|---|---|
committer | cvsadm <cvsadm> | 2005-01-21 00:44:34 +0000 |
commit | b2093e3016027d6b5cf06b3f91f30769bfc099e2 (patch) | |
tree | cf58939393a9032182c4fbc4441164a9456e82f8 /ldap/servers/plugins/chainingdb/cb_start.c | |
download | ds-ldapserver7x.tar.gz ds-ldapserver7x.tar.xz ds-ldapserver7x.zip |
Moving NSCP Directory Server from DirectoryBranch to TRUNK, initial drop. (foxworth)ldapserver7x
Diffstat (limited to 'ldap/servers/plugins/chainingdb/cb_start.c')
-rw-r--r-- | ldap/servers/plugins/chainingdb/cb_start.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/ldap/servers/plugins/chainingdb/cb_start.c b/ldap/servers/plugins/chainingdb/cb_start.c new file mode 100644 index 00000000..c4a4538b --- /dev/null +++ b/ldap/servers/plugins/chainingdb/cb_start.c @@ -0,0 +1,43 @@ +/** BEGIN COPYRIGHT BLOCK + * Copyright 2001 Sun Microsystems, Inc. + * Portions copyright 1999, 2001-2003 Netscape Communications Corporation. + * All rights reserved. + * END COPYRIGHT BLOCK **/ +#include "cb.h" + +int +chainingdb_start ( Slapi_PBlock *pb ) { + + cb_backend * cb; + + slapi_pblock_get( pb, SLAPI_PLUGIN_PRIVATE, &cb ); + + if (cb->started) { + /* We may be called multiple times due to */ + /* plugin dependency resolution */ + return 0; + } + + /* + ** Reads in any configuration information held in the dse for the + ** chaining plugin. Create dse entries used to configure the + ** chaining plugin if they don't exist. Registers plugins to maintain + ** those dse entries. + */ + + cb_config_load_dse_info(pb); + + /* Register new LDAPv3 controls supported by the chaining backend */ + + slapi_register_supported_control( CB_LDAP_CONTROL_CHAIN_SERVER, + SLAPI_OPERATION_SEARCH | SLAPI_OPERATION_COMPARE + | SLAPI_OPERATION_ADD | SLAPI_OPERATION_DELETE + | SLAPI_OPERATION_MODIFY | SLAPI_OPERATION_MODDN ); + + /* register to be notified when backend state changes */ + slapi_register_backend_state_change((void *)cb_be_state_change, + cb_be_state_change); + + cb->started=1; + return 0; +} |