WordPress.org

Plugin Directory

Changeset 532256 for feedwordpress


Ignore:
Timestamp:
04/17/12 12:33:53 (5 years ago)
Author:
radgeek
Message:

Deal better with edge cases -- in some installations we seem to get an empty string here instead of NULL? If so, treat it like you'd treat a NULL.

Location:
feedwordpress/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • feedwordpress/trunk/feeds-page.php

    r532240 r532256  
    379379    function display_authentication_credentials_box ($params = array()) { 
    380380        static $count = 0; 
    381          
     381 
    382382        $params = wp_parse_args($params, array( 
    383383        'username' => NULL, 
     
    503503        global $feedwordpress; 
    504504 
    505         if (is_null($auth)) : 
     505        if (is_null($auth) or (strlen($auth)==0)) : 
    506506            $auth = '-'; 
    507507            $hideAuth = true; 
  • feedwordpress/trunk/feedwordpresshttpauthenticator.class.php

    r453073 r532256  
    4646         
    4747        // Ruh roh... 
    48         if (!is_null($this->args['authentication'])) : 
    49             switch ($this->args['authentication']) : 
    50             case '-' : 
    51                 // No HTTP Auth method. Remove this stuff. 
    52                 $this->args['authentication'] = NULL; 
    53                 $this->args['username'] = NULL; 
    54                 $this->args['password'] = NULL; 
     48        $auth = $this->args['authentication']; 
     49        if (is_null($auth) or (strlen($auth) == 0)) : 
     50            $this->args['authentication'] = '-'; 
     51        endif; 
     52         
     53        switch ($this->args['authentication']) : 
     54        case '-' : 
     55            // No HTTP Auth method. Remove this stuff. 
     56            $this->args['authentication'] = NULL; 
     57            $this->args['username'] = NULL; 
     58            $this->args['password'] = NULL; 
     59            break; 
     60        case 'basic' : 
     61            if ($this->have_curl($args, $url)) : 
     62                // Don't need to do anything. http_api_curl hook takes care 
     63                // of it. 
    5564                break; 
    56             case 'basic' : 
    57                 if ($this->have_curl($args, $url)) : 
    58                     // Don't need to do anything. http_api_curl hook takes care 
    59                     // of it. 
    60                     break; 
    61                 elseif ($this->have_streams($args, $url)) : 
    62                     // curl has a nice native way to jam in the username and 
    63                     // passwd but streams and fsockopen do not. So we have to 
    64                     // make a recursive call with the credentials in the URL. 
    65                     // Wee ha! 
    66                     $method = $this->args['authentication']; 
    67                     $credentials = $this->args['username']; 
    68                     if (!is_null($this->args['password'])) : 
    69                         $credentials .= ':'.$args['password']; 
    70                     endif; 
    71                      
    72                     // Remove these so we don't recurse all the way down 
    73                     unset($this->args['authentication']); 
    74                     unset($this->args['username']); 
    75                     unset($this->args['password']); 
    76                      
    77                     $url = preg_replace('!(https?://)!', '$1'.$credentials.'@', $url); 
    78                      
    79                     // Subsidiary request 
    80                     $pre = wp_remote_request($url, $this->args); 
    81                     break; 
    82                 endif; 
    83             case 'digest' : 
    84                 if ($this->have_curl($args, $url)) : 
    85                     // Don't need to do anything. http_api_curl hook takes care 
    86                     // of it. 
    87                     break; 
    88                 endif; 
    89             default : 
    90                 if (is_callable('WP_Http', '_get_first_available_transport')) : 
    91                     $trans = WP_Http::_get_first_available_transport($args, $url); 
    92                     if (!$trans) : 
    93                         $trans = WP_Http::_get_first_available_transport(array(), $url); 
    94                     endif; 
    95                 elseif (is_callable('WP_Http', '_getTransport')) : 
    96                     $transports = WP_Http::_getTransport($args); 
    97                     $trans = get_class(reset($transports)); 
    98                 else : 
    99                     $trans = 'HTTP'; 
     65            elseif ($this->have_streams($args, $url)) : 
     66                // curl has a nice native way to jam in the username and 
     67                // passwd but streams and fsockopen do not. So we have to 
     68                // make a recursive call with the credentials in the URL. 
     69                // Wee ha! 
     70                $method = $this->args['authentication']; 
     71                $credentials = $this->args['username']; 
     72                if (!is_null($this->args['password'])) : 
     73                    $credentials .= ':'.$args['password']; 
    10074                endif; 
    10175                 
    102                 $pre = new WP_Error('http_request_failed', 
    103                     sprintf( 
    104                         __('%s cannot use %s authentication with the %s transport.'), 
    105                         __CLASS__, 
    106                         $args['authentication'], 
    107                         $trans 
    108                     ) 
    109                 ); 
    110             endswitch; 
    111         endif; 
     76                // Remove these so we don't recurse all the way down 
     77                unset($this->args['authentication']); 
     78                unset($this->args['username']); 
     79                unset($this->args['password']); 
     80                 
     81                $url = preg_replace('!(https?://)!', '$1'.$credentials.'@', $url); 
     82                 
     83                // Subsidiary request 
     84                $pre = wp_remote_request($url, $this->args); 
     85                break; 
     86            endif; 
     87        case 'digest' : 
     88            if ($this->have_curl($args, $url)) : 
     89                // Don't need to do anything. http_api_curl hook takes care 
     90                // of it. 
     91                break; 
     92            endif; 
     93        default : 
     94            if (is_callable('WP_Http', '_get_first_available_transport')) : 
     95                $trans = WP_Http::_get_first_available_transport($args, $url); 
     96                if (!$trans) : 
     97                    $trans = WP_Http::_get_first_available_transport(array(), $url); 
     98                endif; 
     99            elseif (is_callable('WP_Http', '_getTransport')) : 
     100                $transports = WP_Http::_getTransport($args); 
     101                $trans = get_class(reset($transports)); 
     102            else : 
     103                $trans = 'HTTP'; 
     104            endif; 
     105             
     106            $pre = new WP_Error('http_request_failed', 
     107                sprintf( 
     108                    __('%s cannot use %s authentication with the %s transport.'), 
     109                    __CLASS__, 
     110                    $args['authentication'], 
     111                    $trans 
     112                ) 
     113            ); 
     114        endswitch; 
     115 
    112116        return $pre; 
    113117    } /* FeedWordPressHTTPAuthenticator::pre_http_request () */ 
  • feedwordpress/trunk/feedwordpresssyndicationpage.class.php

    r455011 r532256  
    11471147    if (isset($existingLink)) : 
    11481148        $auth = FeedWordPress::post('link_rss_auth_method'); 
    1149         if (!is_null($auth) and $auth != '-') : 
     1149        if (!is_null($auth) and (strlen($auth) > 0) and ($auth != '-')) : 
    11501150            $existingLink->update_setting('http auth method', $auth); 
    11511151            $existingLink->update_setting('http username', 
Note: See TracChangeset for help on using the changeset viewer.