[libvirt] [PATCH v2] Fixed URI parsing

Daniel P. Berrange berrange at redhat.com
Fri Feb 24 13:42:40 UTC 2012


On Fri, Feb 24, 2012 at 02:30:11PM +0100, Martin Kletzander wrote:
> Function xmlParseURI does not remove square brackets around IPv6
> address when parsing. One of the solutions is making wrappers around
> functions working with xmlURI*. This assures that uri->server will be
> always properly assigned and it doesn't have to be changed when used
> on some new place in the code.
> For this purpose, functions virParseURI and virSaveURI were
> added. These function are wrappers around xmlParseURI and xmlSaveUri
> respectively.


> diff --git a/src/util/xml.h b/src/util/xml.h
> index a3750fa..4835900 100644
> --- a/src/util/xml.h
> +++ b/src/util/xml.h
> @@ -10,6 +10,7 @@
>  # include <libxml/parser.h>
>  # include <libxml/tree.h>
>  # include <libxml/xpath.h>
> +# include <libxml/uri.h>
> 
>  int              virXPathBoolean(const char *xpath,
>                                   xmlXPathContextPtr ctxt);
> @@ -61,6 +62,10 @@ xmlDocPtr      virXMLParseHelper(int domcode,
>                                   const char *url,
>                                   xmlXPathContextPtr *pctxt);
> 
> +xmlURIPtr            virParseURI(const char *uri);
> +
> +unsigned char *       virSaveURI(xmlURIPtr uri);
> +

Can you create new files for these  'util/viruri.{h,c}' and change
to ensure a standard 'virURI' naming prefix. Also we tend to use
the pair  Parse/Format, rather than Parse/Save in libvirt code.

So eg create a file viruri.h containing:

   typedef virURIPtr xmlURIPtr;

   virURIPtr  virURIParse(const char *uri);
   char *     virURIFormat(virURIPtr uri);

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list