Make WordPress Core

Changeset 12748


Ignore:
Timestamp:
01/17/2010 09:03:56 AM (17 years ago)
Author:
dd32
Message:

Allow WP_HTTP_Fopen to send extra headers and custom user-agents. See #11888

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/http.php

    r12747 r12748  
    838838                        $url = str_replace($arrURL['scheme'], 'http', $url);
    839839
     840                if ( is_null( $r['headers'] ) )
     841                        $r['headers'] = array();
     842
     843                if ( is_string($r['headers']) ) {
     844                        $processedHeaders = WP_Http::processHeaders($r['headers']);
     845                        $r['headers'] = $processedHeaders['headers'];
     846                }
     847
     848                $initial_user_agent = ini_get('user_agent');
     849
     850                if ( !empty($r['headers']) && is_array($r['headers']) ) {
     851                        $user_agent_extra_headers = '';
     852                        foreach ( $r['headers'] as $header => $value )
     853                                $user_agent_extra_headers .= "\r\n$header: $value";
     854                        @ini_set('user_agent', $r['user-agent'] . $user_agent_extra_headers);
     855                } else {
     856                        @ini_set('user_agent', $r['user-agent']);
     857                }
     858
    840859                if ( !WP_DEBUG )
    841860                        $handle = @fopen($url, 'r');
     
    852871                if ( ! $r['blocking'] ) {
    853872                        fclose($handle);
     873                        @ini_set('user_agent', $initial_user_agent); //Clean up any extra headers added
    854874                        return array( 'headers' => array(), 'body' => '', 'response' => array('code' => false, 'message' => false), 'cookies' => array() );
    855875                }
     
    871891
    872892                fclose($handle);
     893
     894                @ini_set('user_agent', $initial_user_agent); //Clean up any extra headers added
    873895
    874896                $processedHeaders = WP_Http::processHeaders($theHeaders);
Note: See TracChangeset for help on using the changeset viewer.