Make WordPress Core

Changeset 12748


Ignore:
Timestamp:
01/17/2010 09:03:56 AM (16 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.