Make WordPress Core

Ticket #26049: 26049-2.patch

File 26049-2.patch, 8.6 KB (added by kraftbj, 10 years ago)

All hooks in /wp-includes/class-http.php documented.

  • src/wp-includes/class-http.php

     
    6969
    7070                $defaults = array(
    7171                        'method' => 'GET',
     72                        /**
     73                         * Modifies the timeout value for the http request.
     74                         *
     75                         * @since 2.7.0
     76                         *
     77                         * @param integer $var Time in seconds until request timesout.
     78                         */
    7279                        'timeout' => apply_filters( 'http_request_timeout', 5),
     80                        /**
     81                         * Modifies the number of redirects allowed during the http request.
     82                         *
     83                         * @since 2.7.0
     84                         *
     85                         * @param integer $var Number of redirects allowed.
     86                         */
    7387                        'redirection' => apply_filters( 'http_request_redirection_count', 5),
     88                        /**
     89                         * Sets the version of the HTTP protocol used in the request.
     90                         *
     91                         * @since 2.7.0
     92                         *
     93                         * @param string $var Version of HTTP used. Acceptable values are 1.0 and 1.1.
     94                         */
    7495                        'httpversion' => apply_filters( 'http_request_version', '1.0'),
     96                        /**
     97                         * Modifies the user agent value sent with the http request.
     98                         *
     99                         * @since 2.7.0
     100                         *
     101                         * @param string $var User agent string.
     102                         */
    75103                        'user-agent' => apply_filters( 'http_headers_useragent', 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ),
     104                        /**
     105                         * Modifies option to run URLs through wp_http_validate_url().
     106                         *
     107                         * @since 3.5.2
     108                         *
     109                         * @param boolean $var Option to pass URL through wp_http_validate_url().
     110                         */
    76111                        'reject_unsafe_urls' => apply_filters( 'http_request_reject_unsafe_urls', false ),
    77112                        'blocking' => true,
    78113                        'headers' => array(),
     
    95130                        $defaults['redirection'] = 0;
    96131
    97132                $r = wp_parse_args( $args, $defaults );
     133                /**
     134                         * Modifies arguments used in http request.
     135                         *
     136                         * @since 2.7.0
     137                         *
     138                         * @param array $r The default values parsed with arguments passed from HEAD check.
     139                         * @param string $url URI resource.
     140                         */
    98141                $r = apply_filters( 'http_request_args', $r, $url );
    99142
    100143                // The transports decrement this, store a copy of the original value for loop purposes.
    101144                if ( ! isset( $r['_redirection'] ) )
    102145                        $r['_redirection'] = $r['redirection'];
    103146
    104                 // Allow plugins to short-circuit the request
     147                /**
     148                         * Allow plugins to set arguments for the http request.
     149                         *
     150                         * @since 2.9.0
     151                         *
     152                         * @param boolean $var Option to use arguments from plugin without further operations.
     153                         * @param array $r http request options.
     154                         * @param type $url URI Resource.
     155                         */
    105156                $pre = apply_filters( 'pre_http_request', false, $r, $url );
    106157                if ( false !== $pre )
    107158                        return $pre;
     
    221272         * @return string|bool Class name for the first transport that claims to support the request. False if no transport claims to support the request.
    222273         */
    223274        public function _get_first_available_transport( $args, $url = null ) {
     275                /**
     276                 * Modifies the order HTTP transports are checked.
     277                 *
     278                 * @since 3.7.0
     279                 *
     280                 * @param array $value {
     281                 *     Establishes transports to check, in order. Default of 'curl', 'streams'.
     282                 * }
     283                 * @param array $args Request arguments.
     284                 * @param string $url URL to request.
     285                 */
    224286                $request_order = apply_filters( 'http_api_transports', array( 'curl', 'streams' ), $args, $url );
    225287
    226288                // Loop over each transport on each HTTP request looking for one which will serve this request's needs
     
    265327
    266328                $response = $transports[$class]->request( $url, $args );
    267329
     330                /**
     331                 * Fires after an HTTP API response is recieved and before the response is returned.
     332                 *
     333                 * @since 2.8.0
     334                 *
     335                 * @param array|object $response HTTP Response or WP_Error object.
     336                 * @param string $class HTTP transport used.
     337                 * @param array $args Requested arguments.
     338                 * @param string $url Requested URL.
     339                 */
     340
    268341                do_action( 'http_api_debug', $response, 'response', $class, $args, $url );
    269342
    270343                if ( is_wp_error( $response ) )
    271344                        return $response;
    272345
     346                /**
     347                 * Modifies the HTTP API response immediately before the response is returned.
     348                 *
     349                 * @since 2.9.0
     350                 *
     351                 * @param array|object $response HTTP Response.
     352                 * @param array $args Requested arguments.
     353                 * @param string $url Requested URL.
     354                 */
    273355                return apply_filters( 'http_response', $response, $args, $url );
    274356        }
    275357
     
    517599
    518600                // Don't block requests back to ourselves by default
    519601                if ( $check['host'] == 'localhost' || $check['host'] == $home['host'] )
     602                        /**
     603                         * Filter to block local requests through the proxy.
     604                         *
     605                         * @since 2.8.0
     606                         *
     607                         * @param bool $var Block local request through proxy.
     608                         */
    520609                        return apply_filters('block_local_requests', false);
    521610
    522611                if ( !defined('WP_ACCESSIBLE_HOSTS') )
     
    743832                $is_local = isset( $r['local'] ) && $r['local'];
    744833                $ssl_verify = isset( $r['sslverify'] ) && $r['sslverify'];
    745834                if ( $is_local )
     835                        /**
     836                         * Modifies if SSL should be verified for local requests.
     837                         *
     838                         * @since 2.8.0
     839                         *
     840                         * @param bool $ssl_verify Verify SSL connection.
     841                         */
    746842                        $ssl_verify = apply_filters( 'https_local_ssl_verify', $ssl_verify );
    747843                elseif ( ! $is_local )
     844                        /**
     845                         * Modifies if SSL should be verified for non-local requests.
     846                         *
     847                         * @since 2.8.0
     848                         *
     849                         * @param type $ssl_verify Verify SSL connection.
     850                         */
    748851                        $ssl_verify = apply_filters( 'https_ssl_verify', $ssl_verify );
    749852
    750853                $proxy = new WP_HTTP_Proxy();
     
    10261129                                return false;
    10271130                }
    10281131
     1132                /**
     1133                 * Allows to set to false if this class can be used for retriving an URL.
     1134                 *
     1135                 * @since 2.7.0
     1136                 *
     1137                 * @param bool $var Description.
     1138                 * @param array $args Request arguments.
     1139                 */
    10291140                return apply_filters( 'use_streams_transport', true, $args );
    10301141        }
    10311142}
     
    11461257                $is_local = isset($r['local']) && $r['local'];
    11471258                $ssl_verify = isset($r['sslverify']) && $r['sslverify'];
    11481259                if ( $is_local )
     1260                        /** This filter is documented in wp-includes/class-http.php */
    11491261                        $ssl_verify = apply_filters('https_local_ssl_verify', $ssl_verify);
    11501262                elseif ( ! $is_local )
     1263                        /** This filter is documented in wp-includes/class-http.php */
    11511264                        $ssl_verify = apply_filters('https_ssl_verify', $ssl_verify);
    11521265
    11531266                // CURLOPT_TIMEOUT and CURLOPT_CONNECTTIMEOUT expect integers. Have to use ceil since
     
    12251338                else
    12261339                        curl_setopt( $handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1 );
    12271340
    1228                 // Cookies are not handled by the HTTP API currently. Allow for plugin authors to handle it
    1229                 // themselves... Although, it is somewhat pointless without some reference.
     1341                /**
     1342                 * Fires before cURL process is executed.
     1343                 *
     1344                 * Cookies are not handled by the HTTP API currently. Allow for plugin authors to handle it themselves... Although, it is somewhat pointless without some reference.
     1345                 *
     1346                 * @since 2.8.0
     1347                 *
     1348                 * @param array $handle cURL Options set using curl_setopt.
     1349                 */
     1350
    12301351                do_action_ref_array( 'http_api_curl', array(&$handle) );
    12311352
    12321353                // We don't need to return the body, so don't. Just execute request and return.
     
    13611482                                return false;
    13621483                }
    13631484
     1485                /**
     1486                 * Allows to set to false if this class can be used for retriving an URL.
     1487                 *
     1488                 * @since 2.7.0
     1489                 *
     1490                 * @param bool $var Description.
     1491                 * @param array $args Request arguments.
     1492                 */
    13641493                return apply_filters( 'use_curl_transport', true, $args );
    13651494        }
    13661495}
     
    15271656
    15281657                $home = parse_url( get_option('siteurl') );
    15291658
     1659                /**
     1660                 * Filter to force send_through_proxy.
     1661                 *
     1662                 * @since 3.5.0
     1663                 *
     1664                 * @param string $uri URI to check.
     1665                 * @param array $check Associative array result of parse_url($uri).
     1666                 * @param array $home Associative array result of parse_url() of the siteurl.
     1667                 *
     1668                 */
    15301669                $result = apply_filters( 'pre_http_send_through_proxy', null, $uri, $check, $home );
    15311670                if ( ! is_null( $result ) )
    15321671                        return $result;
     
    17411880                if ( ! isset( $this->name ) || ! isset( $this->value ) )
    17421881                        return '';
    17431882
     1883                /**
     1884                 * Filters the header-encoded cookie value.
     1885                 *
     1886                 * @since 3.4.0
     1887                 *
     1888                 * @param string $this->value Cookie value.
     1889                 * @param string $this-name Cookie name.
     1890                 */
    17441891                return $this->name . '=' . apply_filters( 'wp_http_cookie_value', $this->value, $this->name );
    17451892        }
    17461893
     
    19022049                                $type[] = 'gzip;q=0.5';
    19032050                }
    19042051
     2052                /**
     2053                 * Modifies encoding types to allow.
     2054                 *
     2055                 * @since 3.6.0
     2056                 *
     2057                 * @param array $type Encoding types allowed.
     2058                 * @param string $url URL of the HTTP request.
     2059                 * @param array $args HTTP request arguments.
     2060                 */
    19052061                $type = apply_filters( 'wp_http_accept_encoding', $type, $url, $args );
    19062062
    19072063                return implode(', ', $type);