diff options
author | Nathan Guse <nathaniel.guse@gmail.com> | 2014-03-05 19:07:39 -0600 |
---|---|---|
committer | Nathan Guse <nathaniel.guse@gmail.com> | 2014-03-05 19:07:39 -0600 |
commit | 8748032866293129b881f9b7f3f0173c1e3a646b (patch) | |
tree | 090debb833759376796b060b7c9c29415921f52a /phpBB | |
parent | 6a8f110b5a28338ac4e48e75c763ea7435192cc7 (diff) | |
download | forums-8748032866293129b881f9b7f3f0173c1e3a646b.tar forums-8748032866293129b881f9b7f3f0173c1e3a646b.tar.gz forums-8748032866293129b881f9b7f3f0173c1e3a646b.tar.bz2 forums-8748032866293129b881f9b7f3f0173c1e3a646b.tar.xz forums-8748032866293129b881f9b7f3f0173c1e3a646b.zip |
[ticket/9871] Restore get_remote_file
PHPBB3-9871
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/includes/functions_admin.php | 66 | ||||
-rw-r--r-- | phpBB/includes/functions_compatibility.php | 68 | ||||
-rw-r--r-- | phpBB/phpbb/version_helper.php | 78 |
3 files changed, 73 insertions, 139 deletions
diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php index 7c4f589700..a422d38f67 100644 --- a/phpBB/includes/functions_admin.php +++ b/phpBB/includes/functions_admin.php @@ -2925,6 +2925,72 @@ function get_database_size() } /** + * Retrieve contents from remotely stored file + */ +function get_remote_file($host, $directory, $filename, &$errstr, &$errno, $port = 80, $timeout = 6) +{ + global $user; + + if ($fsock = @fsockopen($host, $port, $errno, $errstr, $timeout)) + { + @fputs($fsock, "GET $directory/$filename HTTP/1.0\r\n"); + @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; + + while (!@feof($fsock)) + { + if ($get_info) + { + $file_info .= @fread($fsock, 1024); + } + else + { + $line = @fgets($fsock, 1024); + if ($line == "\r\n") + { + $get_info = true; + } + else if (stripos($line, '404 not found') !== false) + { + $errstr = $user->lang['FILE_NOT_FOUND'] . ': ' . $filename; + 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); + } + else + { + if ($errstr) + { + $errstr = utf8_convert_message($errstr); + return false; + } + else + { + $errstr = $user->lang['FSOCK_DISABLED']; + return false; + } + } + + return $file_info; +} + +/* * Tidy Warnings * Remove all warnings which have now expired from the database * The duration of a warning can be defined by the administrator diff --git a/phpBB/includes/functions_compatibility.php b/phpBB/includes/functions_compatibility.php index 2bd812efe0..2197815087 100644 --- a/phpBB/includes/functions_compatibility.php +++ b/phpBB/includes/functions_compatibility.php @@ -48,71 +48,3 @@ function get_user_avatar($avatar, $avatar_type, $avatar_width, $avatar_height, $ return phpbb_get_avatar($row, $alt, $ignore_config); } - -/** - * Retrieve contents from remotely stored file - * - * @deprecated 3.1.0-a4 (To be removed: 3.3.0) - */ -function get_remote_file($host, $directory, $filename, &$errstr, &$errno, $port = 80, $timeout = 6) -{ - global $user; - - if ($fsock = @fsockopen($host, $port, $errno, $errstr, $timeout)) - { - @fputs($fsock, "GET $directory/$filename HTTP/1.0\r\n"); - @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; - - while (!@feof($fsock)) - { - if ($get_info) - { - $file_info .= @fread($fsock, 1024); - } - else - { - $line = @fgets($fsock, 1024); - if ($line == "\r\n") - { - $get_info = true; - } - else if (stripos($line, '404 not found') !== false) - { - $errstr = $user->lang['FILE_NOT_FOUND'] . ': ' . $filename; - 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); - } - else - { - if ($errstr) - { - $errstr = utf8_convert_message($errstr); - return false; - } - else - { - $errstr = $user->lang['FSOCK_DISABLED']; - return false; - } - } - - return $file_info; -} diff --git a/phpBB/phpbb/version_helper.php b/phpBB/phpbb/version_helper.php index df577c5dff..f9db731415 100644 --- a/phpBB/phpbb/version_helper.php +++ b/phpBB/phpbb/version_helper.php @@ -151,7 +151,13 @@ class version_helper if ($info === false || $force_update) { - $info = $this->get_remote_file('version.phpbb.com', '/phpbb', 'versions.json'); + $errstr = $errno = ''; + $info = get_remote_file('version.phpbb.com', '/phpbb', 'versions.json', $errstr, $errno); + + if (!empty($errstr)) + { + throw new \RuntimeException($errstr); + } $info = json_decode($info, true); @@ -176,74 +182,4 @@ class version_helper return $info; } - - /** - * Get remote file - * - * @param string $host Host, e.g. version.phpbb.com - * @param string $directory Directory, e.g. /phpbb - * @param string $filename Filename, e.g. versions.json - * @param int $port Port - * @param int $timeout Timeout (seconds) - * @return string Remote file contents - * @throws \RuntimeException - */ - public function get_remote_file($host, $directory, $filename, $port = 80, $timeout = 6) - { - $errstr = $errno = false; - - if ($fsock = @fsockopen($host, $port, $errno, $errstr, $timeout)) - { - @fputs($fsock, "GET $directory/$filename HTTP/1.0\r\n"); - @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; - - while (!@feof($fsock)) - { - if ($get_info) - { - $file_info .= @fread($fsock, 1024); - } - else - { - $line = @fgets($fsock, 1024); - if ($line == "\r\n") - { - $get_info = true; - } - else if (stripos($line, '404 not found') !== false) - { - throw new \RuntimeException($this->user->lang('FILE_NOT_FOUND') . ': ' . $filename); - } - } - - $stream_meta_data = stream_get_meta_data($fsock); - - if (!empty($stream_meta_data['timed_out']) || time() >= $timer_stop) - { - throw new \RuntimeException($this->user->lang('FSOCK_TIMEOUT')); - } - } - @fclose($fsock); - } - else - { - if ($errstr) - { - throw new \RuntimeException(utf8_convert_message($errstr)); - } - else - { - throw new \RuntimeException($this->user->lang('FSOCK_DISABLED')); - } - } - - return $file_info; - } } |