Attached is a simple patch to fix a problem I ran into when using the ruby-libvirt bindings with libvirt 0.4.3. Basically, if you call any of the virConnectList* functions with a "max" of 0, it returns "Invalid Arg". To get around this, modify the ruby-libvirt bindings to return an empty list if we get num == 0 when calling the corresponding virConnectNumOf* function. This should solve: https://bugzilla.redhat.com/show_bug.cgi?id=451666 Signed-off-by: Chris Lalancette <clalance@xxxxxxxxxx>
diff -r b02171cfad7d ext/libvirt/_libvirt.c --- a/ext/libvirt/_libvirt.c Wed Apr 16 09:47:27 2008 -0700 +++ b/ext/libvirt/_libvirt.c Tue Jun 17 11:06:26 2008 +0200 @@ -256,7 +256,11 @@ static VALUE vol_new(virStorageVolPtr n, \ num = virConnectNumOf##objs(conn); \ _E(num < 0, create_error(e_RetrieveError, "virConnectNumOf" # objs, "", conn)); \ - \ + if (num == 0) { \ + /* if num is 0, don't call virConnectList* function */ \ + result = rb_ary_new2(num); \ + return result; \ + } \ names = ALLOC_N(char *, num); \ r = virConnectList##objs(conn, names, num); \ if (r < 0) { \
-- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list