+ // the maximum number of possible user connections can be a system variable
+ $r = q("SHOW VARIABLES WHERE `variable_name` = 'max_user_connections'");
+ if ($r)
+ $max = $r[0]["Value"];
+
+ // Or it can be granted. This overrides the system variable
+ $r = q("SHOW GRANTS");
+ if ($r)
+ foreach ($r AS $grants) {
+ $grant = array_pop($grants);
+ if (stristr($grant, "GRANT USAGE ON"))
+ if (preg_match("/WITH MAX_USER_CONNECTIONS (\d*)/", $grant, $match))
+ $max = $match[1];
+ }
+ }
+
+ // If $max is set we will use the processlist to determine the current number of connections
+ // The processlist only shows entries of the current user
+ if ($max != 0) {
+ $r = q("SHOW PROCESSLIST");
+ if (!$r)