<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[50842] trunk/src/wp-includes: External Libraries: Update the Requests library to version `1.8.0`.</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/50842">50842</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/50842","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>desrosj</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2021-05-11 19:40:41 +0000 (Tue, 11 May 2021)</dd>
</dl>
<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>External Libraries: Update the Requests library to version `1.8.0`.
While some of the changes in the `1.8.0` release have already been copied to WordPress Core in earlier releases (see <a href="https://core.trac.wordpress.org/changeset/38727">[38727]</a>, <a href="https://core.trac.wordpress.org/changeset/46258">[46258]</a>, <a href="https://core.trac.wordpress.org/changeset/47902">[47902]</a> and <a href="https://core.trac.wordpress.org/changeset/49382">[49382]</a>), this release contains additional improvements, including:
- A significant performance fix when using cURL.
- Improved compliance with RFC2616.
The library has also been moved under the WordPress project's GitHub organization and can now be found at https://github.com/WordPress/Requests.
Props jrf, dd32, rmccue, justinahinon, netweb, schlessera, TimothyBJacobs, soulseekah, ozh, skithund, carlalexander, travisnorthcutt, desrosj.
Fixes <a href="https://core.trac.wordpress.org/ticket/53101">#53101</a>.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpincludesRequestsAuthBasicphp">trunk/src/wp-includes/Requests/Auth/Basic.php</a></li>
<li><a href="#trunksrcwpincludesRequestsAuthphp">trunk/src/wp-includes/Requests/Auth.php</a></li>
<li><a href="#trunksrcwpincludesRequestsCookieJarphp">trunk/src/wp-includes/Requests/Cookie/Jar.php</a></li>
<li><a href="#trunksrcwpincludesRequestsCookiephp">trunk/src/wp-includes/Requests/Cookie.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP304php">trunk/src/wp-includes/Requests/Exception/HTTP/304.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP400php">trunk/src/wp-includes/Requests/Exception/HTTP/400.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP401php">trunk/src/wp-includes/Requests/Exception/HTTP/401.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP402php">trunk/src/wp-includes/Requests/Exception/HTTP/402.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP403php">trunk/src/wp-includes/Requests/Exception/HTTP/403.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP404php">trunk/src/wp-includes/Requests/Exception/HTTP/404.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP405php">trunk/src/wp-includes/Requests/Exception/HTTP/405.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP406php">trunk/src/wp-includes/Requests/Exception/HTTP/406.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP407php">trunk/src/wp-includes/Requests/Exception/HTTP/407.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP408php">trunk/src/wp-includes/Requests/Exception/HTTP/408.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP409php">trunk/src/wp-includes/Requests/Exception/HTTP/409.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP410php">trunk/src/wp-includes/Requests/Exception/HTTP/410.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP411php">trunk/src/wp-includes/Requests/Exception/HTTP/411.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP412php">trunk/src/wp-includes/Requests/Exception/HTTP/412.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP413php">trunk/src/wp-includes/Requests/Exception/HTTP/413.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP414php">trunk/src/wp-includes/Requests/Exception/HTTP/414.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP415php">trunk/src/wp-includes/Requests/Exception/HTTP/415.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP416php">trunk/src/wp-includes/Requests/Exception/HTTP/416.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP417php">trunk/src/wp-includes/Requests/Exception/HTTP/417.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP418php">trunk/src/wp-includes/Requests/Exception/HTTP/418.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP428php">trunk/src/wp-includes/Requests/Exception/HTTP/428.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP429php">trunk/src/wp-includes/Requests/Exception/HTTP/429.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP431php">trunk/src/wp-includes/Requests/Exception/HTTP/431.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP500php">trunk/src/wp-includes/Requests/Exception/HTTP/500.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP501php">trunk/src/wp-includes/Requests/Exception/HTTP/501.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP502php">trunk/src/wp-includes/Requests/Exception/HTTP/502.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP503php">trunk/src/wp-includes/Requests/Exception/HTTP/503.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP504php">trunk/src/wp-includes/Requests/Exception/HTTP/504.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP505php">trunk/src/wp-includes/Requests/Exception/HTTP/505.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTP511php">trunk/src/wp-includes/Requests/Exception/HTTP/511.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTPUnknownphp">trunk/src/wp-includes/Requests/Exception/HTTP/Unknown.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionHTTPphp">trunk/src/wp-includes/Requests/Exception/HTTP.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionTransportcURLphp">trunk/src/wp-includes/Requests/Exception/Transport/cURL.php</a></li>
<li><a href="#trunksrcwpincludesRequestsExceptionphp">trunk/src/wp-includes/Requests/Exception.php</a></li>
<li><a href="#trunksrcwpincludesRequestsHookerphp">trunk/src/wp-includes/Requests/Hooker.php</a></li>
<li><a href="#trunksrcwpincludesRequestsHooksphp">trunk/src/wp-includes/Requests/Hooks.php</a></li>
<li><a href="#trunksrcwpincludesRequestsIDNAEncoderphp">trunk/src/wp-includes/Requests/IDNAEncoder.php</a></li>
<li><a href="#trunksrcwpincludesRequestsIPv6php">trunk/src/wp-includes/Requests/IPv6.php</a></li>
<li><a href="#trunksrcwpincludesRequestsIRIphp">trunk/src/wp-includes/Requests/IRI.php</a></li>
<li><a href="#trunksrcwpincludesRequestsProxyHTTPphp">trunk/src/wp-includes/Requests/Proxy/HTTP.php</a></li>
<li><a href="#trunksrcwpincludesRequestsProxyphp">trunk/src/wp-includes/Requests/Proxy.php</a></li>
<li><a href="#trunksrcwpincludesRequestsResponseHeadersphp">trunk/src/wp-includes/Requests/Response/Headers.php</a></li>
<li><a href="#trunksrcwpincludesRequestsResponsephp">trunk/src/wp-includes/Requests/Response.php</a></li>
<li><a href="#trunksrcwpincludesRequestsSSLphp">trunk/src/wp-includes/Requests/SSL.php</a></li>
<li><a href="#trunksrcwpincludesRequestsSessionphp">trunk/src/wp-includes/Requests/Session.php</a></li>
<li><a href="#trunksrcwpincludesRequestsTransportcURLphp">trunk/src/wp-includes/Requests/Transport/cURL.php</a></li>
<li><a href="#trunksrcwpincludesRequestsTransportfsockopenphp">trunk/src/wp-includes/Requests/Transport/fsockopen.php</a></li>
<li><a href="#trunksrcwpincludesRequestsTransportphp">trunk/src/wp-includes/Requests/Transport.php</a></li>
<li><a href="#trunksrcwpincludesRequestsUtilityCaseInsensitiveDictionaryphp">trunk/src/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php</a></li>
<li><a href="#trunksrcwpincludesRequestsUtilityFilteredIteratorphp">trunk/src/wp-includes/Requests/Utility/FilteredIterator.php</a></li>
<li><a href="#trunksrcwpincludesclassrequestsphp">trunk/src/wp-includes/class-requests.php</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpincludesRequestsAuthBasicphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Auth/Basic.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Auth/Basic.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Auth/Basic.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -53,9 +53,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @see fsockopen_header
</span><span class="cx" style="display: block; padding: 0 10px"> * @param Requests_Hooks $hooks Hook system
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function register(Requests_Hooks &$hooks) {
- $hooks->register('curl.before_send', array(&$this, 'curl_before_send'));
- $hooks->register('fsockopen.after_headers', array(&$this, 'fsockopen_header'));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function register(Requests_Hooks $hooks) {
+ $hooks->register('curl.before_send', array($this, 'curl_before_send'));
+ $hooks->register('fsockopen.after_headers', array($this, 'fsockopen_header'));
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -85,4 +85,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> public function getAuthString() {
</span><span class="cx" style="display: block; padding: 0 10px"> return $this->user . ':' . $this->pass;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsAuthphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Auth.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Auth.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Auth.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -29,5 +29,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @see Requests_Hooks::register
</span><span class="cx" style="display: block; padding: 0 10px"> * @param Requests_Hooks $hooks Hook system
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function register(Requests_Hooks &$hooks);
-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function register(Requests_Hooks $hooks);
+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsCookieJarphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Cookie/Jar.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Cookie/Jar.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Cookie/Jar.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -68,7 +68,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * Get the value for the item
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @param string $key Item key
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return string Item value
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return string|null Item value (null if offsetExists is false)
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function offsetGet($key) {
</span><span class="cx" style="display: block; padding: 0 10px"> if (!isset($this->cookies[$key])) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -162,14 +162,14 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @var Requests_Response $response
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function before_redirect_check(Requests_Response &$return) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function before_redirect_check(Requests_Response $return) {
</ins><span class="cx" style="display: block; padding: 0 10px"> $url = $return->url;
</span><span class="cx" style="display: block; padding: 0 10px"> if (!$url instanceof Requests_IRI) {
</span><span class="cx" style="display: block; padding: 0 10px"> $url = new Requests_IRI($url);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $cookies = Requests_Cookie::parse_from_headers($return->headers, $url);
- $this->cookies = array_merge($this->cookies, $cookies);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $cookies = Requests_Cookie::parse_from_headers($return->headers, $url);
+ $this->cookies = array_merge($this->cookies, $cookies);
</ins><span class="cx" style="display: block; padding: 0 10px"> $return->cookies = $this;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsCookiephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Cookie.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Cookie.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Cookie.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -65,16 +65,16 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @param array|Requests_Utility_CaseInsensitiveDictionary $attributes Associative array of attribute data
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function __construct($name, $value, $attributes = array(), $flags = array(), $reference_time = null) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->name = $name;
- $this->value = $value;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->name = $name;
+ $this->value = $value;
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->attributes = $attributes;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $default_flags = array(
- 'creation' => time(),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $default_flags = array(
+ 'creation' => time(),
</ins><span class="cx" style="display: block; padding: 0 10px"> 'last-access' => time(),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- 'persistent' => false,
- 'host-only' => true,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ 'persistent' => false,
+ 'host-only' => true,
</ins><span class="cx" style="display: block; padding: 0 10px"> );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->flags = array_merge($default_flags, $flags);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->flags = array_merge($default_flags, $flags);
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $this->reference_time = time();
</span><span class="cx" style="display: block; padding: 0 10px"> if ($reference_time !== null) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -228,7 +228,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> public function normalize() {
</span><span class="cx" style="display: block; padding: 0 10px"> foreach ($this->attributes as $key => $value) {
</span><span class="cx" style="display: block; padding: 0 10px"> $orig_value = $value;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $value = $this->normalize_attribute($key, $value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $value = $this->normalize_attribute($key, $value);
</ins><span class="cx" style="display: block; padding: 0 10px"> if ($value === null) {
</span><span class="cx" style="display: block; padding: 0 10px"> unset($this->attributes[$key]);
</span><span class="cx" style="display: block; padding: 0 10px"> continue;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -385,7 +385,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @return Requests_Cookie Parsed cookie object
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public static function parse($string, $name = '', $reference_time = null) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $parts = explode(';', $string);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $parts = explode(';', $string);
</ins><span class="cx" style="display: block; padding: 0 10px"> $kvparts = array_shift($parts);
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if (!empty($name)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -397,13 +397,13 @@
</span><span class="cx" style="display: block; padding: 0 10px"> // (`=foo`)
</span><span class="cx" style="display: block; padding: 0 10px"> //
</span><span class="cx" style="display: block; padding: 0 10px"> // https://bugzilla.mozilla.org/show_bug.cgi?id=169091
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $name = '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $name = '';
</ins><span class="cx" style="display: block; padding: 0 10px"> $value = $kvparts;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> else {
</span><span class="cx" style="display: block; padding: 0 10px"> list($name, $value) = explode('=', $kvparts, 2);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $name = trim($name);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $name = trim($name);
</ins><span class="cx" style="display: block; padding: 0 10px"> $value = trim($value);
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // Attribute key are handled case-insensitively
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -412,15 +412,15 @@
</span><span class="cx" style="display: block; padding: 0 10px"> if (!empty($parts)) {
</span><span class="cx" style="display: block; padding: 0 10px"> foreach ($parts as $part) {
</span><span class="cx" style="display: block; padding: 0 10px"> if (strpos($part, '=') === false) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $part_key = $part;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $part_key = $part;
</ins><span class="cx" style="display: block; padding: 0 10px"> $part_value = true;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> else {
</span><span class="cx" style="display: block; padding: 0 10px"> list($part_key, $part_value) = explode('=', $part, 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $part_value = trim($part_value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $part_value = trim($part_value);
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $part_key = trim($part_key);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $part_key = trim($part_key);
</ins><span class="cx" style="display: block; padding: 0 10px"> $attributes[$part_key] = $part_value;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -449,7 +449,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> // Default domain/path attributes
</span><span class="cx" style="display: block; padding: 0 10px"> if (empty($parsed->attributes['domain']) && !empty($origin)) {
</span><span class="cx" style="display: block; padding: 0 10px"> $parsed->attributes['domain'] = $origin->host;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $parsed->flags['host-only'] = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $parsed->flags['host-only'] = true;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> else {
</span><span class="cx" style="display: block; padding: 0 10px"> $parsed->flags['host-only'] = false;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -497,7 +497,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @codeCoverageIgnore
</span><span class="cx" style="display: block; padding: 0 10px"> * @deprecated Use {@see Requests_Cookie::parse_from_headers}
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return string
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return array
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public static function parseFromHeaders(Requests_Response_Headers $headers) {
</span><span class="cx" style="display: block; padding: 0 10px"> return self::parse_from_headers($headers);
</span></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP304php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/304.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/304.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/304.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Not Modified';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP400php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/400.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/400.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/400.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Bad Request';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP401php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/401.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/401.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/401.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Unauthorized';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP402php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/402.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/402.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/402.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Payment Required';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP403php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/403.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/403.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/403.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Forbidden';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP404php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/404.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/404.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/404.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Not Found';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP405php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/405.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/405.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/405.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Method Not Allowed';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP406php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/406.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/406.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/406.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Not Acceptable';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP407php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/407.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/407.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/407.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Proxy Authentication Required';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP408php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/408.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/408.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/408.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Request Timeout';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP409php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/409.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/409.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/409.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Conflict';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP410php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/410.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/410.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/410.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Gone';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP411php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/411.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/411.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/411.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Length Required';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP412php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/412.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/412.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/412.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Precondition Failed';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP413php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/413.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/413.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/413.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Request Entity Too Large';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP414php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/414.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/414.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/414.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Request-URI Too Large';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP415php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/415.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/415.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/415.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Unsupported Media Type';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP416php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/416.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/416.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/416.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Requested Range Not Satisfiable';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP417php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/417.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/417.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/417.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Expectation Failed';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP418php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/418.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/418.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/418.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26,4 +26,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = "I'm A Teapot";
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP428php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/428.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/428.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/428.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26,4 +26,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Precondition Required';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP429php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/429.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/429.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/429.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26,4 +26,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Too Many Requests';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP431php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/431.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/431.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/431.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26,4 +26,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Request Header Fields Too Large';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP500php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/500.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/500.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/500.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Internal Server Error';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP501php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/501.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/501.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/501.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Not Implemented';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP502php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/502.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/502.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/502.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Bad Gateway';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP503php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/503.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/503.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/503.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Service Unavailable';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP504php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/504.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/504.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/504.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Gateway Timeout';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP505php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/505.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/505.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/505.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -24,4 +24,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'HTTP Version Not Supported';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTP511php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/511.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/511.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/511.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26,4 +26,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $reason = 'Network Authentication Required';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTPUnknownphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP/Unknown.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP/Unknown.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP/Unknown.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -41,4 +41,4 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> parent::__construct($reason, $data);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionHTTPphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/HTTP.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/HTTP.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/HTTP.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -68,4 +68,4 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return 'Requests_Exception_HTTP_Unknown';
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionTransportcURLphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception/Transport/cURL.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception/Transport/cURL.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception/Transport/cURL.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2,7 +2,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> class Requests_Exception_Transport_cURL extends Requests_Exception_Transport {
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- const EASY = 'cURLEasy';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ const EASY = 'cURLEasy';
</ins><span class="cx" style="display: block; padding: 0 10px"> const MULTI = 'cURLMulti';
</span><span class="cx" style="display: block; padding: 0 10px"> const SHARE = 'cURLShare';
</span><span class="cx" style="display: block; padding: 0 10px">
</span></span></pre></div>
<a id="trunksrcwpincludesRequestsExceptionphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Exception.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Exception.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Exception.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -59,4 +59,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> public function getData() {
</span><span class="cx" style="display: block; padding: 0 10px"> return $this->data;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsHookerphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Hooker.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Hooker.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Hooker.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -30,4 +30,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @return boolean Successfulness
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function dispatch($hook, $parameters = array());
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsHooksphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Hooks.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Hooks.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Hooks.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -65,4 +65,4 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return true;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsIDNAEncoderphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/IDNAEncoder.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/IDNAEncoder.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/IDNAEncoder.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -141,6 +141,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> // Get number of bytes
</span><span class="cx" style="display: block; padding: 0 10px"> $strlen = strlen($input);
</span><span class="cx" style="display: block; padding: 0 10px">
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // phpcs:ignore Generic.CodeAnalysis.JumbledIncrementer -- This is a deliberate choice.
</ins><span class="cx" style="display: block; padding: 0 10px"> for ($position = 0; $position < $strlen; $position++) {
</span><span class="cx" style="display: block; padding: 0 10px"> $value = ord($input[$position]);
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -147,25 +148,25 @@
</span><span class="cx" style="display: block; padding: 0 10px"> // One byte sequence:
</span><span class="cx" style="display: block; padding: 0 10px"> if ((~$value & 0x80) === 0x80) {
</span><span class="cx" style="display: block; padding: 0 10px"> $character = $value;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $length = 1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $length = 1;
</ins><span class="cx" style="display: block; padding: 0 10px"> $remaining = 0;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> // Two byte sequence:
</span><span class="cx" style="display: block; padding: 0 10px"> elseif (($value & 0xE0) === 0xC0) {
</span><span class="cx" style="display: block; padding: 0 10px"> $character = ($value & 0x1F) << 6;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $length = 2;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $length = 2;
</ins><span class="cx" style="display: block; padding: 0 10px"> $remaining = 1;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> // Three byte sequence:
</span><span class="cx" style="display: block; padding: 0 10px"> elseif (($value & 0xF0) === 0xE0) {
</span><span class="cx" style="display: block; padding: 0 10px"> $character = ($value & 0x0F) << 12;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $length = 3;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $length = 3;
</ins><span class="cx" style="display: block; padding: 0 10px"> $remaining = 2;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> // Four byte sequence:
</span><span class="cx" style="display: block; padding: 0 10px"> elseif (($value & 0xF8) === 0xF0) {
</span><span class="cx" style="display: block; padding: 0 10px"> $character = ($value & 0x07) << 18;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $length = 4;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $length = 4;
</ins><span class="cx" style="display: block; padding: 0 10px"> $remaining = 3;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> // Invalid byte:
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -185,14 +186,14 @@
</span><span class="cx" style="display: block; padding: 0 10px"> throw new Requests_Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $character);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $character |= ($value & 0x3F) << (--$remaining * 6);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ --$remaining;
+ $character |= ($value & 0x3F) << ($remaining * 6);
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> $position--;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if (
- // Non-shortest form sequences are invalid
- $length > 1 && $character <= 0x7F
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if (// Non-shortest form sequences are invalid
+ $length > 1 && $character <= 0x7F
</ins><span class="cx" style="display: block; padding: 0 10px"> || $length > 2 && $character <= 0x7FF
</span><span class="cx" style="display: block; padding: 0 10px"> || $length > 3 && $character <= 0xFFFF
</span><span class="cx" style="display: block; padding: 0 10px"> // Outside of range of ucschar codepoints
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -201,7 +202,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> || $character >= 0xFDD0 && $character <= 0xFDEF
</span><span class="cx" style="display: block; padding: 0 10px"> || (
</span><span class="cx" style="display: block; padding: 0 10px"> // Everything else not in ucschar
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $character > 0xD7FF && $character < 0xF900
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $character > 0xD7FF && $character < 0xF900
</ins><span class="cx" style="display: block; padding: 0 10px"> || $character < 0x20
</span><span class="cx" style="display: block; padding: 0 10px"> || $character > 0x7E && $character < 0xA0
</span><span class="cx" style="display: block; padding: 0 10px"> || $character > 0xEFFFD
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -227,17 +228,18 @@
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public static function punycode_encode($input) {
</span><span class="cx" style="display: block; padding: 0 10px"> $output = '';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let n = initial_n
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let n = initial_n
</ins><span class="cx" style="display: block; padding: 0 10px"> $n = self::BOOTSTRAP_INITIAL_N;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let delta = 0
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let delta = 0
</ins><span class="cx" style="display: block; padding: 0 10px"> $delta = 0;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let bias = initial_bias
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let bias = initial_bias
</ins><span class="cx" style="display: block; padding: 0 10px"> $bias = self::BOOTSTRAP_INITIAL_BIAS;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let h = b = the number of basic code points in the input
- $h = $b = 0; // see loop
-# copy them to the output in order
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let h = b = the number of basic code points in the input
+ $h = 0;
+ $b = 0; // see loop
+ // copy them to the output in order
</ins><span class="cx" style="display: block; padding: 0 10px"> $codepoints = self::utf8_to_codepoints($input);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $extended = array();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $extended = array();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> foreach ($codepoints as $char) {
</span><span class="cx" style="display: block; padding: 0 10px"> if ($char < 128) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -260,35 +262,36 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $extended = array_keys($extended);
</span><span class="cx" style="display: block; padding: 0 10px"> sort($extended);
</span><span class="cx" style="display: block; padding: 0 10px"> $b = $h;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# [copy them] followed by a delimiter if b > 0
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // [copy them] followed by a delimiter if b > 0
</ins><span class="cx" style="display: block; padding: 0 10px"> if (strlen($output) > 0) {
</span><span class="cx" style="display: block; padding: 0 10px"> $output .= '-';
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# {if the input contains a non-basic code point < n then fail}
-# while h < length(input) do begin
- while ($h < count($codepoints)) {
-# let m = the minimum code point >= n in the input
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // {if the input contains a non-basic code point < n then fail}
+ // while h < length(input) do begin
+ $codepointcount = count($codepoints);
+ while ($h < $codepointcount) {
+ // let m = the minimum code point >= n in the input
</ins><span class="cx" style="display: block; padding: 0 10px"> $m = array_shift($extended);
</span><span class="cx" style="display: block; padding: 0 10px"> //printf('next code point to insert is %s' . PHP_EOL, dechex($m));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let delta = delta + (m - n) * (h + 1), fail on overflow
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let delta = delta + (m - n) * (h + 1), fail on overflow
</ins><span class="cx" style="display: block; padding: 0 10px"> $delta += ($m - $n) * ($h + 1);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let n = m
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let n = m
</ins><span class="cx" style="display: block; padding: 0 10px"> $n = $m;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# for each code point c in the input (in order) do begin
- for ($num = 0; $num < count($codepoints); $num++) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // for each code point c in the input (in order) do begin
+ for ($num = 0; $num < $codepointcount; $num++) {
</ins><span class="cx" style="display: block; padding: 0 10px"> $c = $codepoints[$num];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# if c < n then increment delta, fail on overflow
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // if c < n then increment delta, fail on overflow
</ins><span class="cx" style="display: block; padding: 0 10px"> if ($c < $n) {
</span><span class="cx" style="display: block; padding: 0 10px"> $delta++;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# if c == n then begin
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // if c == n then begin
</ins><span class="cx" style="display: block; padding: 0 10px"> elseif ($c === $n) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let q = delta
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let q = delta
</ins><span class="cx" style="display: block; padding: 0 10px"> $q = $delta;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# for k = base to infinity in steps of base do begin
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // for k = base to infinity in steps of base do begin
</ins><span class="cx" style="display: block; padding: 0 10px"> for ($k = self::BOOTSTRAP_BASE; ; $k += self::BOOTSTRAP_BASE) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let t = tmin if k <= bias {+ tmin}, or
-# tmax if k >= bias + tmax, or k - bias otherwise
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let t = tmin if k <= bias {+ tmin}, or
+ // tmax if k >= bias + tmax, or k - bias otherwise
</ins><span class="cx" style="display: block; padding: 0 10px"> if ($k <= ($bias + self::BOOTSTRAP_TMIN)) {
</span><span class="cx" style="display: block; padding: 0 10px"> $t = self::BOOTSTRAP_TMIN;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -298,34 +301,30 @@
</span><span class="cx" style="display: block; padding: 0 10px"> else {
</span><span class="cx" style="display: block; padding: 0 10px"> $t = $k - $bias;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# if q < t then break
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // if q < t then break
</ins><span class="cx" style="display: block; padding: 0 10px"> if ($q < $t) {
</span><span class="cx" style="display: block; padding: 0 10px"> break;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# output the code point for digit t + ((q - t) mod (base - t))
- $digit = $t + (($q - $t) % (self::BOOTSTRAP_BASE - $t));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // output the code point for digit t + ((q - t) mod (base - t))
+ $digit = $t + (($q - $t) % (self::BOOTSTRAP_BASE - $t));
</ins><span class="cx" style="display: block; padding: 0 10px"> $output .= self::digit_to_char($digit);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let q = (q - t) div (base - t)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let q = (q - t) div (base - t)
</ins><span class="cx" style="display: block; padding: 0 10px"> $q = floor(($q - $t) / (self::BOOTSTRAP_BASE - $t));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# end
- }
-# output the code point for digit q
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ } // end
+ // output the code point for digit q
</ins><span class="cx" style="display: block; padding: 0 10px"> $output .= self::digit_to_char($q);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let bias = adapt(delta, h + 1, test h equals b?)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let bias = adapt(delta, h + 1, test h equals b?)
</ins><span class="cx" style="display: block; padding: 0 10px"> $bias = self::adapt($delta, $h + 1, $h === $b);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let delta = 0
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let delta = 0
</ins><span class="cx" style="display: block; padding: 0 10px"> $delta = 0;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# increment h
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // increment h
</ins><span class="cx" style="display: block; padding: 0 10px"> $h++;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# end
- }
-# end
- }
-# increment delta and n
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ } // end
+ } // end
+ // increment delta and n
</ins><span class="cx" style="display: block; padding: 0 10px"> $delta++;
</span><span class="cx" style="display: block; padding: 0 10px"> $n++;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# end
- }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ } // end
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return $output;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -358,31 +357,31 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @param int $numpoints
</span><span class="cx" style="display: block; padding: 0 10px"> * @param bool $firsttime
</span><span class="cx" style="display: block; padding: 0 10px"> * @return int New bias
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ *
+ * function adapt(delta,numpoints,firsttime):
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected static function adapt($delta, $numpoints, $firsttime) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# function adapt(delta,numpoints,firsttime):
-# if firsttime then let delta = delta div damp
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // if firsttime then let delta = delta div damp
</ins><span class="cx" style="display: block; padding: 0 10px"> if ($firsttime) {
</span><span class="cx" style="display: block; padding: 0 10px"> $delta = floor($delta / self::BOOTSTRAP_DAMP);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# else let delta = delta div 2
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // else let delta = delta div 2
</ins><span class="cx" style="display: block; padding: 0 10px"> else {
</span><span class="cx" style="display: block; padding: 0 10px"> $delta = floor($delta / 2);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let delta = delta + (delta div numpoints)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let delta = delta + (delta div numpoints)
</ins><span class="cx" style="display: block; padding: 0 10px"> $delta += floor($delta / $numpoints);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let k = 0
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let k = 0
</ins><span class="cx" style="display: block; padding: 0 10px"> $k = 0;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# while delta > ((base - tmin) * tmax) div 2 do begin
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // while delta > ((base - tmin) * tmax) div 2 do begin
</ins><span class="cx" style="display: block; padding: 0 10px"> $max = floor(((self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN) * self::BOOTSTRAP_TMAX) / 2);
</span><span class="cx" style="display: block; padding: 0 10px"> while ($delta > $max) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let delta = delta div (base - tmin)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let delta = delta div (base - tmin)
</ins><span class="cx" style="display: block; padding: 0 10px"> $delta = floor($delta / (self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN));
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# let k = k + base
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // let k = k + base
</ins><span class="cx" style="display: block; padding: 0 10px"> $k += self::BOOTSTRAP_BASE;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-# end
- }
-# return k + (((base - tmin + 1) * delta) div (delta + skew))
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ } // end
+ // return k + (((base - tmin + 1) * delta) div (delta + skew))
</ins><span class="cx" style="display: block; padding: 0 10px"> return $k + floor(((self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN + 1) * $delta) / ($delta + self::BOOTSTRAP_SKEW));
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsIPv6php"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/IPv6.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/IPv6.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/IPv6.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -40,8 +40,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> list($ip1, $ip2) = explode('::', $ip);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $c1 = ($ip1 === '') ? -1 : substr_count($ip1, ':');
- $c2 = ($ip2 === '') ? -1 : substr_count($ip2, ':');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $c1 = ($ip1 === '') ? -1 : substr_count($ip1, ':');
+ $c2 = ($ip2 === '') ? -1 : substr_count($ip2, ':');
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if (strpos($ip2, '.') !== false) {
</span><span class="cx" style="display: block; padding: 0 10px"> $c2++;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -51,19 +51,19 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $ip = '0:0:0:0:0:0:0:0';
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> // ::xxx
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- else if ($c1 === -1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ elseif ($c1 === -1) {
</ins><span class="cx" style="display: block; padding: 0 10px"> $fill = str_repeat('0:', 7 - $c2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $ip = str_replace('::', $fill, $ip);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $ip = str_replace('::', $fill, $ip);
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> // xxx::
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- else if ($c2 === -1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ elseif ($c2 === -1) {
</ins><span class="cx" style="display: block; padding: 0 10px"> $fill = str_repeat(':0', 7 - $c1);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $ip = str_replace('::', $fill, $ip);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $ip = str_replace('::', $fill, $ip);
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> // xxx::xxx
</span><span class="cx" style="display: block; padding: 0 10px"> else {
</span><span class="cx" style="display: block; padding: 0 10px"> $fill = ':' . str_repeat('0:', 6 - $c2 - $c1);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $ip = str_replace('::', $fill, $ip);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $ip = str_replace('::', $fill, $ip);
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> return $ip;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -84,7 +84,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public static function compress($ip) {
</span><span class="cx" style="display: block; padding: 0 10px"> // Prepare the IP to be compressed
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $ip = self::uncompress($ip);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $ip = self::uncompress($ip);
</ins><span class="cx" style="display: block; padding: 0 10px"> $ip_parts = self::split_v6_v4($ip);
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // Replace all leading zeros
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -126,7 +126,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected static function split_v6_v4($ip) {
</span><span class="cx" style="display: block; padding: 0 10px"> if (strpos($ip, '.') !== false) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $pos = strrpos($ip, ':');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $pos = strrpos($ip, ':');
</ins><span class="cx" style="display: block; padding: 0 10px"> $ipv6_part = substr($ip, 0, $pos);
</span><span class="cx" style="display: block; padding: 0 10px"> $ipv4_part = substr($ip, $pos + 1);
</span><span class="cx" style="display: block; padding: 0 10px"> return array($ipv6_part, $ipv4_part);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -145,10 +145,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @return bool true if $ip is a valid IPv6 address
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public static function check_ipv6($ip) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $ip = self::uncompress($ip);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $ip = self::uncompress($ip);
</ins><span class="cx" style="display: block; padding: 0 10px"> list($ipv6, $ipv4) = self::split_v6_v4($ip);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $ipv6 = explode(':', $ipv6);
- $ipv4 = explode('.', $ipv4);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $ipv6 = explode(':', $ipv6);
+ $ipv4 = explode('.', $ipv4);
</ins><span class="cx" style="display: block; padding: 0 10px"> if (count($ipv6) === 8 && count($ipv4) === 1 || count($ipv6) === 6 && count($ipv4) === 4) {
</span><span class="cx" style="display: block; padding: 0 10px"> foreach ($ipv6 as $ipv6_part) {
</span><span class="cx" style="display: block; padding: 0 10px"> // The section can't be empty
</span></span></pre></div>
<a id="trunksrcwpincludesRequestsIRIphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/IRI.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/IRI.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/IRI.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -67,7 +67,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * Scheme
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @var string
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @var string|null
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $scheme = null;
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -74,7 +74,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * User Information
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @var string
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @var string|null
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $iuserinfo = null;
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -81,7 +81,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * ihost
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @var string
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @var string|null
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $ihost = null;
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -88,7 +88,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * Port
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @var string
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @var string|null
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $port = null;
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -102,12 +102,12 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * iquery
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @var string
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @var string|null
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $iquery = null;
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * ifragment
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * ifragment|null
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -118,6 +118,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * Each key is the scheme, each value is an array with each key as the IRI
</span><span class="cx" style="display: block; padding: 0 10px"> * part and value as the default value for that part.
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ *
+ * @var array
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected $normalization = array(
</span><span class="cx" style="display: block; padding: 0 10px"> 'acap' => array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -249,9 +251,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * Returns false if $base is not absolute, otherwise an IRI.
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param IRI|string $base (Absolute) Base IRI
- * @param IRI|string $relative Relative IRI
- * @return IRI|false
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param Requests_IRI|string $base (Absolute) Base IRI
+ * @param Requests_IRI|string $relative Relative IRI
+ * @return Requests_IRI|false
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public static function absolutize($base, $relative) {
</span><span class="cx" style="display: block; padding: 0 10px"> if (!($relative instanceof Requests_IRI)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -419,7 +421,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected function replace_invalid_with_pct_encoding($string, $extra_chars, $iprivate = false) {
</span><span class="cx" style="display: block; padding: 0 10px"> // Normalize as many pct-encoded sections as possible
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $string = preg_replace_callback('/(?:%[A-Fa-f0-9]{2})+/', array(&$this, 'remove_iunreserved_percent_encoded'), $string);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $string = preg_replace_callback('/(?:%[A-Fa-f0-9]{2})+/', array($this, 'remove_iunreserved_percent_encoded'), $string);
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // Replace invalid percent characters
</span><span class="cx" style="display: block; padding: 0 10px"> $string = preg_replace('/%(?![A-Fa-f0-9]{2})/', '%25', $string);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1010,7 +1012,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * Get the complete IRI
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return string
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return string|false
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected function get_iri() {
</span><span class="cx" style="display: block; padding: 0 10px"> if (!$this->is_valid()) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1047,7 +1049,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * Get the complete iauthority
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return string
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return string|null
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected function get_iauthority() {
</span><span class="cx" style="display: block; padding: 0 10px"> if ($this->iuserinfo === null && $this->ihost === null && $this->port === null) {
</span></span></pre></div>
<a id="trunksrcwpincludesRequestsProxyHTTPphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Proxy/HTTP.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Proxy/HTTP.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Proxy/HTTP.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -59,12 +59,12 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $this->proxy = $args;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> elseif (is_array($args)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if (count($args) == 1) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if (count($args) === 1) {
</ins><span class="cx" style="display: block; padding: 0 10px"> list($this->proxy) = $args;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- elseif (count($args) == 3) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ elseif (count($args) === 3) {
</ins><span class="cx" style="display: block; padding: 0 10px"> list($this->proxy, $this->user, $this->pass) = $args;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->use_authentication = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->use_authentication = true;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> else {
</span><span class="cx" style="display: block; padding: 0 10px"> throw new Requests_Exception('Invalid number of arguments', 'proxyhttpbadargs');
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -82,13 +82,13 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @see fsockopen_header
</span><span class="cx" style="display: block; padding: 0 10px"> * @param Requests_Hooks $hooks Hook system
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function register(Requests_Hooks &$hooks) {
- $hooks->register('curl.before_send', array(&$this, 'curl_before_send'));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function register(Requests_Hooks $hooks) {
+ $hooks->register('curl.before_send', array($this, 'curl_before_send'));
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $hooks->register('fsockopen.remote_socket', array(&$this, 'fsockopen_remote_socket'));
- $hooks->register('fsockopen.remote_host_path', array(&$this, 'fsockopen_remote_host_path'));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $hooks->register('fsockopen.remote_socket', array($this, 'fsockopen_remote_socket'));
+ $hooks->register('fsockopen.remote_host_path', array($this, 'fsockopen_remote_host_path'));
</ins><span class="cx" style="display: block; padding: 0 10px"> if ($this->use_authentication) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $hooks->register('fsockopen.after_headers', array(&$this, 'fsockopen_header'));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $hooks->register('fsockopen.after_headers', array($this, 'fsockopen_header'));
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -148,4 +148,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> public function get_auth_string() {
</span><span class="cx" style="display: block; padding: 0 10px"> return $this->user . ':' . $this->pass;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsProxyphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Proxy.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Proxy.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Proxy.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -31,5 +31,5 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @see Requests_Hooks::register
</span><span class="cx" style="display: block; padding: 0 10px"> * @param Requests_Hooks $hooks Hook system
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function register(Requests_Hooks &$hooks);
-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function register(Requests_Hooks $hooks);
+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsResponseHeadersphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Response/Headers.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Response/Headers.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Response/Headers.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21,7 +21,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * Set-Cookie headers.
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @param string $key
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return string Header value
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return string|null Header value
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function offsetGet($key) {
</span><span class="cx" style="display: block; padding: 0 10px"> $key = strtolower($key);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -58,7 +58,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * Get all values for a given header
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @param string $key
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return array Header values
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return array|null Header values
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function getValues($key) {
</span><span class="cx" style="display: block; padding: 0 10px"> $key = strtolower($key);
</span></span></pre></div>
<a id="trunksrcwpincludesRequestsResponsephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Response.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Response.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Response.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -51,6 +51,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * Protocol version, false if non-blocking
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ *
</ins><span class="cx" style="display: block; padding: 0 10px"> * @var float|boolean
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public $protocol_version = false;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -97,7 +98,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function is_redirect() {
</span><span class="cx" style="display: block; padding: 0 10px"> $code = $this->status_code;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- return in_array($code, array(300, 301, 302, 303, 307)) || $code > 307 && $code < 400;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ return in_array($code, array(300, 301, 302, 303, 307), true) || $code > 307 && $code < 400;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span></span></pre></div>
<a id="trunksrcwpincludesRequestsSSLphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/SSL.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/SSL.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/SSL.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -20,7 +20,6 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * Unfortunately, PHP doesn't check the certificate against the alternative
</span><span class="cx" style="display: block; padding: 0 10px"> * names, leading things like 'https://www.github.com/' to be invalid.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Instead
</del><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @see https://tools.ietf.org/html/rfc2818#section-3.1 RFC2818, Section 3.1
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -30,13 +29,6 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @return bool
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public static function verify_certificate($host, $cert) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- // Calculate the valid wildcard match if the host is not an IP address
- $parts = explode('.', $host);
- if (ip2long($host) === false) {
- $parts[0] = '*';
- }
- $wildcard = implode('.', $parts);
-
</del><span class="cx" style="display: block; padding: 0 10px"> $has_dns_alt = false;
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // Check the subjectAltName
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -139,7 +131,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> // Also validates that the host has 3 parts or more, as per Firefox's
</span><span class="cx" style="display: block; padding: 0 10px"> // ruleset.
</span><span class="cx" style="display: block; padding: 0 10px"> if (ip2long($host) === false) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $parts = explode('.', $host);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $parts = explode('.', $host);
</ins><span class="cx" style="display: block; padding: 0 10px"> $parts[0] = '*';
</span><span class="cx" style="display: block; padding: 0 10px"> $wildcard = implode('.', $parts);
</span><span class="cx" style="display: block; padding: 0 10px"> if ($wildcard === $reference) {
</span></span></pre></div>
<a id="trunksrcwpincludesRequestsSessionphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Session.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Session.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Session.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -22,6 +22,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * Base URL for requests
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * URLs will be made absolute using this as the base
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ *
</ins><span class="cx" style="display: block; padding: 0 10px"> * @var string|null
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public $url = null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -28,6 +29,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * Base headers for requests
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ *
</ins><span class="cx" style="display: block; padding: 0 10px"> * @var array
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public $headers = array();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -64,9 +66,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @param array $options Default options for requests
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function __construct($url = null, $headers = array(), $data = array(), $options = array()) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->url = $url;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->url = $url;
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->headers = $headers;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->data = $data;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->data = $data;
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->options = $options;
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if (empty($this->options['cookies'])) {
</span></span></pre></div>
<a id="trunksrcwpincludesRequestsTransportcURLphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Transport/cURL.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Transport/cURL.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Transport/cURL.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -38,9 +38,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> public $info;
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Version string
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * cURL version number
</ins><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @var long
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @var int
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public $version;
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -90,9 +90,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * Constructor
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function __construct() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $curl = curl_version();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $curl = curl_version();
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->version = $curl['version_number'];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->handle = curl_init();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->handle = curl_init();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> curl_setopt($this->handle, CURLOPT_HEADER, false);
</span><span class="cx" style="display: block; padding: 0 10px"> curl_setopt($this->handle, CURLOPT_RETURNTRANSFER, 1);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -100,9 +100,11 @@
</span><span class="cx" style="display: block; padding: 0 10px"> curl_setopt($this->handle, CURLOPT_ENCODING, '');
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> if (defined('CURLOPT_PROTOCOLS')) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // phpcs:ignore PHPCompatibility.Constants.NewConstants.curlopt_protocolsFound
</ins><span class="cx" style="display: block; padding: 0 10px"> curl_setopt($this->handle, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> if (defined('CURLOPT_REDIR_PROTOCOLS')) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // phpcs:ignore PHPCompatibility.Constants.NewConstants.curlopt_redir_protocolsFound
</ins><span class="cx" style="display: block; padding: 0 10px"> curl_setopt($this->handle, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -138,8 +140,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $this->stream_handle = fopen($options['filename'], 'wb');
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->response_data = '';
- $this->response_bytes = 0;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->response_data = '';
+ $this->response_bytes = 0;
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->response_byte_limit = false;
</span><span class="cx" style="display: block; padding: 0 10px"> if ($options['max_bytes'] !== false) {
</span><span class="cx" style="display: block; padding: 0 10px"> $this->response_byte_limit = $options['max_bytes'];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -168,7 +170,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> // Reset encoding and try again
</span><span class="cx" style="display: block; padding: 0 10px"> curl_setopt($this->handle, CURLOPT_ENCODING, 'none');
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->response_data = '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->response_data = '';
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->response_bytes = 0;
</span><span class="cx" style="display: block; padding: 0 10px"> curl_exec($this->handle);
</span><span class="cx" style="display: block; padding: 0 10px"> $response = $this->response_data;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -199,23 +201,24 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $multihandle = curl_multi_init();
</span><span class="cx" style="display: block; padding: 0 10px"> $subrequests = array();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $subhandles = array();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $subhandles = array();
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $class = get_class($this);
</span><span class="cx" style="display: block; padding: 0 10px"> foreach ($requests as $id => $request) {
</span><span class="cx" style="display: block; padding: 0 10px"> $subrequests[$id] = new $class();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $subhandles[$id] = $subrequests[$id]->get_subrequest_handle($request['url'], $request['headers'], $request['data'], $request['options']);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $subhandles[$id] = $subrequests[$id]->get_subrequest_handle($request['url'], $request['headers'], $request['data'], $request['options']);
</ins><span class="cx" style="display: block; padding: 0 10px"> $request['options']['hooks']->dispatch('curl.before_multi_add', array(&$subhandles[$id]));
</span><span class="cx" style="display: block; padding: 0 10px"> curl_multi_add_handle($multihandle, $subhandles[$id]);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $completed = 0;
- $responses = array();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $completed = 0;
+ $responses = array();
+ $subrequestcount = count($subrequests);
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $request['options']['hooks']->dispatch('curl.before_multi_exec', array(&$multihandle));
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> do {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $active = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $active = 0;
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> do {
</span><span class="cx" style="display: block; padding: 0 10px"> $status = curl_multi_exec($multihandle, $active);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -235,15 +238,15 @@
</span><span class="cx" style="display: block; padding: 0 10px"> // Parse the finished requests before we start getting the new ones
</span><span class="cx" style="display: block; padding: 0 10px"> foreach ($to_process as $key => $done) {
</span><span class="cx" style="display: block; padding: 0 10px"> $options = $requests[$key]['options'];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if (CURLE_OK !== $done['result']) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if ($done['result'] !== CURLE_OK) {
</ins><span class="cx" style="display: block; padding: 0 10px"> //get error string for handle.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $reason = curl_error($done['handle']);
- $exception = new Requests_Exception_Transport_cURL(
- $reason,
- Requests_Exception_Transport_cURL::EASY,
- $done['handle'],
- $done['result']
- );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $reason = curl_error($done['handle']);
+ $exception = new Requests_Exception_Transport_cURL(
+ $reason,
+ Requests_Exception_Transport_cURL::EASY,
+ $done['handle'],
+ $done['result']
+ );
</ins><span class="cx" style="display: block; padding: 0 10px"> $responses[$key] = $exception;
</span><span class="cx" style="display: block; padding: 0 10px"> $options['hooks']->dispatch('transport.internal.parse_error', array(&$responses[$key], $requests[$key]));
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -262,7 +265,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $completed++;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- while ($active || $completed < count($subrequests));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ while ($active || $completed < $subrequestcount);
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $request['options']['hooks']->dispatch('curl.after_multi_exec', array(&$multihandle));
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -287,8 +290,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $this->stream_handle = fopen($options['filename'], 'wb');
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->response_data = '';
- $this->response_bytes = 0;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->response_data = '';
+ $this->response_bytes = 0;
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->response_byte_limit = false;
</span><span class="cx" style="display: block; padding: 0 10px"> if ($options['max_bytes'] !== false) {
</span><span class="cx" style="display: block; padding: 0 10px"> $this->response_byte_limit = $options['max_bytes'];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -310,10 +313,25 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $options['hooks']->dispatch('curl.before_request', array(&$this->handle));
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // Force closing the connection for old versions of cURL (<7.22).
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if ( ! isset( $headers['Connection'] ) ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if (!isset($headers['Connection'])) {
</ins><span class="cx" style="display: block; padding: 0 10px"> $headers['Connection'] = 'close';
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ /**
+ * Add "Expect" header.
+ *
+ * By default, cURL adds a "Expect: 100-Continue" to most requests. This header can
+ * add as much as a second to the time it takes for cURL to perform a request. To
+ * prevent this, we need to set an empty "Expect" header. To match the behaviour of
+ * Guzzle, we'll add the empty header to requests that are smaller than 1 MB and use
+ * HTTP/1.1.
+ *
+ * https://curl.se/mail/lib-2017-07/0013.html
+ */
+ if (!isset($headers['Expect']) && $options['protocol_version'] === 1.1) {
+ $headers['Expect'] = $this->get_expect_header($data);
+ }
+
</ins><span class="cx" style="display: block; padding: 0 10px"> $headers = Requests::flatten($headers);
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if (!empty($data)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -320,7 +338,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $data_format = $options['data_format'];
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if ($data_format === 'query') {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $url = self::format_get($url, $data);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $url = self::format_get($url, $data);
</ins><span class="cx" style="display: block; padding: 0 10px"> $data = '';
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> elseif (!is_string($data)) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -363,6 +381,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> curl_setopt($this->handle, CURLOPT_TIMEOUT, ceil($timeout));
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> else {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // phpcs:ignore PHPCompatibility.Constants.NewConstants.curlopt_timeout_msFound
</ins><span class="cx" style="display: block; padding: 0 10px"> curl_setopt($this->handle, CURLOPT_TIMEOUT_MS, round($timeout * 1000));
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -370,6 +389,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> curl_setopt($this->handle, CURLOPT_CONNECTTIMEOUT, ceil($options['connect_timeout']));
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> else {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // phpcs:ignore PHPCompatibility.Constants.NewConstants.curlopt_connecttimeout_msFound
</ins><span class="cx" style="display: block; padding: 0 10px"> curl_setopt($this->handle, CURLOPT_CONNECTTIMEOUT_MS, round($options['connect_timeout'] * 1000));
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> curl_setopt($this->handle, CURLOPT_URL, $url);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -385,9 +405,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> curl_setopt($this->handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if (true === $options['blocking']) {
- curl_setopt($this->handle, CURLOPT_HEADERFUNCTION, array(&$this, 'stream_headers'));
- curl_setopt($this->handle, CURLOPT_WRITEFUNCTION, array(&$this, 'stream_body'));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if ($options['blocking'] === true) {
+ curl_setopt($this->handle, CURLOPT_HEADERFUNCTION, array($this, 'stream_headers'));
+ curl_setopt($this->handle, CURLOPT_WRITEFUNCTION, array($this, 'stream_body'));
</ins><span class="cx" style="display: block; padding: 0 10px"> curl_setopt($this->handle, CURLOPT_BUFFERSIZE, Requests::BUFFER_SIZE);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -397,7 +417,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @param string $response Response data from the body
</span><span class="cx" style="display: block; padding: 0 10px"> * @param array $options Request options
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return string HTTP response data including headers
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return string|false HTTP response data including headers. False if non-blocking.
+ * @throws Requests_Exception
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function process_response($response, $options) {
</span><span class="cx" style="display: block; padding: 0 10px"> if ($options['blocking'] === false) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -405,7 +426,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $options['hooks']->dispatch('curl.after_request', array(&$fake_headers));
</span><span class="cx" style="display: block; padding: 0 10px"> return false;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if ($options['filename'] !== false) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if ($options['filename'] !== false && $this->stream_handle) {
</ins><span class="cx" style="display: block; padding: 0 10px"> fclose($this->stream_handle);
</span><span class="cx" style="display: block; padding: 0 10px"> $this->headers = trim($this->headers);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -439,7 +460,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> // interim responses, such as a 100 Continue. We don't need that.
</span><span class="cx" style="display: block; padding: 0 10px"> // (We may want to keep this somewhere just in case)
</span><span class="cx" style="display: block; padding: 0 10px"> if ($this->done_headers) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $this->headers = '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $this->headers = '';
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->done_headers = false;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> $this->headers .= $headers;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -473,7 +494,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> if (($this->response_bytes + $data_length) > $this->response_byte_limit) {
</span><span class="cx" style="display: block; padding: 0 10px"> // Limit the length
</span><span class="cx" style="display: block; padding: 0 10px"> $limited_length = ($this->response_byte_limit - $this->response_bytes);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $data = substr($data, 0, $limited_length);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $data = substr($data, 0, $limited_length);
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -497,9 +518,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected static function format_get($url, $data) {
</span><span class="cx" style="display: block; padding: 0 10px"> if (!empty($data)) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $query = '';
</ins><span class="cx" style="display: block; padding: 0 10px"> $url_parts = parse_url($url);
</span><span class="cx" style="display: block; padding: 0 10px"> if (empty($url_parts['query'])) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $query = $url_parts['query'] = '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $url_parts['query'] = '';
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> else {
</span><span class="cx" style="display: block; padding: 0 10px"> $query = $url_parts['query'];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -506,7 +528,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $query .= '&' . http_build_query($data, null, '&');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $query = trim($query, '&');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $query = trim($query, '&');
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if (empty($url_parts['query'])) {
</span><span class="cx" style="display: block; padding: 0 10px"> $url .= '?' . $query;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -539,4 +561,29 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return true;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+ /**
+ * Get the correct "Expect" header for the given request data.
+ *
+ * @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD.
+ * @return string The "Expect" header.
+ */
+ protected function get_expect_header($data) {
+ if (!is_array($data)) {
+ return strlen((string) $data) >= 1048576 ? '100-Continue' : '';
+ }
+
+ $bytesize = 0;
+ $iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($data));
+
+ foreach ($iterator as $datum) {
+ $bytesize += strlen((string) $datum);
+
+ if ($bytesize >= 1048576) {
+ return '100-Continue';
+ }
+ }
+
+ return '';
+ }
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre></div>
<a id="trunksrcwpincludesRequestsTransportfsockopenphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Transport/fsockopen.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Transport/fsockopen.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Transport/fsockopen.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -62,9 +62,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> if (empty($url_parts)) {
</span><span class="cx" style="display: block; padding: 0 10px"> throw new Requests_Exception('Invalid URL.', 'invalidurl', $url);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $host = $url_parts['host'];
- $context = stream_context_create();
- $verifyname = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $host = $url_parts['host'];
+ $context = stream_context_create();
+ $verifyname = false;
</ins><span class="cx" style="display: block; padding: 0 10px"> $case_insensitive_headers = new Requests_Utility_CaseInsensitiveDictionary($headers);
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // HTTPS support
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -75,13 +75,13 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $context_options = array(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- 'verify_peer' => true,
- // 'CN_match' => $host,
- 'capture_peer_cert' => true
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ 'verify_peer' => true,
+ 'capture_peer_cert' => true,
</ins><span class="cx" style="display: block; padding: 0 10px"> );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $verifyname = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $verifyname = true;
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // SNI, if enabled (OpenSSL >=0.9.8j)
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // phpcs:ignore PHPCompatibility.Constants.NewConstants.openssl_tlsext_server_nameFound
</ins><span class="cx" style="display: block; padding: 0 10px"> if (defined('OPENSSL_TLSEXT_SERVER_NAME') && OPENSSL_TLSEXT_SERVER_NAME) {
</span><span class="cx" style="display: block; padding: 0 10px"> $context_options['SNI_enabled'] = true;
</span><span class="cx" style="display: block; padding: 0 10px"> if (isset($options['verifyname']) && $options['verifyname'] === false) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -91,7 +91,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if (isset($options['verify'])) {
</span><span class="cx" style="display: block; padding: 0 10px"> if ($options['verify'] === false) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $context_options['verify_peer'] = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $context_options['verify_peer'] = false;
+ $context_options['verify_peer_name'] = false;
+ $verifyname = false;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> elseif (is_string($options['verify'])) {
</span><span class="cx" style="display: block; padding: 0 10px"> $context_options['cafile'] = $options['verify'];
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -100,7 +102,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if (isset($options['verifyname']) && $options['verifyname'] === false) {
</span><span class="cx" style="display: block; padding: 0 10px"> $context_options['verify_peer_name'] = false;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $verifyname = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $verifyname = false;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> stream_context_set_option($context, array('ssl' => $context_options));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -116,6 +118,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> $remote_socket .= ':' . $url_parts['port'];
</span><span class="cx" style="display: block; padding: 0 10px">
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_set_error_handler
</ins><span class="cx" style="display: block; padding: 0 10px"> set_error_handler(array($this, 'connect_error_handler'), E_WARNING | E_NOTICE);
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $options['hooks']->dispatch('fsockopen.remote_socket', array(&$remote_socket));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -150,17 +153,19 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $options['hooks']->dispatch('fsockopen.remote_host_path', array(&$path, $url));
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $request_body = '';
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $out = sprintf("%s %s HTTP/%.1F\r\n", $options['type'], $path, $options['protocol_version']);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $out = sprintf("%s %s HTTP/%.1F\r\n", $options['type'], $path, $options['protocol_version']);
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if ($options['type'] !== Requests::TRACE) {
</span><span class="cx" style="display: block; padding: 0 10px"> if (is_array($data)) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $request_body = http_build_query($data, null, '&');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $request_body = http_build_query($data, '', '&');
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> else {
</span><span class="cx" style="display: block; padding: 0 10px"> $request_body = $data;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if (!empty($data)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // Always include Content-length on POST requests to prevent
+ // 411 errors from some servers when the body is empty.
+ if (!empty($data) || $options['type'] === Requests::POST) {
</ins><span class="cx" style="display: block; padding: 0 10px"> if (!isset($case_insensitive_headers['Content-Length'])) {
</span><span class="cx" style="display: block; padding: 0 10px"> $headers['Content-Length'] = strlen($request_body);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -174,7 +179,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> if (!isset($case_insensitive_headers['Host'])) {
</span><span class="cx" style="display: block; padding: 0 10px"> $out .= sprintf('Host: %s', $url_parts['host']);
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if (( 'http' === strtolower($url_parts['scheme']) && $url_parts['port'] !== 80 ) || ( 'https' === strtolower($url_parts['scheme']) && $url_parts['port'] !== 443 )) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if ((strtolower($url_parts['scheme']) === 'http' && $url_parts['port'] !== 80) || (strtolower($url_parts['scheme']) === 'https' && $url_parts['port'] !== 443)) {
</ins><span class="cx" style="display: block; padding: 0 10px"> $out .= ':' . $url_parts['port'];
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> $out .= "\r\n";
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -220,7 +225,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $timeout_sec = (int) floor($options['timeout']);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if ($timeout_sec == $options['timeout']) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if ($timeout_sec === $options['timeout']) {
</ins><span class="cx" style="display: block; padding: 0 10px"> $timeout_msec = 0;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -228,11 +233,13 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> stream_set_timeout($socket, $timeout_sec, $timeout_msec);
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $response = $body = $headers = '';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $response = '';
+ $body = '';
+ $headers = '';
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->info = stream_get_meta_data($socket);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $size = 0;
- $doingbody = false;
- $download = false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $size = 0;
+ $doingbody = false;
+ $download = false;
</ins><span class="cx" style="display: block; padding: 0 10px"> if ($options['filename']) {
</span><span class="cx" style="display: block; padding: 0 10px"> $download = fopen($options['filename'], 'wb');
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -248,7 +255,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $response .= $block;
</span><span class="cx" style="display: block; padding: 0 10px"> if (strpos($response, "\r\n\r\n")) {
</span><span class="cx" style="display: block; padding: 0 10px"> list($headers, $block) = explode("\r\n\r\n", $response, 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $doingbody = true;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $doingbody = true;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -264,7 +271,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> if (($size + $data_length) > $this->max_bytes) {
</span><span class="cx" style="display: block; padding: 0 10px"> // Limit the length
</span><span class="cx" style="display: block; padding: 0 10px"> $limited_length = ($this->max_bytes - $size);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $block = substr($block, 0, $limited_length);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $block = substr($block, 0, $limited_length);
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -300,10 +307,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function request_multiple($requests, $options) {
</span><span class="cx" style="display: block; padding: 0 10px"> $responses = array();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $class = get_class($this);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $class = get_class($this);
</ins><span class="cx" style="display: block; padding: 0 10px"> foreach ($requests as $id => $request) {
</span><span class="cx" style="display: block; padding: 0 10px"> try {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $handler = new $class();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $handler = new $class();
</ins><span class="cx" style="display: block; padding: 0 10px"> $responses[$id] = $handler->request($request['url'], $request['headers'], $request['data'], $request['options']);
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $request['options']['hooks']->dispatch('transport.internal.parse_response', array(&$responses[$id], $request));
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -353,8 +360,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $url_parts['query'] = '';
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $url_parts['query'] .= '&' . http_build_query($data, null, '&');
- $url_parts['query'] = trim($url_parts['query'], '&');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $url_parts['query'] .= '&' . http_build_query($data, '', '&');
+ $url_parts['query'] = trim($url_parts['query'], '&');
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> if (isset($url_parts['path'])) {
</span><span class="cx" style="display: block; padding: 0 10px"> if (isset($url_parts['query'])) {
</span></span></pre></div>
<a id="trunksrcwpincludesRequestsTransportphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Transport.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Transport.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Transport.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -38,4 +38,4 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @return bool
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public static function test();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins></span></pre></div>
<a id="trunksrcwpincludesRequestsUtilityCaseInsensitiveDictionaryphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -46,7 +46,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * Get the value for the item
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @param string $key Item key
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return string Item value
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return string|null Item value (null if offsetExists is false)
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function offsetGet($key) {
</span><span class="cx" style="display: block; padding: 0 10px"> $key = strtolower($key);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -70,7 +70,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset');
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $key = strtolower($key);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $key = strtolower($key);
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->data[$key] = $value;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span></span></pre></div>
<a id="trunksrcwpincludesRequestsUtilityFilteredIteratorphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/Requests/Utility/FilteredIterator.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/Requests/Utility/FilteredIterator.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/Requests/Utility/FilteredIterator.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -39,7 +39,11 @@
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public function current() {
</span><span class="cx" style="display: block; padding: 0 10px"> $value = parent::current();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $value = call_user_func($this->callback, $value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+ if (is_callable($this->callback)) {
+ $value = call_user_func($this->callback, $value);
+ }
+
</ins><span class="cx" style="display: block; padding: 0 10px"> return $value;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -46,16 +50,16 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * @inheritdoc
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function unserialize( $serialized ) {
- }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function unserialize($serialized) {}
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * @inheritdoc
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ *
+ * @phpcs:disable PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.MethodDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.NewMagicMethods.__unserializeFound
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function __unserialize( $serialized ) { // phpcs:ignore PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.MethodDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.NewMagicMethods.__unserializeFound
- }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function __unserialize($serialized) {}
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public function __wakeup() { // phpcs:ignore PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.MethodDoubleUnderscore,PHPCompatibility.FunctionNameRestrictions.NewMagicMethods.__wakeupFound
- unset( $this->callback );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function __wakeup() {
+ unset($this->callback);
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre></div>
<a id="trunksrcwpincludesclassrequestsphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/class-requests.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/class-requests.php 2021-05-11 18:24:38 UTC (rev 50841)
+++ trunk/src/wp-includes/class-requests.php 2021-05-11 19:40:41 UTC (rev 50842)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -88,7 +88,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @var string
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- const VERSION = '1.7-3470169';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ const VERSION = '1.7';
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px"> * Registered transport classes
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -143,7 +143,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $file = str_replace('_', '/', $class);
</span><span class="cx" style="display: block; padding: 0 10px"> if (file_exists(dirname(__FILE__) . '/' . $file . '.php')) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- require_once(dirname(__FILE__) . '/' . $file . '.php');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ require_once dirname(__FILE__) . '/' . $file . '.php';
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -342,7 +342,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * across transports.)
</span><span class="cx" style="display: block; padding: 0 10px"> * (string|boolean, default: library/Requests/Transport/cacert.pem)
</span><span class="cx" style="display: block; padding: 0 10px"> * - `verifyname`: Should we verify the common name in the SSL certificate?
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * (boolean: default, true)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * (boolean, default: true)
</ins><span class="cx" style="display: block; padding: 0 10px"> * - `data_format`: How should we send the `$data` parameter?
</span><span class="cx" style="display: block; padding: 0 10px"> * (string, one of 'query' or 'body', default: 'query' for
</span><span class="cx" style="display: block; padding: 0 10px"> * HEAD/GET/DELETE, 'body' for POST/PUT/OPTIONS/PATCH)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -374,9 +374,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> else {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $need_ssl = (0 === stripos($url, 'https://'));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $need_ssl = (stripos($url, 'https://') === 0);
</ins><span class="cx" style="display: block; padding: 0 10px"> $capabilities = array('ssl' => $need_ssl);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $transport = self::get_transport($capabilities);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $transport = self::get_transport($capabilities);
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> $response = $transport->request($url, $headers, $data, $options);
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -447,7 +447,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $request['type'] = self::GET;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> if (!isset($request['options'])) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $request['options'] = $options;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $request['options'] = $options;
</ins><span class="cx" style="display: block; padding: 0 10px"> $request['options']['type'] = $request['type'];
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -503,25 +503,25 @@
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> protected static function get_default_options($multirequest = false) {
</span><span class="cx" style="display: block; padding: 0 10px"> $defaults = array(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- 'timeout' => 10,
- 'connect_timeout' => 10,
- 'useragent' => 'php-requests/' . self::VERSION,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ 'timeout' => 10,
+ 'connect_timeout' => 10,
+ 'useragent' => 'php-requests/' . self::VERSION,
</ins><span class="cx" style="display: block; padding: 0 10px"> 'protocol_version' => 1.1,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- 'redirected' => 0,
- 'redirects' => 10,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ 'redirected' => 0,
+ 'redirects' => 10,
</ins><span class="cx" style="display: block; padding: 0 10px"> 'follow_redirects' => true,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- 'blocking' => true,
- 'type' => self::GET,
- 'filename' => false,
- 'auth' => false,
- 'proxy' => false,
- 'cookies' => false,
- 'max_bytes' => false,
- 'idn' => true,
- 'hooks' => null,
- 'transport' => null,
- 'verify' => Requests::get_certificate_path(),
- 'verifyname' => true,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ 'blocking' => true,
+ 'type' => self::GET,
+ 'filename' => false,
+ 'auth' => false,
+ 'proxy' => false,
+ 'cookies' => false,
+ 'max_bytes' => false,
+ 'idn' => true,
+ 'hooks' => null,
+ 'transport' => null,
+ 'verify' => self::get_certificate_path(),
+ 'verifyname' => true,
</ins><span class="cx" style="display: block; padding: 0 10px"> );
</span><span class="cx" style="display: block; padding: 0 10px"> if ($multirequest !== false) {
</span><span class="cx" style="display: block; padding: 0 10px"> $defaults['complete'] = null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -535,8 +535,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @return string Default certificate path.
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public static function get_certificate_path() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if ( ! empty( Requests::$certificate_path ) ) {
- return Requests::$certificate_path;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if (!empty(self::$certificate_path)) {
+ return self::$certificate_path;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return dirname(__FILE__) . '/Requests/Transport/cacert.pem';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -547,8 +547,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @param string $path Certificate path, pointing to a PEM file.
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public static function set_certificate_path( $path ) {
- Requests::$certificate_path = $path;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public static function set_certificate_path($path) {
+ self::$certificate_path = $path;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -595,9 +595,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if ($options['idn'] !== false) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $iri = new Requests_IRI($url);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $iri = new Requests_IRI($url);
</ins><span class="cx" style="display: block; padding: 0 10px"> $iri->host = Requests_IDNAEncoder::encode($iri->ihost);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $url = $iri->uri;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $url = $iri->uri;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // Massage the type to ensure we support it.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -604,7 +604,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $type = strtoupper($type);
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if (!isset($options['data_format'])) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if (in_array($type, array(self::HEAD, self::GET, self::DELETE))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if (in_array($type, array(self::HEAD, self::GET, self::DELETE), true)) {
</ins><span class="cx" style="display: block; padding: 0 10px"> $options['data_format'] = 'query';
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> else {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -633,21 +633,24 @@
</span><span class="cx" style="display: block; padding: 0 10px"> return $return;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $return->raw = $headers;
- $return->url = $url;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $return->raw = $headers;
+ $return->url = (string) $url;
+ $return->body = '';
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if (!$options['filename']) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if (($pos = strpos($headers, "\r\n\r\n")) === false) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $pos = strpos($headers, "\r\n\r\n");
+ if ($pos === false) {
</ins><span class="cx" style="display: block; padding: 0 10px"> // Crap!
</span><span class="cx" style="display: block; padding: 0 10px"> throw new Requests_Exception('Missing header/body separator', 'requests.no_crlf_separator');
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $headers = substr($return->raw, 0, $pos);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $return->body = substr($return->raw, $pos + strlen("\n\r\n\r"));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // Headers will always be separated from the body by two new lines - `\n\r\n\r`.
+ $body = substr($return->raw, $pos + 4);
+ if (!empty($body)) {
+ $return->body = $body;
+ }
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- else {
- $return->body = '';
- }
</del><span class="cx" style="display: block; padding: 0 10px"> // Pretend CRLF = LF for compatibility (RFC 2616, section 19.3)
</span><span class="cx" style="display: block; padding: 0 10px"> $headers = str_replace("\r\n", "\n", $headers);
</span><span class="cx" style="display: block; padding: 0 10px"> // Unfold headers (replace [CRLF] 1*( SP | HT ) with SP) as per RFC 2616 (section 2.2)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -658,7 +661,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> throw new Requests_Exception('Response could not be parsed', 'noversion', $headers);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> $return->protocol_version = (float) $matches[1];
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $return->status_code = (int) $matches[2];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $return->status_code = (int) $matches[2];
</ins><span class="cx" style="display: block; padding: 0 10px"> if ($return->status_code >= 200 && $return->status_code < 300) {
</span><span class="cx" style="display: block; padding: 0 10px"> $return->success = true;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -665,7 +668,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> foreach ($headers as $header) {
</span><span class="cx" style="display: block; padding: 0 10px"> list($key, $value) = explode(':', $header, 2);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $value = trim($value);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $value = trim($value);
</ins><span class="cx" style="display: block; padding: 0 10px"> preg_replace('#(\s+)#i', ' ', $value);
</span><span class="cx" style="display: block; padding: 0 10px"> $return->headers[$key] = $value;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -702,10 +705,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> &$req_headers,
</span><span class="cx" style="display: block; padding: 0 10px"> &$req_data,
</span><span class="cx" style="display: block; padding: 0 10px"> &$options,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $return
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $return,
</ins><span class="cx" style="display: block; padding: 0 10px"> );
</span><span class="cx" style="display: block; padding: 0 10px"> $options['hooks']->dispatch('requests.before_redirect', $hook_args);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $redirected = self::request($location, $req_headers, $req_data, $options['type'], $options);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $redirected = self::request($location, $req_headers, $req_data, $options['type'], $options);
</ins><span class="cx" style="display: block; padding: 0 10px"> $redirected->history[] = $return;
</span><span class="cx" style="display: block; padding: 0 10px"> return $redirected;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -732,10 +735,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public static function parse_multiple(&$response, $request) {
</span><span class="cx" style="display: block; padding: 0 10px"> try {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $url = $request['url'];
- $headers = $request['headers'];
- $data = $request['data'];
- $options = $request['options'];
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $url = $request['url'];
+ $headers = $request['headers'];
+ $data = $request['data'];
+ $options = $request['options'];
</ins><span class="cx" style="display: block; padding: 0 10px"> $response = self::parse_response($response, $url, $headers, $data, $options);
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> catch (Requests_Exception $e) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -755,8 +758,6 @@
</span><span class="cx" style="display: block; padding: 0 10px"> return $data;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
-
</del><span class="cx" style="display: block; padding: 0 10px"> $decoded = '';
</span><span class="cx" style="display: block; padding: 0 10px"> $encoded = $data;
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -774,8 +775,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> $chunk_length = strlen($matches[0]);
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $decoded .= substr($encoded, $chunk_length, $length);
- $encoded = substr($encoded, $chunk_length + $length + 2);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $decoded .= substr($encoded, $chunk_length, $length);
+ $encoded = substr($encoded, $chunk_length + $length + 2);
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if (trim($encoded) === '0' || empty($encoded)) {
</span><span class="cx" style="display: block; padding: 0 10px"> return $decoded;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -791,7 +792,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * Convert a key => value array to a 'key: value' array for headers
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * @param array $array Dictionary of header values
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return string[] List of headers
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return array List of headers
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public static function flatten($array) {
</span><span class="cx" style="display: block; padding: 0 10px"> $return = array();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -807,7 +808,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @codeCoverageIgnore
</span><span class="cx" style="display: block; padding: 0 10px"> * @deprecated Misspelling of {@see Requests::flatten}
</span><span class="cx" style="display: block; padding: 0 10px"> * @param array $array Dictionary of header values
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return string[] List of headers
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return array List of headers
</ins><span class="cx" style="display: block; padding: 0 10px"> */
</span><span class="cx" style="display: block; padding: 0 10px"> public static function flattern($array) {
</span><span class="cx" style="display: block; padding: 0 10px"> return self::flatten($array);
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -828,17 +829,31 @@
</span><span class="cx" style="display: block; padding: 0 10px"> return $data;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if (function_exists('gzdecode') && ($decoded = @gzdecode($data)) !== false) {
- return $decoded;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if (function_exists('gzdecode')) {
+ // phpcs:ignore PHPCompatibility.FunctionUse.NewFunctions.gzdecodeFound -- Wrapped in function_exists() for PHP 5.2.
+ $decoded = @gzdecode($data);
+ if ($decoded !== false) {
+ return $decoded;
+ }
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- elseif (function_exists('gzinflate') && ($decoded = @gzinflate($data)) !== false) {
- return $decoded;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+ if (function_exists('gzinflate')) {
+ $decoded = @gzinflate($data);
+ if ($decoded !== false) {
+ return $decoded;
+ }
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- elseif (($decoded = self::compatible_gzinflate($data)) !== false) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+ $decoded = self::compatible_gzinflate($data);
+ if ($decoded !== false) {
</ins><span class="cx" style="display: block; padding: 0 10px"> return $decoded;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- elseif (function_exists('gzuncompress') && ($decoded = @gzuncompress($data)) !== false) {
- return $decoded;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+ if (function_exists('gzuncompress')) {
+ $decoded = @gzuncompress($data);
+ if ($decoded !== false) {
+ return $decoded;
+ }
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return $data;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -861,32 +876,32 @@
</span><span class="cx" style="display: block; padding: 0 10px"> * @link https://secure.php.net/manual/en/function.gzinflate.php#70875
</span><span class="cx" style="display: block; padding: 0 10px"> * @link https://secure.php.net/manual/en/function.gzinflate.php#77336
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param string $gzData String to decompress.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param string $gz_data String to decompress.
</ins><span class="cx" style="display: block; padding: 0 10px"> * @return string|bool False on failure.
</span><span class="cx" style="display: block; padding: 0 10px"> */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- public static function compatible_gzinflate($gzData) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public static function compatible_gzinflate($gz_data) {
</ins><span class="cx" style="display: block; padding: 0 10px"> // Compressed data might contain a full zlib header, if so strip it for
</span><span class="cx" style="display: block; padding: 0 10px"> // gzinflate()
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if (substr($gzData, 0, 3) == "\x1f\x8b\x08") {
- $i = 10;
- $flg = ord(substr($gzData, 3, 1));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if (substr($gz_data, 0, 3) === "\x1f\x8b\x08") {
+ $i = 10;
+ $flg = ord(substr($gz_data, 3, 1));
</ins><span class="cx" style="display: block; padding: 0 10px"> if ($flg > 0) {
</span><span class="cx" style="display: block; padding: 0 10px"> if ($flg & 4) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- list($xlen) = unpack('v', substr($gzData, $i, 2));
- $i = $i + 2 + $xlen;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ list($xlen) = unpack('v', substr($gz_data, $i, 2));
+ $i += 2 + $xlen;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> if ($flg & 8) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $i = strpos($gzData, "\0", $i) + 1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $i = strpos($gz_data, "\0", $i) + 1;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> if ($flg & 16) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $i = strpos($gzData, "\0", $i) + 1;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $i = strpos($gz_data, "\0", $i) + 1;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> if ($flg & 2) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $i = $i + 2;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $i += 2;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $decompressed = self::compatible_gzinflate(substr($gzData, $i));
- if (false !== $decompressed) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $decompressed = self::compatible_gzinflate(substr($gz_data, $i));
+ if ($decompressed !== false) {
</ins><span class="cx" style="display: block; padding: 0 10px"> return $decompressed;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -902,22 +917,23 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $huffman_encoded = false;
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // low nibble of first byte should be 0x08
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- list(, $first_nibble) = unpack('h', $gzData);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ list(, $first_nibble) = unpack('h', $gz_data);
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // First 2 bytes should be divisible by 0x1F
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- list(, $first_two_bytes) = unpack('n', $gzData);
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ list(, $first_two_bytes) = unpack('n', $gz_data);
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if (0x08 == $first_nibble && 0 == ($first_two_bytes % 0x1F)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if ($first_nibble === 0x08 && ($first_two_bytes % 0x1F) === 0) {
</ins><span class="cx" style="display: block; padding: 0 10px"> $huffman_encoded = true;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if ($huffman_encoded) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if (false !== ($decompressed = @gzinflate(substr($gzData, 2)))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $decompressed = @gzinflate(substr($gz_data, 2));
+ if ($decompressed !== false) {
</ins><span class="cx" style="display: block; padding: 0 10px"> return $decompressed;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if ("\x50\x4b\x03\x04" == substr($gzData, 0, 4)) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ if (substr($gz_data, 0, 4) === "\x50\x4b\x03\x04") {
</ins><span class="cx" style="display: block; padding: 0 10px"> // ZIP file format header
</span><span class="cx" style="display: block; padding: 0 10px"> // Offset 6: 2 bytes, General-purpose field
</span><span class="cx" style="display: block; padding: 0 10px"> // Offset 26: 2 bytes, filename length
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -924,22 +940,23 @@
</span><span class="cx" style="display: block; padding: 0 10px"> // Offset 28: 2 bytes, optional field length
</span><span class="cx" style="display: block; padding: 0 10px"> // Offset 30: Filename field, followed by optional field, followed
</span><span class="cx" style="display: block; padding: 0 10px"> // immediately by data
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- list(, $general_purpose_flag) = unpack('v', substr($gzData, 6, 2));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ list(, $general_purpose_flag) = unpack('v', substr($gz_data, 6, 2));
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // If the file has been compressed on the fly, 0x08 bit is set of
</span><span class="cx" style="display: block; padding: 0 10px"> // the general purpose field. We can use this to differentiate
</span><span class="cx" style="display: block; padding: 0 10px"> // between a compressed document, and a ZIP file
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $zip_compressed_on_the_fly = (0x08 == (0x08 & $general_purpose_flag));
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $zip_compressed_on_the_fly = ((0x08 & $general_purpose_flag) === 0x08);
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> if (!$zip_compressed_on_the_fly) {
</span><span class="cx" style="display: block; padding: 0 10px"> // Don't attempt to decode a compressed zip file
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- return $gzData;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ return $gz_data;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // Determine the first byte of data, based on the above ZIP header
</span><span class="cx" style="display: block; padding: 0 10px"> // offsets:
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $first_file_start = array_sum(unpack('v2', substr($gzData, 26, 4)));
- if (false !== ($decompressed = @gzinflate(substr($gzData, 30 + $first_file_start)))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $first_file_start = array_sum(unpack('v2', substr($gz_data, 26, 4)));
+ $decompressed = @gzinflate(substr($gz_data, 30 + $first_file_start));
+ if ($decompressed !== false) {
</ins><span class="cx" style="display: block; padding: 0 10px"> return $decompressed;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> return false;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -946,13 +963,15 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // Finally fall back to straight gzinflate
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if (false !== ($decompressed = @gzinflate($gzData))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $decompressed = @gzinflate($gz_data);
+ if ($decompressed !== false) {
</ins><span class="cx" style="display: block; padding: 0 10px"> return $decompressed;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // Fallback for all above failing, not expected, but included for
</span><span class="cx" style="display: block; padding: 0 10px"> // debugging and preventing regressions and to track stats
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- if (false !== ($decompressed = @gzinflate(substr($gzData, 2)))) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $decompressed = @gzinflate(substr($gz_data, 2));
+ if ($decompressed !== false) {
</ins><span class="cx" style="display: block; padding: 0 10px"> return $decompressed;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span></span></pre>
</div>
</div>
</body>
</html>