mbox series

[00/13] RFC: use upcoming GUri for URI handling

Message ID 20200709194234.2117650-1-marcandre.lureau@redhat.com
Headers show
Series RFC: use upcoming GUri for URI handling | expand

Message

Marc-André Lureau July 9, 2020, 7:42 p.m. UTC
Hi,

After years trying to add a glib API to handle URI, GLib 2.65.1 will finally
have one. As an exercice, I checked if the API fits qemu needs, and it seems to
be fine. It should be about as verbose as the current libxml based URI parser,
but the main benefit is that we will get rid of fairly complex URI
copied code in our tree.

The first few patches are code improvements mainly around g_auto, then the
patches to convert URI code over GUri. Obviously, it will take years before this
new API reaches old-stable distros. We may want to have a copy version of GUri,
instead of the current libxml copy as a fallback. Or we may want to keep both
current code and new GUri-based code side-by-side. I am more in favour of the
second approach, given that GUri is fresh, and may have subtle parsing
differences that better being spotted and fixed from unstable/newer distros
first. Maintaining the two side-by-side for some while shouldn't be a big
burdden, as they have a lot of similarities, and the code around it is pretty
stable.

thanks

Marc-André Lureau (13):
  uri: add g_auto macros for URI & QueryParams
  block/nbd: auto-ify URI parsing variables
  block/vxhs: auto-ify URI parsing variables
  block/sheepdog: auto-ify URI parsing variables
  block/ssh: auto-ify URI parsing variables
  block/nfs: auto-ify URI parsing variables
  block/gluster: auto-ify URI parsing variables
  build-sys: add HAVE_GLIB_GURI
  nbd: add GUri-based URI parsing version
  sheepdog: add GUri-based URI parsing
  nfs: add GUri-based URI parsing
  gluster: add GUri-based URI parsing
  ssh: add GUri-based URI parsing

 configure          |   7 +++
 include/qemu/uri.h |   3 +
 block/gluster.c    | 102 +++++++++++++++++++-----------
 block/nbd.c        | 109 +++++++++++++++++++++-----------
 block/nfs.c        | 126 ++++++++++++++++++++++---------------
 block/sheepdog.c   | 153 +++++++++++++++++++++++++++------------------
 block/ssh.c        |  94 +++++++++++++++++++---------
 block/vxhs.c       |  10 +--
 util/Makefile.objs |   2 +-
 9 files changed, 383 insertions(+), 223 deletions(-)