X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Finit.c;h=e606e3da9ee898c5e2a641f9b66931ec6a890be6;hb=ac3ad635ef0883d96b5424f96b2c43e13b0ad659;hp=6dce7e7d08f513a4200c0ffcae10d0c4dc0cd0b9;hpb=a637926bf27d346a07eb80692393e99cf19b49f5;p=openldap diff --git a/servers/slapd/init.c b/servers/slapd/init.c index 6dce7e7d08..e606e3da9e 100644 --- a/servers/slapd/init.c +++ b/servers/slapd/init.c @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2004 The OpenLDAP Foundation. + * Copyright 1998-2005 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -113,8 +113,6 @@ slap_init( int mode, const char *name ) slap_name = name; - (void) ldap_pvt_thread_initialize(); - ldap_pvt_thread_pool_init( &connection_pool, connection_pool_max, 0); @@ -123,36 +121,20 @@ slap_init( int mode, const char *name ) ldap_pvt_thread_mutex_init( &slap_counters.sc_sent_mutex ); ldap_pvt_thread_mutex_init( &slap_counters.sc_ops_mutex ); -#ifdef HAVE_GMP - mpz_init( slap_counters.sc_bytes ); - mpz_init( slap_counters.sc_pdu ); - mpz_init( slap_counters.sc_entries ); - mpz_init( slap_counters.sc_refs ); + ldap_pvt_mp_init( slap_counters.sc_bytes ); + ldap_pvt_mp_init( slap_counters.sc_pdu ); + ldap_pvt_mp_init( slap_counters.sc_entries ); + ldap_pvt_mp_init( slap_counters.sc_refs ); - mpz_init( slap_counters.sc_ops_completed ); - mpz_init( slap_counters.sc_ops_initiated ); + ldap_pvt_mp_init( slap_counters.sc_ops_initiated ); + ldap_pvt_mp_init( slap_counters.sc_ops_completed ); #ifdef SLAPD_MONITOR for ( i = 0; i < SLAP_OP_LAST; i++ ) { - mpz_init( slap_counters.sc_ops_initiated_[ i ] ); - mpz_init( slap_counters.sc_ops_completed_[ i ] ); - } -#endif /* SLAPD_MONITOR */ -#else /* ! HAVE_GMP */ - slap_counters.sc_bytes = 0; - slap_counters.sc_pdu = 0; - slap_counters.sc_entries = 0; - slap_counters.sc_refs = 0; - - slap_counters.sc_ops_completed = 0; - slap_counters.sc_ops_initiated = 0; -#ifdef SLAPD_MONITOR - for ( i = 0; i < SLAP_OP_LAST; i++ ) { - slap_counters.sc_ops_initiated_[ i ] = 0; - slap_counters.sc_ops_completed_[ i ] = 0; + ldap_pvt_mp_init( slap_counters.sc_ops_initiated_[ i ] ); + ldap_pvt_mp_init( slap_counters.sc_ops_completed_[ i ] ); } #endif /* SLAPD_MONITOR */ -#endif /* ! HAVE_GMP */ #ifndef HAVE_GMTIME_R ldap_pvt_thread_mutex_init( &gmtime_mutex ); @@ -237,6 +219,9 @@ int slap_destroy(void) "%s destroy: freeing system resources.\n", slap_name, 0, 0 ); + if ( default_referral ) { + ber_bvarray_free( default_referral ); + } rc = backend_destroy(); @@ -250,21 +235,19 @@ int slap_destroy(void) ldap_pvt_thread_mutex_destroy( &slap_counters.sc_sent_mutex ); ldap_pvt_thread_mutex_destroy( &slap_counters.sc_ops_mutex ); -#ifdef HAVE_GMP - mpz_clear( slap_counters.sc_bytes ); - mpz_clear( slap_counters.sc_pdu ); - mpz_clear( slap_counters.sc_entries ); - mpz_clear( slap_counters.sc_refs ); - mpz_clear( slap_counters.sc_ops_completed ); - mpz_clear( slap_counters.sc_ops_initiated ); + ldap_pvt_mp_clear( slap_counters.sc_bytes ); + ldap_pvt_mp_clear( slap_counters.sc_pdu ); + ldap_pvt_mp_clear( slap_counters.sc_entries ); + ldap_pvt_mp_clear( slap_counters.sc_refs ); + ldap_pvt_mp_clear( slap_counters.sc_ops_initiated ); + ldap_pvt_mp_clear( slap_counters.sc_ops_completed ); #ifdef SLAPD_MONITOR for ( i = 0; i < SLAP_OP_LAST; i++ ) { - mpz_clear( slap_counters.sc_ops_initiated_[ i ] ); - mpz_clear( slap_counters.sc_ops_completed_[ i ] ); + ldap_pvt_mp_clear( slap_counters.sc_ops_initiated_[ i ] ); + ldap_pvt_mp_clear( slap_counters.sc_ops_completed_[ i ] ); } #endif /* SLAPD_MONITOR */ -#endif /* HAVE_GMP */ break; default: