From: Timo Sirainen Date: Sun, 18 Jul 2004 12:43:05 +0000 (+0300) Subject: Fixed reconnecting to PostgreSQL. X-Git-Tag: 1.1.alpha1~3772 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a0d595ca1e6bc4362c01cd427f674a3bf0a243cb;p=thirdparty%2Fdovecot%2Fcore.git Fixed reconnecting to PostgreSQL. --HG-- branch : HEAD --- diff --git a/src/auth/db-pgsql.c b/src/auth/db-pgsql.c index edd166b2b2..8056c45566 100644 --- a/src/auth/db-pgsql.c +++ b/src/auth/db-pgsql.c @@ -91,13 +91,15 @@ static int pgsql_conn_open(struct pgsql_connection *conn) if (conn->connected) return TRUE; - if (conn->pg == NULL) { - conn->pg = PQconnectdb(conn->set.connect); - if (PQstatus(conn->pg) != CONNECTION_OK) { - i_error("PGSQL: Can't connect to database %s", - conn->set.connect); - return FALSE; - } + i_assert(conn->pg == NULL); + + conn->pg = PQconnectdb(conn->set.connect); + if (PQstatus(conn->pg) != CONNECTION_OK) { + i_error("PGSQL: Can't connect to database %s", + conn->set.connect); + PQfinish(conn->pg); + conn->pg = NULL; + return FALSE; } conn->connected = TRUE;