Daniel Veillard wrote:
On Mon, Oct 15, 2007 at 08:33:08PM +0100, Daniel P. Berrange wrote:
> On Mon, Oct 15, 2007 at 04:37:22PM +0100, Richard W.M. Jones wrote:
>> Daniel P. Berrange wrote:
>>> It is a bug in xend_internal.c
>>>
>>> if (strcasecmp (name, "xen") == 0 ||
>>> strncasecmp (name, "xen:///", 7) == 0) {
>>>
>>>
>>> This needs to die & be replaced with code calling the libxml URI
parsing.
>>> I fixed a similar bug in the QEMU driver a few weeks back.
>> Sorry yes, Dan is right, so ignore the hack/patch I just posted.
>>
>> In fact xen_unified.c already parses the URI once, so we just need to
>> change the xen_unified <-> xen low level drivers API to pass the parsed
>> URI instead of the name string.
> In fact we could take it one bit further. Have the 'do_open' method in
> the src/libvirt.c file parse it & change the src/driver.h so that the
> open method for drivers takes xmlURIPtr instead of a char *. That way
> we guarentee that all drivers will use a correctly parsed form.
Sounds good but we would have to reserialize for the network access
I assume.
Yes, it already does this because it has to reconstruct a URI suitable
for the remote end of the connection. Specifically one which doesn't
contain the transport, server and port. (Otherwise the remote end might
try to do another remote connection, which wouldn't be fun).
Rich.
--
Emerging Technologies, Red Hat -
http://et.redhat.com/~rjones/
Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod
Street, Windsor, Berkshire, SL4 1TE, United Kingdom. Registered in
England and Wales under Company Registration No. 03798903