--- cdr/cdr_pgsql.c 2007-06-20 17:32:39.000000000 -0600 +++ cdr/cdr_pgsql.c 2007-07-26 11:22:19.000000000 -0600 @@ -86,9 +86,10 @@ connected = 1; } else { pgerror = PQerrorMessage(conn); - PQfinish(conn); ast_log(LOG_ERROR, "cdr_pgsql: Unable to connect to database server %s. Calls will not be logged!\n", pghostname); ast_log(LOG_ERROR, "cdr_pgsql: Reason: %s\n", pgerror); + PQfinish(conn); + conn = NULL; } } @@ -146,10 +147,11 @@ connected = 1; } else { pgerror = PQerrorMessage(conn); - PQfinish(conn); ast_log(LOG_ERROR, "cdr_pgsql: Unable to reconnect to database server %s. Calls will not be logged!\n", pghostname); ast_log(LOG_ERROR, "cdr_pgsql: Reason: %s\n", pgerror); connected = 0; + PQfinish(conn); + conn = NULL; ast_mutex_unlock(&pgsql_lock); return -1; } @@ -183,7 +185,7 @@ } static int my_unload_module(void) -{ +{ if (conn) PQfinish(conn); if (pghostname)