mirror of
https://github.com/phpbb/phpbb.git
synced 2025-02-25 12:33:29 +01:00
Merge pull request #3929 from kilianr/ticket/12618
[ticket/12618] Allow extension author to use SSL for version-check.
This commit is contained in:
commit
826d6aac74
@ -535,7 +535,7 @@ class acp_extensions
|
||||
|
||||
$version_helper = new \phpbb\version_helper($this->cache, $this->config, new \phpbb\file_downloader(), $this->user);
|
||||
$version_helper->set_current_version($meta['version']);
|
||||
$version_helper->set_file_location($version_check['host'], $version_check['directory'], $version_check['filename']);
|
||||
$version_helper->set_file_location($version_check['host'], $version_check['directory'], $version_check['filename'], isset($version_check['ssl']) ? $version_check['ssl'] : false);
|
||||
$version_helper->force_stability($this->config['extension_force_unstable'] ? 'unstable' : null);
|
||||
|
||||
return $updates = $version_helper->get_suggested_updates($force_update, $force_cache);
|
||||
|
@ -42,7 +42,7 @@ class file_downloader
|
||||
$this->error_number = 0;
|
||||
$this->error_string = '';
|
||||
|
||||
if ($socket = @fsockopen($host, $port, $this->error_number, $this->error_string, $timeout))
|
||||
if ($socket = @fsockopen(($port == 443 ? 'tls://' : '') . $host, $port, $this->error_number, $this->error_string, $timeout))
|
||||
{
|
||||
@fputs($socket, "GET $directory/$filename HTTP/1.0\r\n");
|
||||
@fputs($socket, "HOST: $host\r\n");
|
||||
|
@ -33,6 +33,11 @@ class version_helper
|
||||
*/
|
||||
protected $file = 'versions.json';
|
||||
|
||||
/**
|
||||
* @var bool Use SSL or not
|
||||
*/
|
||||
protected $use_ssl = false;
|
||||
|
||||
/**
|
||||
* @var string Current version installed
|
||||
*/
|
||||
@ -85,13 +90,15 @@ class version_helper
|
||||
* @param string $host Host (e.g. version.phpbb.com)
|
||||
* @param string $path Path to file (e.g. /phpbb)
|
||||
* @param string $file File name (Default: versions.json)
|
||||
* @param bool $use_ssl Use SSL or not (Default: false)
|
||||
* @return version_helper
|
||||
*/
|
||||
public function set_file_location($host, $path, $file = 'versions.json')
|
||||
public function set_file_location($host, $path, $file = 'versions.json', $use_ssl = false)
|
||||
{
|
||||
$this->host = $host;
|
||||
$this->path = $path;
|
||||
$this->file = $file;
|
||||
$this->use_ssl = $use_ssl;
|
||||
|
||||
return $this;
|
||||
}
|
||||
@ -244,7 +251,7 @@ class version_helper
|
||||
*/
|
||||
public function get_versions($force_update = false, $force_cache = false)
|
||||
{
|
||||
$cache_file = '_versioncheck_' . $this->host . $this->path . $this->file;
|
||||
$cache_file = '_versioncheck_' . $this->host . $this->path . $this->file . $this->use_ssl;
|
||||
|
||||
$info = $this->cache->get($cache_file);
|
||||
|
||||
@ -255,7 +262,7 @@ class version_helper
|
||||
else if ($info === false || $force_update)
|
||||
{
|
||||
try {
|
||||
$info = $this->file_downloader->get($this->host, $this->path, $this->file);
|
||||
$info = $this->file_downloader->get($this->host, $this->path, $this->file, $this->use_ssl ? 443 : 80);
|
||||
}
|
||||
catch (\phpbb\exception\runtime_exception $exception)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user