diff options
| author | Nils Adermann <naderman@naderman.de> | 2011-10-14 02:49:15 +0200 |
|---|---|---|
| committer | Nils Adermann <naderman@naderman.de> | 2011-10-14 02:49:15 +0200 |
| commit | c5ee92c3f2de26396b0212103eabce46afba53b7 (patch) | |
| tree | a4adbfd0ffb1977e725ccae0eaa6a9640903a6a6 | |
| parent | 52b2ee5a0619ba03ffa267850c6a1d55ad276042 (diff) | |
| parent | dda1e13126ae81aff19114e168f134a6077ed549 (diff) | |
| download | forums-c5ee92c3f2de26396b0212103eabce46afba53b7.tar forums-c5ee92c3f2de26396b0212103eabce46afba53b7.tar.gz forums-c5ee92c3f2de26396b0212103eabce46afba53b7.tar.bz2 forums-c5ee92c3f2de26396b0212103eabce46afba53b7.tar.xz forums-c5ee92c3f2de26396b0212103eabce46afba53b7.zip | |
Merge branch 'develop-olympus' into develop
* develop-olympus:
[ticket/10278] Show VERSIONCHECK_FAIL instead of FSOCK_TIMEOUT.
[ticket/10278] Also timeout when receiving data over a slow connection.
[ticket/10278] Decrease default timeout of get_remote_file() to 6 seconds.
[ticket/10278] Return with a timeout error when fread() or fgets() time out.
[ticket/10278] Also set timeout on stream in get_remote_file().
| -rw-r--r-- | phpBB/includes/acp/acp_update.php | 2 | ||||
| -rw-r--r-- | phpBB/includes/functions_admin.php | 13 | ||||
| -rw-r--r-- | phpBB/language/en/common.php | 1 |
3 files changed, 14 insertions, 2 deletions
diff --git a/phpBB/includes/acp/acp_update.php b/phpBB/includes/acp/acp_update.php index f0365e8e66..ee4e49249d 100644 --- a/phpBB/includes/acp/acp_update.php +++ b/phpBB/includes/acp/acp_update.php @@ -37,7 +37,7 @@ class acp_update $errstr = ''; $errno = 0; - $info = obtain_latest_version_info(request_var('versioncheck_force', false), true); + $info = obtain_latest_version_info(request_var('versioncheck_force', false)); if ($info === false) { diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php index 71f8ab572e..3f9e517fdf 100644 --- a/phpBB/includes/functions_admin.php +++ b/phpBB/includes/functions_admin.php @@ -3111,7 +3111,7 @@ function get_database_size() /** * Retrieve contents from remotely stored file */ -function get_remote_file($host, $directory, $filename, &$errstr, &$errno, $port = 80, $timeout = 10) +function get_remote_file($host, $directory, $filename, &$errstr, &$errno, $port = 80, $timeout = 6) { global $user; @@ -3121,6 +3121,9 @@ function get_remote_file($host, $directory, $filename, &$errstr, &$errno, $port @fputs($fsock, "HOST: $host\r\n"); @fputs($fsock, "Connection: close\r\n\r\n"); + $timer_stop = time() + $timeout; + stream_set_timeout($fsock, $timeout); + $file_info = ''; $get_info = false; @@ -3143,6 +3146,14 @@ function get_remote_file($host, $directory, $filename, &$errstr, &$errno, $port return false; } } + + $stream_meta_data = stream_get_meta_data($fsock); + + if (!empty($stream_meta_data['timed_out']) || time() >= $timer_stop) + { + $errstr = $user->lang['FSOCK_TIMEOUT']; + return false; + } } @fclose($fsock); } diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php index e04a194839..c79197d07a 100644 --- a/phpBB/language/en/common.php +++ b/phpBB/language/en/common.php @@ -200,6 +200,7 @@ $lang = array_merge($lang, array( 'FORUM_RULES_LINK' => 'Please click here to view the forum rules', 'FROM' => 'from', 'FSOCK_DISABLED' => 'The operation could not be completed because the <var>fsockopen</var> function has been disabled or the server being queried could not be found.', + 'FSOCK_TIMEOUT' => 'A timeout occurred while reading from the network stream.', 'FTP_FSOCK_HOST' => 'FTP host', 'FTP_FSOCK_HOST_EXPLAIN' => 'FTP server used to connect your site.', |
