aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/session.php27
1 files changed, 8 insertions, 19 deletions
diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php
index 6d6a32ce15..c621d3d807 100644
--- a/phpBB/includes/session.php
+++ b/phpBB/includes/session.php
@@ -138,28 +138,17 @@ class session {
$current_time = time();
//
- // Limit connections (for MySQL) or 5 minute sessions (for other DB's)
+ // Limit sessions in 1 minute period
//
- switch ( SQL_LAYER )
- {
- case 'mysql':
- case 'mysql4':
- $sql = "SHOW PROCESSLIST";
- $result = $db->sql_query($sql);
- $current_sessions = 0;
- while ( $db->sql_fetchrow($result) ) $current_sessions++;
- break;
- default:
- $sql = "SELECT COUNT(*) AS sessions
- FROM " . SESSIONS_TABLE . "
- WHERE session_time >= " . ( $current_time - 3600 );
- $result = $db->sql_query($sql);
- $row = $db->sql_fetchrow[$result];
- $current_sessions = ( isset($row['sessions']) ) ? $row['sessions'] : 0;
- }
+ $sql = "SELECT COUNT(*) AS sessions
+ FROM " . SESSIONS_TABLE . "
+ WHERE session_time >= " . ( $current_time - 60 );
+ $result = $db->sql_query($sql);
+
+ $row = $db->sql_fetchrow[$result];
$db->sql_freeresult($result);
- if ( intval($board_config['active_sessions']) && $current_sessions > intval($board_config['active_sessions']) )
+ if ( intval($board_config['active_sessions']) && intval($row['sessions']) > intval($board_config['active_sessions']) )
{
message_die(MESSAGE, 'Board_unavailable');
}