]> git.sur5r.net Git - openldap/commitdiff
free Env
authorPierangelo Masarati <ando@openldap.org>
Sun, 7 Aug 2005 21:53:38 +0000 (21:53 +0000)
committerPierangelo Masarati <ando@openldap.org>
Sun, 7 Aug 2005 21:53:38 +0000 (21:53 +0000)
servers/slapd/back-sql/init.c
servers/slapd/back-sql/sql-wrap.c

index 1fd226586a0b84d5c1fac7f2eae17dea863b2f2b..7db87c5d7520b2194c0da8a0bfa14dd351ca0f65 100644 (file)
@@ -97,17 +97,23 @@ backsql_db_init(
        BackendDB       *bd )
 {
        backsql_info    *bi;
+       int             rc = 0;
  
        Debug( LDAP_DEBUG_TRACE, "==>backsql_db_init()\n", 0, 0, 0 );
-       bi = (backsql_info *)ch_malloc( sizeof( backsql_info ) );
-       memset( bi, '\0', sizeof( backsql_info ) );
+
+       bi = (backsql_info *)ch_calloc( 1, sizeof( backsql_info ) );
        ldap_pvt_thread_mutex_init( &bi->sql_dbconn_mutex );
        ldap_pvt_thread_mutex_init( &bi->sql_schema_mutex );
-       backsql_init_db_env( bi );
+
+       if ( backsql_init_db_env( bi ) != SQL_SUCCESS ) {
+               rc = -1;
+       }
 
        bd->be_private = bi;
+
        Debug( LDAP_DEBUG_TRACE, "<==backsql_db_init()\n", 0, 0, 0 );
-       return 0;
+
+       return rc;
 }
 
 int
index 5b3cf662d801bfd92a08b212d83987cd2be45344..9bc7d3d7fc926ed424252a42668bb224d00cf9cc 100644 (file)
@@ -282,6 +282,7 @@ backsql_init_db_env( backsql_info *bi )
        int             ret = SQL_SUCCESS;
        
        Debug( LDAP_DEBUG_TRACE, "==>backsql_init_db_env()\n", 0, 0, 0 );
+
        rc = SQLAllocEnv( &bi->sql_db_env );
        if ( rc != SQL_SUCCESS ) {
                Debug( LDAP_DEBUG_TRACE, "init_db_env: SQLAllocEnv failed:\n",
@@ -290,7 +291,9 @@ backsql_init_db_env( backsql_info *bi )
                                SQL_NULL_HENV, rc );
                ret = SQL_ERROR;
        }
+
        Debug( LDAP_DEBUG_TRACE, "<==backsql_init_db_env()=%d\n", ret, 0, 0 );
+
        return ret;
 }
 
@@ -299,10 +302,8 @@ backsql_free_db_env( backsql_info *bi )
 {
        Debug( LDAP_DEBUG_TRACE, "==>backsql_free_db_env()\n", 0, 0, 0 );
 
-#ifdef BACKSQL_TRACE
-       Debug( LDAP_DEBUG_TRACE, "free_db_env(): delete AVL tree here!!!\n",
-                       0, 0, 0 );
-#endif /* BACKSQL_TRACE */
+       (void)SQLFreeEnv( bi->sql_db_env );
+       bi->sql_db_env = SQL_NULL_HENV;
 
        /*
         * stop, if frontend waits for all threads to shutdown 
@@ -310,6 +311,7 @@ backsql_free_db_env( backsql_info *bi )
         * everything is already deleted...
         */
        Debug( LDAP_DEBUG_TRACE, "<==backsql_free_db_env()\n", 0, 0, 0 );
+
        return SQL_SUCCESS;
 }