aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorNathan Guse <nathaniel.guse@gmail.com>2014-03-05 19:07:39 -0600
committerNathan Guse <nathaniel.guse@gmail.com>2014-03-05 19:07:39 -0600
commit8748032866293129b881f9b7f3f0173c1e3a646b (patch)
tree090debb833759376796b060b7c9c29415921f52a /phpBB
parent6a8f110b5a28338ac4e48e75c763ea7435192cc7 (diff)
downloadforums-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.php66
-rw-r--r--phpBB/includes/functions_compatibility.php68
-rw-r--r--phpBB/phpbb/version_helper.php78
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;
- }
}