From: Timo Sirainen Date: Mon, 12 Jan 2009 17:05:19 +0000 (-0500) Subject: psql: Don't give errors with epoll if db connection gets closed. X-Git-Tag: 1.2.beta1~129 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a54fa00087ba926a3d966a8449d8d7579e89911c;p=thirdparty%2Fdovecot%2Fcore.git psql: Don't give errors with epoll if db connection gets closed. --HG-- branch : HEAD --- diff --git a/src/lib-sql/driver-pgsql.c b/src/lib-sql/driver-pgsql.c index d0c0825453..e31b7979b2 100644 --- a/src/lib-sql/driver-pgsql.c +++ b/src/lib-sql/driver-pgsql.c @@ -85,13 +85,17 @@ static void result_finish(struct pgsql_result *result); static void driver_pgsql_close(struct pgsql_db *db) { - if (db->io != NULL) - io_remove(&db->io); db->io_dir = 0; PQfinish(db->pg); db->pg = NULL; + if (db->io != NULL) { + /* The fd may be closed before call to PQfinish() already, + so use io_remove_closed(). */ + io_remove_closed(&db->io); + } + db->connecting = FALSE; db->connected = FALSE; db->querying = FALSE;