updated core to 7.66
This commit is contained in:
+22
-7
@@ -611,8 +611,9 @@ function drupal_parse_url($url) {
|
||||
}
|
||||
// The 'q' parameter contains the path of the current page if clean URLs are
|
||||
// disabled. It overrides the 'path' of the URL when present, even if clean
|
||||
// URLs are enabled, due to how Apache rewriting rules work.
|
||||
if (isset($options['query']['q'])) {
|
||||
// URLs are enabled, due to how Apache rewriting rules work. The path
|
||||
// parameter must be a string.
|
||||
if (isset($options['query']['q']) && is_string($options['query']['q'])) {
|
||||
$options['path'] = $options['query']['q'];
|
||||
unset($options['query']['q']);
|
||||
}
|
||||
@@ -866,8 +867,10 @@ function drupal_http_request($url, array $options = array()) {
|
||||
// Make the socket connection to a proxy server.
|
||||
$socket = 'tcp://' . $proxy_server . ':' . variable_get('proxy_port', 8080);
|
||||
// The Host header still needs to match the real request.
|
||||
$options['headers']['Host'] = $uri['host'];
|
||||
$options['headers']['Host'] .= isset($uri['port']) && $uri['port'] != 80 ? ':' . $uri['port'] : '';
|
||||
if (!isset($options['headers']['Host'])) {
|
||||
$options['headers']['Host'] = $uri['host'];
|
||||
$options['headers']['Host'] .= isset($uri['port']) && $uri['port'] != 80 ? ':' . $uri['port'] : '';
|
||||
}
|
||||
break;
|
||||
|
||||
case 'http':
|
||||
@@ -877,14 +880,18 @@ function drupal_http_request($url, array $options = array()) {
|
||||
// RFC 2616: "non-standard ports MUST, default ports MAY be included".
|
||||
// We don't add the standard port to prevent from breaking rewrite rules
|
||||
// checking the host that do not take into account the port number.
|
||||
$options['headers']['Host'] = $uri['host'] . ($port != 80 ? ':' . $port : '');
|
||||
if (!isset($options['headers']['Host'])) {
|
||||
$options['headers']['Host'] = $uri['host'] . ($port != 80 ? ':' . $port : '');
|
||||
}
|
||||
break;
|
||||
|
||||
case 'https':
|
||||
// Note: Only works when PHP is compiled with OpenSSL support.
|
||||
$port = isset($uri['port']) ? $uri['port'] : 443;
|
||||
$socket = 'ssl://' . $uri['host'] . ':' . $port;
|
||||
$options['headers']['Host'] = $uri['host'] . ($port != 443 ? ':' . $port : '');
|
||||
if (!isset($options['headers']['Host'])) {
|
||||
$options['headers']['Host'] = $uri['host'] . ($port != 443 ? ':' . $port : '');
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -1087,6 +1094,11 @@ function drupal_http_request($url, array $options = array()) {
|
||||
elseif ($options['max_redirects']) {
|
||||
// Redirect to the new location.
|
||||
$options['max_redirects']--;
|
||||
|
||||
// We need to unset the 'Host' header
|
||||
// as we are redirecting to a new location.
|
||||
unset($options['headers']['Host']);
|
||||
|
||||
$result = drupal_http_request($location, $options);
|
||||
$result->redirect_code = $code;
|
||||
}
|
||||
@@ -2310,7 +2322,10 @@ function url($path = NULL, array $options = array()) {
|
||||
$language = isset($options['language']) && isset($options['language']->language) ? $options['language']->language : '';
|
||||
$alias = drupal_get_path_alias($original_path, $language);
|
||||
if ($alias != $original_path) {
|
||||
$path = $alias;
|
||||
// Strip leading slashes from internal path aliases to prevent them
|
||||
// becoming external URLs without protocol. /example.com should not be
|
||||
// turned into //example.com.
|
||||
$path = ltrim($alias, '/');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user