Sorry, but the client side of the transaction is more interesting, if there
is a proxy problem involved.
Could you:
- use setDebug(2) on the client to see a complete dump of the http request
and response payloads
- post the results to the mailing list?

Bye
Gaetano

On 7/5/07, Manish Marathe <[EMAIL PROTECTED]> wrote:

Hello,

I am having problem when I am trying to make client calls via proxy
although without proxy it works fine but with proxy it gives me:

xmlrpclib.Fault: <Fault 105: 'XML error: Invalid document end at line 1,
column 1'>

Any help would be greatly appreciated.

Here is my server code:

------------------------------------------------------------------------------------------------------------

<?php
require_once dirname(__FILE__) . '/../lib/xmlrpc/xmlrpc.inc';
require_once dirname(__FILE__) . '/../lib/xmlrpc/xmlrpcs.inc';
require_once dirname(__FILE__) . '/../site-setup.php';

function getReleaseNotes ($message) {
    global $REPOSITORY_BASE;
    $rollup_release_note_file = $content = $comp_release_note_file = "";

    $info = $files = array();

    $pNameObj = $message->getParam(0);
    $pName = $pNameObj->getVal();

    $pVersionObj = $message->getParam(1);
    $pVersion = $pVersionObj->getval();

    $pPlatformObj = $message->getParam(2);
    $pPlatform = $pPlatformObj->getval();

    $localeObj = $message->getParam(3);
    $locale = $localeObj->getval();

    $dir = $REPOSITORY_BASE . $pName . "/" . $pVersion . "/" . $pPlatform;

    if(is_dir($dir . "/locale/" . $locale)) {
        $files = scan_dir($dir);

        foreach ($files as $file) {
            if(substr($file, -5) === '.yaml') {
                $info = syck_load(file_get_contents($dir . "/" . $file));
                if($info['rollup']['rollup_type'] === 'rollup') {

                    // Release note of the rollup
                    $rollups[$info['rollup']['id']] = $info;
                    if(strtotime($info['rollup']['timestamp']) >
$recent_timestamp) {
                        $recent_timestamp =
strtotime($info['rollup']['timestamp']);
                        $rollup_id = intval($info['rollup']['id']);
                    } else {
                        continue;
                    }
                } else {
                    continue;
                }
            }
            $info = array();
        }

        $rollup_release_note_file =
$rollups[$rollup_id]['rollup']['description'];
        $content .= file_get_contents($dir . "/locale/" . $locale . "/"
. $rollup_release_note_file) . "\n\n";

        // End release notes of rollup
        // Release notes of dependent components in the rollup yaml
        if(!empty($rollups[$rollup_id]['components'])) {
            foreach($rollups[$rollup_id]['components'] as $component) {
                $comp_release_note_file = $component['description'];
                $content .= file_get_contents($dir . "/locale/" .
$locale . "/" . $comp_release_note_file) . "\n\n";

                $comp_release_note_file = "";
            }
        }

        return new xmlrpcresp(new xmlrpcval($content, 'base64'));
    } else {
        $msg = "Error! Check Product Name: \"" . $pName . "\", Version:
\"" . $pVersion
             . "\", Platform: \"" . $pPlatform . "\", and Locale: \"" .
$locale . "\"\n";
        return new xmlrpcresp(new xmlrpcval($msg, 'string'));
    }
}

function scan_dir($dir) {
    $files = array();

    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            if($file != '.' && $file != '..') {
                $files[] = $file;
            }
        }
        closedir($dh);
    }
    return $files;
}

// Declare our signature and provide some documentation.
// (The PHP server supports remote introspection. Nifty!)
$activate_sig = array(array('struct', 'string', 'string', 'string'),
                      array('string', 'string', 'string', 'string'));
$activate_doc = 'Activates a product';
$checkForUpdates_sig = array(array('base64', 'string', 'string',
'string'),
                             array('string', 'string', 'string',
'string'));
$checkForUpdates_doc = 'Checks for Updates';

$getReleaseNotes_sig = array(array('base64', 'string', 'string',
'string', 'string'),
                             array('string', 'string', 'string',
'string', 'string'));
$getReleaseNotes_doc = 'Get Release Note Contents';


$s = new xmlrpc_server(array('activate' =>
                            array('function' => 'activate',
                                  'signature' => $activate_sig,
                                  'docstring' => $activate_doc),
                        'checkForUpdates' =>
                            array('function' => 'checkForUpdates',
                                  'signature' => $checkForUpdates_sig,
                                  'docstring' => $checkForUpdates_doc),
                        'getReleaseNotes' =>
                            array('function' => 'getReleaseNotes',
                                  'signature' => $getReleaseNotes_sig,
                                  'docstring' => $getReleaseNotes_doc)
                        )
                  );
$s->setDebug(3);
?>
_______________________________________________
phpxmlrpc mailing list
phpxmlrpc@lists.usefulinc.com
http://lists.usefulinc.com/cgi-bin/mailman/listinfo/phpxmlrpc

_______________________________________________
phpxmlrpc mailing list
phpxmlrpc@lists.usefulinc.com
http://lists.usefulinc.com/cgi-bin/mailman/listinfo/phpxmlrpc

Reply via email to