aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2013-07-13 23:14:48 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2013-07-13 23:14:48 +0300
commit72ccd492bcf4979e6de11569a46ea47040897865 (patch)
treec5e255a0a11d284c8976a471462365ce7caf3cdd
parent988476b40eaf7038b5d35bc1fba44aad0c74d013 (diff)
downloadvmod-dbrw-72ccd492bcf4979e6de11569a46ea47040897865.tar.gz
vmod-dbrw-72ccd492bcf4979e6de11569a46ea47040897865.tar.bz2
Bugfix.
* src/sql.c (sql_connect): Act in accordance with the current state.
-rw-r--r--src/sql.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/sql.c b/src/sql.c
index e3b948c..c3db24c 100644
--- a/src/sql.c
+++ b/src/sql.c
@@ -71,6 +71,20 @@ sql_connect(struct dbrw_connection *conn)
{
CONN_ASSERT_VAL(conn, 1);
debug(conn->conf, 5, ("sql_connect: state=%d", conn->state));
+ switch (conn->state) {
+ case state_init:
+ break;
+ case state_connected:
+ case state_result:
+ return 0;
+ case state_error:
+ sql_disconnect(conn);
+ if (conn->state != state_init)
+ return 1;
+ break;
+ case state_disabled:
+ return 1;
+ }
assert(conn->conf->backend->sql_connect);
if (conn->conf->backend->sql_connect(conn))
return 1;

Return to:

Send suggestions and report system problems to the System administrator.