[sync] Re: SyncML update [PATCH]

Johny horde at agotnes.com
Sat Jan 31 15:19:55 PST 2004


Chuck,

The SOAP handling is indeed correct (other than that it doesn't work ;) 
when I use the browser :) Apologies, I do realise now what the 302 error 
was, ta for that :)

I've got some debugging into rpc.php (and have attached the diff as I 
find this extremely useful, let me know if it's useful and I'll keep 
sending them as I add them)

When invoking rpc.php from my P800 I get further than with Firebird, but 
it stops with no error messages whatsoever? I've got PHP errors logged 
to file (tested with SOAP error previously), but nothing there.

The line it stops on in rpc.php is;

  $out = $server->getResponse($input, $params);

I get a nice log entry with data from the P800 from the previous line 
(see my diff attached), so the connection is working good and it sends 
XML to the server.

I'm not asking anyone to find out why it stops, however, I'd like to 
know how I can find this out without adding debug statements through the 
code invoked by getResponse, i.e. how do I debug this beast ;) If 
logging is the way I'll start tracking through it and adding logging, no 
worries.

There is nothing in the horde log, nothing in the PHP log (set to 'E_ALL 
& ~E_NOTICE') and nothing in the Apache log (where some fatal errors end up)

The diff, I've used diff -u, if other formats preferred, lemme know.

:)J

------
[root at hugin horde]# cvs diff -u rpc.php
Index: rpc.php
===================================================================
RCS file: /repository/horde/rpc.php,v
retrieving revision 1.26
diff -u -r1.26 rpc.php
--- rpc.php     31 Jan 2004 17:01:32 -0000      1.26
+++ rpc.php     31 Jan 2004 23:07:33 -0000
@@ -18,6 +18,8 @@
  $input = null;
  $params = null;

+Horde::logMessage('Starting rpc.php', __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
  if (!empty($_SERVER['CONTENT_TYPE'])) {
      if (strstr($_SERVER['CONTENT_TYPE'], 'application/vnd.syncml+xml')) {
          $serverType = 'syncml';
@@ -39,6 +41,8 @@
      $serverType = 'soap';
  }

+Horde::logMessage(sprintf('Server type: %s', $serverType) , __FILE__, 
__LINE__, PEAR_LOG_DEBUG);
+
  if ($serverType == 'soap' &&
      (!isset($_SERVER['REQUEST_METHOD']) ||
       $_SERVER['REQUEST_METHOD'] != 'POST')) {
@@ -56,13 +60,17 @@
   * basic authentication against Horde, but backends can override this
   * as needed. */
  $server->authorize();
+Horde::logMessage('Authorisation done' , __FILE__, __LINE__, 
PEAR_LOG_DEBUG);
+

  /* Get the server's response. We call $server->getInput() to allow
   * backends to handle input processing differently. */
  if ($input === null) {
      $input = $server->getInput();
+    Horde::logMessage(sprintf('Server input: %s', $input) , __FILE__, 
__LINE__, PEAR_LOG_DEBUG);
  }
  $out = $server->getResponse($input, $params);
+Horde::logMessage(sprintf('Server response: %s', $out) , __FILE__, 
__LINE__, PEAR_LOG_DEBUG);

  /* Return the response to the client. */
  header('Content-Type: ' . $server->getResponseContentType());
----

Chuck Hagenbuch wrote:

> Quoting Johny <horde at agotnes.com>:
> 
>> Got the hooks.php.dist update, and copied it across to the hooks.php
>> dir. Also, did a complete cvs update on both framework and horde, now I
>> get this issue when testing the link from Firebird;
>>
>> Fatal error: Failed opening required 'SOAP/Server.php'
>> (include_path='.:/usr/share/pear') in /usr/share/pear/Horde/RPC/soap.php
>> on line 43
>>
>> It goes and invokes the Soap handling by default, not SyncML as the P800
>> does.
> 
> 
> Right... you're not sending it a SyncML request. Send it something with the
> Content-Type of either application/vnd.sycml+xml or
> application/vnc.syncml+wbxml, and it'll invoke the SyncML handler (with 
> WBXML
> encoding/decoding around it as necessary).
> 
>> The 302 is weird, now it reports 200 as I'd expect, but doesn't seem to
>> get anywhere from the call to rpc.php, so I'm adding a touch of
>> debugging there to see what is happening now, hoping you guys will sort
>> out the SOAP handling :)
> 
> 
> It's not weird it all, I explained the fix in my reply. And the SOAP 
> handling is
> correct behavior.
> 
> -chuck
> 
> -- 
> Charles Hagenbuch, <chuck at horde.org>
> "Here, I brought some cole slaw. It's made from peeeooople! Just kidding."



More information about the sync mailing list