changeset 3422:28be9a80908e HEAD

Don't connect to SQL database in main dovecot-auth process if we're using workers to do it.
author Timo Sirainen <tss@iki.fi>
date Thu, 09 Jun 2005 21:44:46 +0300
parents c624ffa9e6f0
children 61ea539ee5f1
files src/auth/db-sql.c src/auth/db-sql.h src/auth/passdb-sql.c src/auth/userdb-sql.c
diffstat 4 files changed, 7 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/db-sql.c	Thu Jun 09 21:44:22 2005 +0300
+++ b/src/auth/db-sql.c	Thu Jun 09 21:44:46 2005 +0300
@@ -82,18 +82,13 @@
 		i_fatal("sql: connect string not set in configuration file %s",
 			config_path);
 	}
+	conn->db = sql_init(conn->set.driver, conn->set.connect);
 
 	conn->next = connections;
 	connections = conn;
 	return conn;
 }
 
-void db_sql_connect(struct sql_connection *conn)
-{
-	if (conn->db == NULL)
-		conn->db = sql_init(conn->set.driver, conn->set.connect);
-}
-
 void db_sql_unref(struct sql_connection *conn)
 {
 	if (--conn->refcount > 0)
--- a/src/auth/db-sql.h	Thu Jun 09 21:44:22 2005 +0300
+++ b/src/auth/db-sql.h	Thu Jun 09 21:44:46 2005 +0300
@@ -25,6 +25,4 @@
 struct sql_connection *db_sql_init(const char *config_path);
 void db_sql_unref(struct sql_connection *conn);
 
-void db_sql_connect(struct sql_connection *conn);
-
 #endif
--- a/src/auth/passdb-sql.c	Thu Jun 09 21:44:22 2005 +0300
+++ b/src/auth/passdb-sql.c	Thu Jun 09 21:44:46 2005 +0300
@@ -180,10 +180,11 @@
 {
 	enum sql_db_flags flags;
 
-	db_sql_connect(passdb_sql_conn);
-
 	flags = sql_get_flags(passdb_sql_conn->db);
 	passdb_sql.blocking = (flags & SQL_DB_FLAG_BLOCKING) != 0;
+
+	if (!passdb_sql.blocking || worker)
+                sql_connect(passdb_sql_conn->db);
 }
 
 static void passdb_sql_deinit(void)
--- a/src/auth/userdb-sql.c	Thu Jun 09 21:44:22 2005 +0300
+++ b/src/auth/userdb-sql.c	Thu Jun 09 21:44:46 2005 +0300
@@ -129,10 +129,11 @@
 {
 	enum sql_db_flags flags;
 
-	db_sql_connect(userdb_sql_conn);
-
 	flags = sql_get_flags(userdb_sql_conn->db);
 	userdb_sql.blocking = (flags & SQL_DB_FLAG_BLOCKING) != 0;
+
+	if (!userdb_sql.blocking || worker)
+		sql_connect(userdb_sql_conn->db);
 }
 
 static void userdb_sql_deinit(void)