Mercurial > dovecot > original-hg > dovecot-1.2
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)