]> git.ipfire.org Git - thirdparty/libvirt.git/commit
util: Prepare URI formatting for libxml2 >= 2.9.2
authorMartin Kletzander <mkletzan@redhat.com>
Fri, 3 Oct 2014 16:27:01 +0000 (18:27 +0200)
committerEric Blake <eblake@redhat.com>
Wed, 16 Dec 2015 04:21:01 +0000 (21:21 -0700)
commit20b8f063b5fc1ed7d305c7c903e46179f657c847
tree5d2dcaf30bdf22a1ef1e190b77627ad9a7206f2f
parent57d4abc79f9b259b4a8775390e50b9a86cab7563
util: Prepare URI formatting for libxml2 >= 2.9.2

Since commit 8eb55d782a2b9afacc7938694891cc6fad7b42a5 libxml2 removes
two slashes from the URI when there is no server part.  This is fixed
with beb7281055dbf0ed4d041022a67c6c5cfd126f25, but only if the calling
application calls xmlSaveUri() on URI that xmlURIParse() parsed.  And
that is not the case in virURIFormat().  virURIFormat() accepts
virURIPtr that can be created without parsing it and we do that when we
format network storage paths for gluster for example.  Even though
virStorageSourceParseBackingURI() uses virURIParse(), it throws that data
structure right away.

Since we want to format URIs as URIs and not absolute URIs or opaque
URIs (see RFC 3986), we can specify that with a special hack thanks to
commit beb7281055dbf0ed4d041022a67c6c5cfd126f25, by setting port to -1.

This fixes qemuxml2argvtest test where the disk-drive-network-gluster
case was failing.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
(cherry picked from commit 8f17d0eaae7ee2fa3e214b79b188fc14ed5aa1eb)
src/util/viruri.c