summaryrefslogtreecommitdiff
path: root/sql/sql_parse.cc
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2003-10-29 08:33:31 +0100
committerunknown <serg@serg.mylan>2003-10-29 08:33:31 +0100
commit947536820751c18b423ab2ee08a4ae60dc087c54 (patch)
tree9fa75f9f5276f63953873255a7e856c2b04b0109 /sql/sql_parse.cc
parentf4dc6486e6ddedb054dfb98a62c046e8206e96a8 (diff)
downloadmariadb-git-947536820751c18b423ab2ee08a4ae60dc087c54.tar.gz
followup to max_user_connections fix, keep the count more accurate
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r--sql/sql_parse.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index ebcfc2bdec1..e63e85e99c6 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -303,14 +303,13 @@ static int check_for_max_user_connections(USER_CONN *uc)
{
int error=0;
DBUG_ENTER("check_for_max_user_connections");
-
+
(void) pthread_mutex_lock(&LOCK_user_conn);
if (max_user_connections &&
- max_user_connections <= uc->connections)
+ max_user_connections < uc->connections)
{
net_printf(&(current_thd->net),ER_TOO_MANY_USER_CONNECTIONS, uc->user);
error=1;
- uc->connections--;
goto end;
}
if (uc->user_resources.connections &&
@@ -324,6 +323,8 @@ static int check_for_max_user_connections(USER_CONN *uc)
}
uc->conn_per_hour++;
end:
+ if (error)
+ uc->connections--; // no need for decrease_user_connections() here
(void) pthread_mutex_unlock(&LOCK_user_conn);
DBUG_RETURN(error);
}