Re: Introduction, XML-RPC Profile

Aaron Marsh <[email protected]> Thu, 14 Nov 2002 10:13:18 -0600
Newsgroups gmane.network.beep.roadrunner.general
Message-ID <[email protected]>
On Thu, Nov 14, 2002 at 03:54:32PM +0100, Jonas Borgstr?m wrote:
> 
> Cool! Did you implement the proxy/gateway as an apache module or as a 
> library?

At this point, it's a quick hack.  I've written a 'rrhttp' profile
which is essentially the HTTP-server guts of Acme Software Labs
mini-http, modified to use BEEP as a transport.  This allows simple
GET requests.

The second part is the 'rrhttp-gateway' (the other half of mini-httpd,
actually), which listens on port 80, and dumps that data into BEEP.
It does some very primitive 'profile selection' based on requested
path.  For example, the default may send all requests to 'rrhttp' but
requests to '/RPC2' go to 'rrxmlrpc'

It's quite inefficent because it does a lot of store-and-forward --
load data from port 80, send data out BEEP, get BEEP response, send
data out port 80.


> > Completion of the validation suite required a series of patches to the
> > xml-rpc module (the xml-rpc serialization/unserialization syntax was
> > internally consistent, but not consistent to other implementations).
> 
> Ah, was is other issues besides the lack of support for the dateTime 
> and base64 data types?


I only added base64.  Maybe the validation suite doesn't test
dateTime?

The substantive change is that validator formats structs and arrays as:

<params>
	<param>
		<value>
			<struct>
				<member><value><i4></i4> ...
	</param>
	<param>
		<value>
			<array>
				<data>
					<value><i4></i4> ...

Whereas rrXMLRPC was doing:

<params>
	<param>
		<struct>
			<member><value><i4></i4> ...
	</param>
	<param>
		<array>
			<data>
				<value><i4></i4> ...


That is, it was written with 'array' and 'struct' being peers of
'value', whereas the spec expects 'array' and 'struct' to be within
a 'value' tag.

The other change had to do with the handling of 'text' XML nodes.
Lots of whitespace formatting in the XML led to spurious 'text' tags
which confused the parser.


> Great work! We would love to integrate your patches into the RoadRunner 
> distribution. The thing is that we (CodeFactory AB) need to have full 
> copyright of source code in the RoadRunner distribution.

Yes.  I've got to iron out licensing issues with my employers before I
get too involved.


> Great work!

Thank you.  Very nice job with Roadrunner.

- Aaron