// HTTPS support
if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) === 'https') {
$remote_socket = 'ssl://' . $host;
- $url_parts['port'] = 443;
+ if (!isset($url_parts['port'])) {
+ $url_parts['port'] = 443;
+ }
$context_options = array(
'verify_peer' => true,
}
if (isset($options['verifyname']) && $options['verifyname'] === false) {
+ $context_options['verify_peer_name'] = false;
$verifyname = false;
}
if (!isset($case_insensitive_headers['Host'])) {
$out .= sprintf('Host: %s', $url_parts['host']);
- if ($url_parts['port'] !== 80) {
+ if (( 'http' === strtolower($url_parts['scheme']) && $url_parts['port'] !== 80 ) || ( 'https' === strtolower($url_parts['scheme']) && $url_parts['port'] !== 443 )) {
$out .= ':' . $url_parts['port'];
}
$out .= "\r\n";