PATH:
home
/
letacommog
/
lenazen
/
wp-content
/
plugins
/
wordpress-seo
/
vendor
/
yoast
/
api-libs
/
google
/
io
<?php /* * Copyright 2010 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * WP based implementation of apiIO. * */ class Yoast_Google_WPIO extends Yoast_Google_IO { private static $ENTITY_HTTP_METHODS = array( "POST" => null, "PUT" => null, "DELETE" => null ); private static $HOP_BY_HOP = array( 'connection', 'keep-alive', 'proxy-authenticate', 'proxy-authorization', 'te', 'trailers', 'transfer-encoding', 'upgrade' ); /** * Perform an authenticated / signed apiHttpRequest. * This function takes the apiHttpRequest, calls apiAuth->sign on it * (which can modify the request in what ever way fits the auth mechanism) * and then calls apiWPIO::makeRequest on the signed request * * @param Yoast_Google_HttpRequest $request * * @return Yoast_Google_HttpRequest The resulting HTTP response including the * responseHttpCode, responseHeaders and responseBody. */ public function authenticatedRequest( Yoast_Google_HttpRequest $request ) { $request = Yoast_Google_Client::$auth->sign( $request ); return $this->makeRequest( $request ); } /** * Execute a apiHttpRequest * * @param Yoast_Google_HttpRequest $request the http request to be executed * * @return Yoast_Google_HttpRequest http request with the response http code, response * headers and response body filled in */ public function makeRequest( Yoast_Google_HttpRequest $request ) { // First, check to see if we have a valid cached version. $cached = $this->getCachedRequest( $request ); if ( $cached !== false ) { if ( ! $this->checkMustRevaliadateCachedRequest( $cached, $request ) ) { return $cached; } } if ( array_key_exists( $request->getRequestMethod(), self::$ENTITY_HTTP_METHODS ) ) { $request = $this->processEntityRequest( $request ); } $params = array( 'user-agent' => $request->getUserAgent(), 'timeout' => 30, 'sslverify' => false, ); $curl_version = $this->get_curl_version(); if ( $curl_version !== false ) { if ( version_compare( $curl_version, '7.19.0', '<=' ) && version_compare( $curl_version, '7.19.8', '>' ) ) { add_filter( 'http_api_transports', array( $this, 'filter_curl_from_transports' ) ); } } if ( $request->getPostBody() ) { $params['body'] = $request->getPostBody(); } $requestHeaders = $request->getRequestHeaders(); if ( $requestHeaders && is_array( $requestHeaders ) ) { $params['headers'] = $requestHeaders; } // There might be some problems with decompressing, so we prevent this by setting the param to false $params['decompress'] = false; switch ( $request->getRequestMethod() ) { case 'POST' : $response = wp_remote_post( $request->getUrl(), $params ); break; case 'GET' : $response = wp_remote_get( $request->getUrl(), $params ); break; case 'DELETE' : $params['method'] = 'DELETE'; $response = wp_remote_get( $request->getUrl(), $params ); break; } $responseBody = wp_remote_retrieve_body( $response ); $respHttpCode = wp_remote_retrieve_response_code( $response ); $responseHeaders = wp_remote_retrieve_headers( $response ); if ( $respHttpCode == 304 && $cached ) { // If the server responded NOT_MODIFIED, return the cached request. $this->updateCachedRequest( $cached, $responseHeaders ); return $cached; } // Fill in the apiHttpRequest with the response values $request->setResponseHttpCode( $respHttpCode ); $request->setResponseHeaders( $responseHeaders ); $request->setResponseBody( $responseBody ); // Store the request in cache (the function checks to see if the request // can actually be cached) $this->setCachedRequest( $request ); // And finally return it return $request; } /** * Remove Curl from the transport * * @param $transports * * @return mixed */ public function filter_curl_from_transports( $transports ) { unset( $transports['curl'] ); return $transports; } /** * Set options that update default behavior. * * @param array $optParams Multiple options used by a session. */ public function setOptions( $optParams ) { } /** * Get the current curl verison if curl is installed * * @return bool|string */ public function get_curl_version() { if ( function_exists( 'curl_version' ) ) { $curl = curl_version(); if ( isset( $curl['version'] ) ) { return $curl['version']; } } return false; } }
[+]
..
[-] Google_IO.php
[edit]
[-] Google_HttpRequest.php
[edit]
[-] cacerts.pem
[edit]
[-] Google_CacheParser.php
[edit]
[-] Google_CurlIO.php
[edit]
[-] Google_WPIO.php
[edit]
[-] Google_REST.php
[edit]