1 /* init.c - initialize various things */
15 * read-only global variables or variables only written by the listener
16 * thread (after they are initialized) - no need to protect them with a mutex.
21 int ldap_syslog = LDAP_DEBUG_STATS;
26 int ldap_syslog_level = LOG_DEBUG;
27 char *default_referral;
29 ldap_pvt_thread_t listener_tid;
34 * global variables that need mutex protection
37 ldap_pvt_thread_mutex_t active_threads_mutex;
38 ldap_pvt_thread_cond_t active_threads_cond;
41 ldap_pvt_thread_mutex_t currenttime_mutex;
43 ldap_pvt_thread_mutex_t new_conn_mutex;
46 ldap_pvt_thread_mutex_t crypt_mutex;
52 ldap_pvt_thread_mutex_t ops_mutex;
54 long num_entries_sent;
56 ldap_pvt_thread_mutex_t num_sent_mutex;
58 * these mutexes must be used when calling the entry2str()
59 * routine since it returns a pointer to static data.
61 ldap_pvt_thread_mutex_t entry2str_mutex;
62 ldap_pvt_thread_mutex_t replog_mutex;
64 static char* slap_name;
65 int slapMode = SLAP_UNDEFINED_MODE;
68 slap_init( int mode, char *name )
72 if( slapMode != SLAP_UNDEFINED_MODE ) {
73 Debug( LDAP_DEBUG_ANY,
74 "%s init: init called twice (old=%d, new=%d)\n",
75 name, slapMode, mode );
81 if( ( slapMode != SLAP_SERVER_MODE ) && ( slapMode != SLAP_TOOL_MODE ) ) {
82 Debug( LDAP_DEBUG_ANY,
83 "%s init: undefined mode (%d).\n",
88 Debug( LDAP_DEBUG_TRACE,
89 "%s init: initiated %s.\n",
91 mode == SLAP_SERVER_MODE ? "server" : "tool",
96 (void) ldap_pvt_thread_initialize();
98 ldap_pvt_thread_mutex_init( &active_threads_mutex );
99 ldap_pvt_thread_cond_init( &active_threads_cond );
101 ldap_pvt_thread_mutex_init( &new_conn_mutex );
102 ldap_pvt_thread_mutex_init( ¤ttime_mutex );
103 ldap_pvt_thread_mutex_init( &entry2str_mutex );
104 ldap_pvt_thread_mutex_init( &replog_mutex );
105 ldap_pvt_thread_mutex_init( &ops_mutex );
106 ldap_pvt_thread_mutex_init( &num_sent_mutex );
108 ldap_pvt_thread_mutex_init( &crypt_mutex );
116 int slap_startup(int dbnum)
120 Debug( LDAP_DEBUG_TRACE,
121 "%s startup: initiated.\n",
124 rc = backend_startup(dbnum);
129 int slap_shutdown(int dbnum)
133 Debug( LDAP_DEBUG_TRACE,
134 "%s shutdown: initiated\n",
137 /* let backends do whatever cleanup they need to do */
138 rc = backend_shutdown(dbnum);
143 int slap_destroy(void)
147 Debug( LDAP_DEBUG_TRACE,
148 "%s shutdown: freeing system resources.\n",
151 rc = backend_destroy();
153 /* should destory the above mutex */