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

Reply via email to