aboutsummaryrefslogtreecommitdiff
path: root/src/mysql.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mysql.c')
-rw-r--r--src/mysql.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/mysql.c b/src/mysql.c
index c777ac6..acef21c 100644
--- a/src/mysql.c
+++ b/src/mysql.c
@@ -38,11 +38,11 @@ check_errno(struct dbrw_connection *conn)
case CR_SERVER_LOST:
case ER_SERVER_SHUTDOWN:
case ER_ABORTING_CONNECTION:
+ dbrw_error("query failed: %s", mysql_error(mp->mysql));
sql_disconnect(conn);
if (conn->state == state_error) {
conn->state = state_disabled;
- syslog(LOG_DAEMON|LOG_NOTICE,
- "disabling MySQL connection");
+ dbrw_error("disabling MySQL connection");
}
break;
case ER_UNKNOWN_COM_ERROR:
@@ -58,9 +58,10 @@ check_errno(struct dbrw_connection *conn)
case ER_FIELD_SPECIFIED_TWICE:
case ER_NO_SUCH_TABLE:
case ER_NOT_ALLOWED_COMMAND:
+ dbrw_error("query failed: %s", mysql_error(mp->mysql));
+ dbrw_error("disabling MySQL connection");
sql_disconnect(conn);
conn->state = state_disabled;
- syslog(LOG_DAEMON|LOG_NOTICE, "disabling MySQL connection");
}
}
@@ -173,12 +174,17 @@ s_mysql_query(struct dbrw_connection *conn, const char *query)
return -1;
continue;
}
- if (!(mp->result = mysql_store_result(mp->mysql))) {
+ mp->result = mysql_store_result(mp->mysql);
+ if (mp->result) {
+ conn->state = state_result;
+ rc = 0;
+ } else if (mysql_field_count(mp->mysql)) {
dbrw_error("cannot store result: %s",
- mysql_error (mp->mysql));
+ mysql_error(mp->mysql));
conn->state = state_error;
rc = 1;
- }
+ } else
+ rc = 0;
break;
}
return rc;

Return to:

Send suggestions and report system problems to the System administrator.