aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_admin.php
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2011-10-14 02:49:15 +0200
committerNils Adermann <naderman@naderman.de>2011-10-14 02:49:15 +0200
commitc5ee92c3f2de26396b0212103eabce46afba53b7 (patch)
treea4adbfd0ffb1977e725ccae0eaa6a9640903a6a6 /phpBB/includes/functions_admin.php
parent52b2ee5a0619ba03ffa267850c6a1d55ad276042 (diff)
parentdda1e13126ae81aff19114e168f134a6077ed549 (diff)
downloadforums-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().
Diffstat (limited to 'phpBB/includes/functions_admin.php')
-rw-r--r--phpBB/includes/functions_admin.php13
1 files changed, 12 insertions, 1 deletions
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);
}