From: Timo Sirainen Date: Thu, 15 Sep 2011 10:48:26 +0000 (+0300) Subject: lib-sql: Don't try to connect to connections that are going to be reconnected later. X-Git-Tag: 2.0.15~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bbac309a80df5ca3cc656b08905f53b3d45c3914;p=thirdparty%2Fdovecot%2Fcore.git lib-sql: Don't try to connect to connections that are going to be reconnected later. This avoids unnecessarily trying to connect to failing connections. --- diff --git a/src/lib-sql/driver-sqlpool.c b/src/lib-sql/driver-sqlpool.c index 1061e50540..75de50c9c2 100644 --- a/src/lib-sql/driver-sqlpool.c +++ b/src/lib-sql/driver-sqlpool.c @@ -309,7 +309,7 @@ sqlpool_find_available_connection(struct sqlpool_db *db, if (conns[idx].host_idx == unwanted_host_idx) continue; - if (!SQL_DB_IS_READY(conndb)) { + if (!SQL_DB_IS_READY(conndb) && conndb->to_reconnect == NULL) { /* see if we could reconnect to it immediately */ (void)sql_connect(conndb); } @@ -523,7 +523,8 @@ static int driver_sqlpool_connect(struct sql_db *_db) int ret = -1, ret2; array_foreach(&db->all_connections, conn) { - ret2 = sql_connect(conn->db); + ret2 = conn->db->to_reconnect != NULL ? -1 : + sql_connect(conn->db); if (ret2 > 0) return 1; if (ret2 == 0)