[libvirt] [PATCH] fix some XPath relative node resets
Laine Stump
laine at laine.org
Mon Sep 28 21:19:12 UTC 2009
On 09/28/2009 11:30 AM, Daniel Veillard wrote:
> The virXPath... function take extra care to preserve the XPath context
> node (ctxt->node) but in the case of virXPathString and virXPathBoolean
> they forgot to do this on the error path. This patch fixes this and
> move all ctxt->node = relnode instuctions just after the xmlXPathEval()
> to make sure this doesn't happen if this code is modified.
>
Daniel,
I tried this patch with my tree, and it didn't change the behavior - in
virInterfaceDefParseProtoIPv4 if I find a dhcp node with
dhcp = virXPathNode(conn, "./dhcp", ctxt);
any ip node will not be found with a subsequent
ip = virXPathNode(conn, "./ip", ctxt);
(if dhcp comes back null, the ip node *is* found).
However, if I first make the call to look for the ip node, and then do
the call for the dhcp node, both are found. Does that provide any clue
to you?
Also, you'll notice a new bit of code in virInterfaceDefParseIp:
tmp = virXPathString(conn, "string(./ip[1]/@source)", ctxt);
For some reason, tmp always comes back null, even if my ip node looks
like the one in the example below:
<interface type="ethernet" name="wlan0">
<start mode="none"/>
<mac address="00:1f:3c:9d:87:7c"/>
<protocol family="ipv4">
<dhcp/>
<ip address="10.24.0.101" prefix="24" source="device"/>
</protocol>
</interface>
More information about the libvir-list
mailing list