WordPress.org

Make WordPress Core

Ticket #14184: 14184.diff

File 14184.diff, 2.7 KB (added by jacobsantos, 8 years ago)

Patch which tests for strings when required and comments areas where it is not.

  • class-http.php

     
    434434                $cookies = array();
    435435                $newheaders = array();
    436436                foreach ( $headers as $tempheader ) {
     437                        // Sanity check, this should never be true, but prevents no lines from processing. Also
     438                        // the rare event that there are lines in between the headers that are empty.
    437439                        if ( empty($tempheader) )
    438440                                continue;
    439441
     
    443445                        }
    444446
    445447                        list($key, $value) = explode(':', $tempheader, 2);
     448                        $value = trim( $value ); // Remove spaces before and after for the value.
    446449
    447                         if ( !empty( $value ) ) {
     450                        if ( $value != "" ) {
    448451                                $key = strtolower( $key );
    449452                                if ( isset( $newheaders[$key] ) ) {
    450453                                        if ( !is_array($newheaders[$key]) )
    451454                                                $newheaders[$key] = array($newheaders[$key]);
    452                                         $newheaders[$key][] = trim( $value );
     455                                        $newheaders[$key][] = $value;
    453456                                } else {
    454                                         $newheaders[$key] = trim( $value );
     457                                        $newheaders[$key] = $value;
    455458                                }
    456459                                if ( 'set-cookie' == $key )
    457460                                        $cookies[] = new WP_Http_Cookie( $value );
     
    491494         * Based off the HTTP http_encoding_dechunk function. Does not support UTF-8. Does not support
    492495         * returning footer headers. Shouldn't be too difficult to support it though.
    493496         *
     497         * @link http://tools.ietf.org/html/rfc2616#section-19.4.6 Process for chunked decoding.
     498         *
    494499         * @todo Add support for footer chunked headers.
    495500         * @access public
    496501         * @since 2.7.0
     
    512517                        $hasChunk = (bool) preg_match( '/^([0-9a-f]+)(\s|\n)+/mi', $body, $match );
    513518
    514519                        if ( $hasChunk ) {
     520                                // http://tools.ietf.org/html/rfc2616#page-14 - Augmented BNF states what *rule
     521                                // Means and the chunked encoding http://tools.ietf.org/html/rfc2616#section-3.6.1
     522                                // defined says that only one HEX character is required. In many cases during
     523                                // testing, the last HEX digit will be '0' and will match. If not, then nothing
     524                                // will be adversely affected.
    515525                                if ( empty( $match[1] ) )
    516526                                        return $body;
    517527
     
    17351745                        // Set everything else as a property
    17361746                        foreach ( $pairs as $pair ) {
    17371747                                $pair = rtrim($pair);
    1738                                 if ( empty($pair) ) //Handles the cookie ending in ; which results in a empty final pair
     1748                                if ( $pair == "" ) //Handles the cookie ending in ; which results in a empty final pair
    17391749                                        continue;
    17401750
    17411751                                list( $key, $val ) = strpos( $pair, '=' ) ? explode( '=', $pair ) : array( $pair, '' );
     
    18141824         * @return string Header encoded cookie name and value.
    18151825         */
    18161826        function getHeaderValue() {
    1817                 if ( empty( $this->name ) || empty( $this->value ) )
     1827                if ( empty( $this->name ) || $this->value == '' )
    18181828                        return '';
    18191829
    18201830                return $this->name . '=' . urlencode( $this->value );