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(-) -- 2.27.0.221.ga08a83db2b