]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: Add a return value to void hash iterators
authorErik Skultety <eskultet@redhat.com>
Fri, 12 Feb 2016 09:03:50 +0000 (10:03 +0100)
committerErik Skultety <eskultet@redhat.com>
Wed, 17 Feb 2016 11:46:34 +0000 (12:46 +0100)
Our existing virHashForEach method iterates through all items disregarding the
fact, that some of the iterators might have actually failed. Errors are usually
dispatched through an error element in opaque data which then causes the
original caller of virHashForEach to return -1. In that case, virHashForEach
could return as soon as one of the iterators fail. This patch changes the
iterator return type and adjusts all of its instances accordingly, so the
actual refactor of virHashForEach method can be dealt with later.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
18 files changed:
src/conf/network_conf.c
src/conf/nwfilter_params.c
src/conf/snapshot_conf.c
src/conf/virchrdev.c
src/conf/virdomainobjlist.c
src/locking/lock_daemon.c
src/nwfilter/nwfilter_dhcpsnoop.c
src/nwfilter/nwfilter_gentech_driver.c
src/qemu/qemu_domain.c
src/qemu/qemu_domain.h
src/qemu/qemu_driver.c
src/test/test_driver.c
src/uml/uml_driver.c
src/util/virclosecallbacks.c
src/util/virhash.c
src/util/virhash.h
src/xen/xm_internal.c
tests/virhashtest.c

index 0ffb3253e8c270493b1637ec5f8281c14ea379f8..6300178ccd3ee2f4039f35c2203117b1858ea4e4 100644 (file)
@@ -4399,7 +4399,7 @@ struct virNetworkObjListData {
     bool error;
 };
 
-static void
+static int
 virNetworkObjListPopulate(void *payload,
                           const void *name ATTRIBUTE_UNUSED,
                           void *opaque)
@@ -4409,7 +4409,7 @@ virNetworkObjListPopulate(void *payload,
     virNetworkPtr net = NULL;
 
     if (data->error)
-        return;
+        return 0;
 
     virObjectLock(obj);
 
@@ -4434,6 +4434,7 @@ virNetworkObjListPopulate(void *payload,
 
  cleanup:
     virObjectUnlock(obj);
+    return 0;
 }
 
 int
@@ -4478,7 +4479,7 @@ struct virNetworkObjListForEachHelperData {
     int ret;
 };
 
-static void
+static int
 virNetworkObjListForEachHelper(void *payload,
                                const void *name ATTRIBUTE_UNUSED,
                                void *opaque)
@@ -4487,6 +4488,7 @@ virNetworkObjListForEachHelper(void *payload,
 
     if (data->callback(payload, data->opaque) < 0)
         data->ret = -1;
+    return 0;
 }
 
 /**
@@ -4524,7 +4526,7 @@ struct virNetworkObjListGetHelperData {
     bool error;
 };
 
-static void
+static int
 virNetworkObjListGetHelper(void *payload,
                            const void *name ATTRIBUTE_UNUSED,
                            void *opaque)
@@ -4533,11 +4535,11 @@ virNetworkObjListGetHelper(void *payload,
     virNetworkObjPtr obj = payload;
 
     if (data->error)
-        return;
+        return 0;
 
     if (data->nnames >= 0 &&
         data->got == data->nnames)
-        return;
+        return 0;
 
     virObjectLock(obj);
 
@@ -4557,6 +4559,7 @@ virNetworkObjListGetHelper(void *payload,
 
  cleanup:
     virObjectUnlock(obj);
+    return 0;
 }
 
 int
index b6c6e78ee68074623e92da87bc668bf3ee0a8b1f..496ffdabf8c99d0920c39a75f9b0482405ec7d2c 100644 (file)
@@ -709,19 +709,19 @@ struct addToTableStruct {
 };
 
 
-static void
+static int
 addToTable(void *payload, const void *name, void *data)
 {
     struct addToTableStruct *atts = (struct addToTableStruct *)data;
     virNWFilterVarValuePtr val;
 
     if (atts->errOccurred)
-        return;
+        return 0;
 
     val = virNWFilterVarValueCopy((virNWFilterVarValuePtr)payload);
     if (!val) {
         atts->errOccurred = 1;
-        return;
+        return 0;
     }
 
     if (virNWFilterHashTablePut(atts->target, (const char *)name, val) < 0) {
@@ -731,6 +731,8 @@ addToTable(void *payload, const void *name, void *data)
         atts->errOccurred = 1;
         virNWFilterVarValueFree(val);
     }
+
+    return 0;
 }
 
 
index 58646bd982d37c8f4b57100c94eb96b16ea220ce..c7794e9b1970fd15e4c6b2c85428f6a3f5083254 100644 (file)
@@ -844,48 +844,49 @@ struct virDomainSnapshotNameData {
     bool error;
 };
 
-static void virDomainSnapshotObjListCopyNames(void *payload,
-                                              const void *name ATTRIBUTE_UNUSED,
-                                              void *opaque)
+static int virDomainSnapshotObjListCopyNames(void *payload,
+                                             const void *name ATTRIBUTE_UNUSED,
+                                             void *opaque)
 {
     virDomainSnapshotObjPtr obj = payload;
     struct virDomainSnapshotNameData *data = opaque;
 
     if (data->error)
-        return;
+        return 0;
     /* Caller already sanitized flags.  Filtering on DESCENDANTS was
      * done by choice of iteration in the caller.  */
     if ((data->flags & VIR_DOMAIN_SNAPSHOT_LIST_LEAVES) && obj->nchildren)
-        return;
+        return 0;
     if ((data->flags & VIR_DOMAIN_SNAPSHOT_LIST_NO_LEAVES) && !obj->nchildren)
-        return;
+        return 0;
 
     if (data->flags & VIR_DOMAIN_SNAPSHOT_FILTERS_STATUS) {
         if (!(data->flags & VIR_DOMAIN_SNAPSHOT_LIST_INACTIVE) &&
             obj->def->state == VIR_DOMAIN_SHUTOFF)
-            return;
+            return 0;
         if (!(data->flags & VIR_DOMAIN_SNAPSHOT_LIST_DISK_ONLY) &&
             obj->def->state == VIR_DOMAIN_DISK_SNAPSHOT)
-            return;
+            return 0;
         if (!(data->flags & VIR_DOMAIN_SNAPSHOT_LIST_ACTIVE) &&
             obj->def->state != VIR_DOMAIN_SHUTOFF &&
             obj->def->state != VIR_DOMAIN_DISK_SNAPSHOT)
-            return;
+            return 0;
     }
 
     if ((data->flags & VIR_DOMAIN_SNAPSHOT_LIST_INTERNAL) &&
         virDomainSnapshotIsExternal(obj))
-        return;
+        return 0;
     if ((data->flags & VIR_DOMAIN_SNAPSHOT_LIST_EXTERNAL) &&
         !virDomainSnapshotIsExternal(obj))
-        return;
+        return 0;
 
     if (data->names && data->count < data->maxnames &&
         VIR_STRDUP(data->names[data->count], obj->def->name) < 0) {
         data->error = true;
-        return;
+        return 0;
     }
     data->count++;
+    return 0;
 }
 
 int
@@ -1012,7 +1013,7 @@ struct snapshot_act_on_descendant {
     void *data;
 };
 
-static void
+static int
 virDomainSnapshotActOnDescendant(void *payload,
                                  const void *name,
                                  void *data)
@@ -1024,6 +1025,7 @@ virDomainSnapshotActOnDescendant(void *payload,
                                                            curr->iter,
                                                            curr->data);
     (curr->iter)(payload, name, curr->data);
+    return 0;
 }
 
 /* Run iter(data) on all descendants of snapshot, while ignoring all
@@ -1055,7 +1057,7 @@ struct snapshot_set_relation {
     virDomainSnapshotObjListPtr snapshots;
     int err;
 };
-static void
+static int
 virDomainSnapshotSetRelations(void *payload,
                               const void *name ATTRIBUTE_UNUSED,
                               void *data)
@@ -1085,6 +1087,7 @@ virDomainSnapshotSetRelations(void *payload,
     obj->parent->nchildren++;
     obj->sibling = obj->parent->first_child;
     obj->parent->first_child = obj;
+    return 0;
 }
 
 /* Populate parent link and child count of all snapshots, with all
index 701b326fb26e77e978232de4cc42c04a73e749bb..bca9c37d427ee3bde2b59c60c7d51798959e9490 100644 (file)
@@ -292,13 +292,14 @@ virChrdevsPtr virChrdevAlloc(void)
 /**
  * Helper to clear stream callbacks when freeing the hash
  */
-static void virChrdevFreeClearCallbacks(void *payload,
-                                         const void *name ATTRIBUTE_UNUSED,
-                                         void *data ATTRIBUTE_UNUSED)
+static int virChrdevFreeClearCallbacks(void *payload,
+                                       const void *name ATTRIBUTE_UNUSED,
+                                       void *data ATTRIBUTE_UNUSED)
 {
     virStreamPtr st = payload;
 
     virFDStreamSetInternalCloseCb(st, NULL, NULL, NULL);
+    return 0;
 }
 
 /**
index 61fe468fde26faa4789ddf084aa07add2296c8be..05c532a3ba326cc0245e46dc9d71eb3da253aac1 100644 (file)
@@ -607,7 +607,7 @@ struct virDomainObjListData {
 };
 
 
-static void
+static int
 virDomainObjListCount(void *payload,
                       const void *name ATTRIBUTE_UNUSED,
                       void *opaque)
@@ -627,6 +627,7 @@ virDomainObjListCount(void *payload,
     }
  cleanup:
     virObjectUnlock(obj);
+    return 0;
 }
 
 
@@ -653,7 +654,7 @@ struct virDomainIDData {
 };
 
 
-static void
+static int
 virDomainObjListCopyActiveIDs(void *payload,
                               const void *name ATTRIBUTE_UNUSED,
                               void *opaque)
@@ -668,6 +669,7 @@ virDomainObjListCopyActiveIDs(void *payload,
         data->ids[data->numids++] = obj->def->id;
  cleanup:
     virObjectUnlock(obj);
+    return 0;
 }
 
 
@@ -697,7 +699,7 @@ struct virDomainNameData {
 };
 
 
-static void
+static int
 virDomainObjListCopyInactiveNames(void *payload,
                                   const void *name ATTRIBUTE_UNUSED,
                                   void *opaque)
@@ -706,7 +708,7 @@ virDomainObjListCopyInactiveNames(void *payload,
     struct virDomainNameData *data = opaque;
 
     if (data->oom)
-        return;
+        return 0;
 
     virObjectLock(obj);
     if (data->filter &&
@@ -720,6 +722,7 @@ virDomainObjListCopyInactiveNames(void *payload,
     }
  cleanup:
     virObjectUnlock(obj);
+    return 0;
 }
 
 
@@ -753,7 +756,7 @@ struct virDomainListIterData {
 };
 
 
-static void
+static int
 virDomainObjListHelper(void *payload,
                        const void *name ATTRIBUTE_UNUSED,
                        void *opaque)
@@ -762,6 +765,7 @@ virDomainObjListHelper(void *payload,
 
     if (data->callback(payload, data->opaque) < 0)
         data->ret = -1;
+    return 0;
 }
 
 
@@ -850,7 +854,7 @@ struct virDomainListData {
 };
 
 
-static void
+static int
 virDomainObjListCollectIterator(void *payload,
                                 const void *name ATTRIBUTE_UNUSED,
                                 void *opaque)
@@ -858,6 +862,7 @@ virDomainObjListCollectIterator(void *payload,
     struct virDomainListData *data = opaque;
 
     data->vms[data->nvms++] = virObjectRef(payload);
+    return 0;
 }
 
 
index a5a40fef5a205f889b2a1067f7da3efd8a3dd0da..23f52b5f8e30f905e2d90ecd68f41fe37dd0056d 100644 (file)
@@ -649,7 +649,7 @@ struct virLockDaemonClientReleaseData {
     bool gotError;
 };
 
-static void
+static int
 virLockDaemonClientReleaseLockspace(void *payload,
                                     const void *name ATTRIBUTE_UNUSED,
                                     void *opaque)
@@ -664,6 +664,7 @@ virLockDaemonClientReleaseLockspace(void *payload,
         data->hadSomeLeases = true;
     else if (rc < 0)
         data->gotError = true;
+    return 0;
 }
 
 
index 7dbf467fe8d90571f2ec43e8cc2eeba46a8b82f9..c671cd88184d0f034e9a83981881f0d29465e46a 100644 (file)
@@ -1864,7 +1864,7 @@ virNWFilterSnoopPruneIter(const void *payload,
  * Iterator to write all leases of a single request to a file.
  * Call this function with the SnoopLock held.
  */
-static void
+static int
 virNWFilterSnoopSaveIter(void *payload,
                          const void *name ATTRIBUTE_UNUSED,
                          void *data)
@@ -1880,6 +1880,7 @@ virNWFilterSnoopSaveIter(void *payload,
         ignore_value(virNWFilterSnoopLeaseFileWrite(tfd, req->ifkey, ipl));
 
     virNWFilterSnoopReqUnlock(req);
+    return 0;
 }
 
 /*
index 5a4cff142ef9cfe31d60b7864048e897a6db5754..761a01b1c2e67d29881e8a65854c9bcdb21ce895 100644 (file)
@@ -219,19 +219,20 @@ struct printString
 };
 
 
-static void
+static int
 printString(void *payload ATTRIBUTE_UNUSED, const void *name, void *data)
 {
     struct printString *ps = data;
 
     if ((STREQ((char *)name, NWFILTER_STD_VAR_IP) && !ps->reportIP) ||
         (STREQ((char *)name, NWFILTER_STD_VAR_MAC) && !ps->reportMAC))
-        return;
+        return 0;
 
     if (virBufferUse(&ps->buf) && ps->separator)
         virBufferAdd(&ps->buf, ps->separator, -1);
 
     virBufferAdd(&ps->buf, name, -1);
+    return 0;
 }
 
 /**
index 7223b9e296c92686fc568e7e05d0d3471b774714..c6ff0da6d9a096704b1fbf0568e47ef1fa046ab8 100644 (file)
@@ -2836,9 +2836,9 @@ qemuDomainSnapshotDiscard(virQEMUDriverPtr driver,
 }
 
 /* Hash iterator callback to discard multiple snapshots.  */
-void qemuDomainSnapshotDiscardAll(void *payload,
-                                  const void *name ATTRIBUTE_UNUSED,
-                                  void *data)
+int qemuDomainSnapshotDiscardAll(void *payload,
+                                 const void *name ATTRIBUTE_UNUSED,
+                                 void *data)
 {
     virDomainSnapshotObjPtr snap = payload;
     virQEMUSnapRemovePtr curr = data;
@@ -2850,6 +2850,7 @@ void qemuDomainSnapshotDiscardAll(void *payload,
                                     curr->metadata_only);
     if (err && !curr->err)
         curr->err = err;
+    return 0;
 }
 
 int
index f0b47e78a685289e61cef95ee5394fa7e54e5c56..e4b1e8bb9225b4c8976fbff7562007bd80b5a8f4 100644 (file)
@@ -401,9 +401,9 @@ struct _virQEMUSnapRemove {
     bool current;
 };
 
-void qemuDomainSnapshotDiscardAll(void *payload,
-                                  const void *name,
-                                  void *data);
+int qemuDomainSnapshotDiscardAll(void *payload,
+                                 const void *name,
+                                 void *data);
 
 int qemuDomainSnapshotDiscardAllMetadata(virQEMUDriverPtr driver,
                                          virDomainObjPtr vm);
index 77f4baa4302d5fa757c56a434b5e822c4bea580a..a7ab6deda69cff8b09d55dff0010933eb2a198ce 100644 (file)
@@ -2240,7 +2240,7 @@ qemuDomainReset(virDomainPtr dom, unsigned int flags)
 
 
 /* Count how many snapshots in a set are external snapshots or checkpoints.  */
-static void
+static int
 qemuDomainSnapshotCountExternal(void *payload,
                                 const void *name ATTRIBUTE_UNUSED,
                                 void *data)
@@ -2250,6 +2250,7 @@ qemuDomainSnapshotCountExternal(void *payload,
 
     if (virDomainSnapshotIsExternal(snap))
         (*count)++;
+    return 0;
 }
 
 static int
@@ -10770,7 +10771,7 @@ qemuDomainBlockResize(virDomainPtr dom,
 }
 
 
-static void
+static int
 qemuDomainBlockStatsGatherTotals(void *payload,
                                  const void *name ATTRIBUTE_UNUSED,
                                  void *opaque)
@@ -10791,6 +10792,7 @@ qemuDomainBlockStatsGatherTotals(void *payload,
     QEMU_BLOCK_STAT_TOTAL(rd_total_times);
     QEMU_BLOCK_STAT_TOTAL(flush_total_times);
 #undef QEMU_BLOCK_STAT_TOTAL
+    return 0;
 }
 
 
@@ -15548,7 +15550,7 @@ struct _virQEMUSnapReparent {
 };
 
 
-static void
+static int
 qemuDomainSnapshotReparentChildren(void *payload,
                                    const void *name ATTRIBUTE_UNUSED,
                                    void *data)
@@ -15557,7 +15559,7 @@ qemuDomainSnapshotReparentChildren(void *payload,
     virQEMUSnapReparentPtr rep = data;
 
     if (rep->err < 0)
-        return;
+        return 0;
 
     VIR_FREE(snap->def->parent);
     snap->parent = rep->parent;
@@ -15565,7 +15567,7 @@ qemuDomainSnapshotReparentChildren(void *payload,
     if (rep->parent->def &&
         VIR_STRDUP(snap->def->parent, rep->parent->def->name) < 0) {
         rep->err = -1;
-        return;
+        return 0;
     }
 
     if (!snap->sibling)
@@ -15573,6 +15575,7 @@ qemuDomainSnapshotReparentChildren(void *payload,
 
     rep->err = qemuDomainSnapshotWriteMetadata(rep->vm, snap, rep->caps,
                                                rep->cfg->snapshotDir);
+    return 0;
 }
 
 
index 727382ef1c243e7a4817bf9d47ab88d331b1ece7..21c66dbb66ab97dbc03caa1f203445cf9ae0dbbf 100644 (file)
@@ -6295,10 +6295,10 @@ struct _testSnapRemoveData {
     bool current;
 };
 
-static void
+static int
 testDomainSnapshotDiscardAll(void *payload,
-                          const void *name ATTRIBUTE_UNUSED,
-                          void *data)
+                             const void *name ATTRIBUTE_UNUSED,
+                             void *data)
 {
     virDomainSnapshotObjPtr snap = payload;
     testSnapRemoveDataPtr curr = data;
@@ -6306,6 +6306,7 @@ testDomainSnapshotDiscardAll(void *payload,
     if (snap->def->current)
         curr->current = true;
     virDomainSnapshotObjListRemove(curr->vm->snapshots, snap);
+    return 0;
 }
 
 typedef struct _testSnapReparentData testSnapReparentData;
@@ -6317,7 +6318,7 @@ struct _testSnapReparentData {
     virDomainSnapshotObjPtr last;
 };
 
-static void
+static int
 testDomainSnapshotReparentChildren(void *payload,
                                    const void *name ATTRIBUTE_UNUSED,
                                    void *data)
@@ -6326,7 +6327,7 @@ testDomainSnapshotReparentChildren(void *payload,
     testSnapReparentDataPtr rep = data;
 
     if (rep->err < 0)
-        return;
+        return 0;
 
     VIR_FREE(snap->def->parent);
     snap->parent = rep->parent;
@@ -6334,11 +6335,12 @@ testDomainSnapshotReparentChildren(void *payload,
     if (rep->parent->def &&
         VIR_STRDUP(snap->def->parent, rep->parent->def->name) < 0) {
         rep->err = -1;
-        return;
+        return 0;
     }
 
     if (!snap->sibling)
         rep->last = snap;
+    return 0;
 }
 
 static int
index b0dba5c82d2285113ad95752f086d3629cc635a1..d656704eb82106ad1dee9af9669e6c4f53edbc0a 100644 (file)
@@ -724,9 +724,9 @@ struct umlProcessAutoDestroyData {
     virConnectPtr conn;
 };
 
-static void umlProcessAutoDestroyDom(void *payload,
-                                     const void *name,
-                                     void *opaque)
+static int umlProcessAutoDestroyDom(void *payload,
+                                    const void *name,
+                                    void *opaque)
 {
     struct umlProcessAutoDestroyData *data = opaque;
     virConnectPtr conn = payload;
@@ -738,17 +738,17 @@ static void umlProcessAutoDestroyDom(void *payload,
     VIR_DEBUG("conn=%p uuidstr=%s thisconn=%p", conn, uuidstr, data->conn);
 
     if (data->conn != conn)
-        return;
+        return 0;
 
     if (virUUIDParse(uuidstr, uuid) < 0) {
         VIR_WARN("Failed to parse %s", uuidstr);
-        return;
+        return 0;
     }
 
     if (!(dom = virDomainObjListFindByUUID(data->driver->domains,
                                            uuid))) {
         VIR_DEBUG("No domain object to kill");
-        return;
+        return 0;
     }
 
     VIR_DEBUG("Killing domain");
@@ -766,6 +766,7 @@ static void umlProcessAutoDestroyDom(void *payload,
     if (event)
         umlDomainEventQueue(data->driver, event);
     virHashRemoveEntry(data->driver->autodestroy, uuidstr);
+    return 0;
 }
 
 /*
index 9006d361e514878af892243644e3b1654594ad6a..82d40717a30fdc450ad419a5da136f084702f326 100644 (file)
@@ -252,7 +252,7 @@ struct virCloseCallbacksData {
     bool oom;
 };
 
-static void
+static int
 virCloseCallbacksGetOne(void *payload,
                         const void *key,
                         void *opaque)
@@ -263,23 +263,24 @@ virCloseCallbacksGetOne(void *payload,
     unsigned char uuid[VIR_UUID_BUFLEN];
 
     if (virUUIDParse(uuidstr, uuid) < 0)
-        return;
+        return 0;
 
     VIR_DEBUG("conn=%p, thisconn=%p, uuid=%s, cb=%p",
               closeDef->conn, data->conn, uuidstr, closeDef->cb);
 
     if (data->conn != closeDef->conn || !closeDef->cb)
-        return;
+        return 0;
 
     if (VIR_EXPAND_N(data->list->entries,
                      data->list->nentries, 1) < 0) {
         data->oom = true;
-        return;
+        return 0;
     }
 
     memcpy(data->list->entries[data->list->nentries - 1].uuid,
            uuid, VIR_UUID_BUFLEN);
     data->list->entries[data->list->nentries - 1].callback = closeDef->cb;
+    return 0;
 }
 
 static virCloseCallbacksListPtr
index fab621ba91ba38d5816c854b684004baf5351210..d6f208eacc5f114ce07498b46fd4c8a63dc7e69e 100644 (file)
@@ -738,8 +738,8 @@ struct getKeysIter
     size_t arrayIdx;
 };
 
-static void virHashGetKeysIterator(void *payload,
-                                   const void *key, void *data)
+static int virHashGetKeysIterator(void *payload,
+                                  const void *key, void *data)
 {
     struct getKeysIter *iter = data;
 
@@ -747,6 +747,7 @@ static void virHashGetKeysIterator(void *payload,
     iter->sortArray[iter->arrayIdx].value = payload;
 
     iter->arrayIdx++;
+    return 0;
 }
 
 typedef int (*qsort_comp)(const void *, const void *);
index 50b9a04883122e187ccdbfb698f7d1d74025d6cc..ed6bba3db784e96e6deb17a9fe6106b9ad9965cf 100644 (file)
@@ -43,8 +43,10 @@ typedef void (*virHashDataFree) (void *payload, const void *name);
  * @data: user supplied data blob
  *
  * Callback to process a hash entry during iteration
+ *
+ * Returns -1 to stop the iteration, e.g. in case of an error
  */
-typedef void (*virHashIterator) (void *payload, const void *name, void *data);
+typedef int (*virHashIterator) (void *payload, const void *name, void *data);
 /**
  * virHashSearcher:
  * @payload: the data in the hash
index a0d6f74fcbf9f36babb8df5a473e95a5d811eeeb..ef1a460a2bf4e5bb1633f4bb8fc0ba3dd77b6d03 100644 (file)
@@ -1118,7 +1118,7 @@ struct xenXMListIteratorContext {
     char ** names;
 };
 
-static void
+static int
 xenXMListIterator(void *payload ATTRIBUTE_UNUSED,
                   const void *name,
                   void *data)
@@ -1127,10 +1127,10 @@ xenXMListIterator(void *payload ATTRIBUTE_UNUSED,
     virDomainDefPtr def = NULL;
 
     if (ctx->oom)
-        return;
+        return 0;
 
     if (ctx->count == ctx->max)
-        return;
+        return 0;
 
     def = xenDaemonLookupByName(ctx->conn, name);
     if (!def) {
@@ -1141,6 +1141,7 @@ xenXMListIterator(void *payload ATTRIBUTE_UNUSED,
     } else {
         virDomainDefFree(def);
     }
+    return 0;
 }
 
 
index 41f0e76e29246fb676ac4724faeb75776b1dbe3a..323c68e20a7b44f5563a1ed579f4ca23578f365d 100644 (file)
@@ -56,11 +56,12 @@ testHashInit(int size)
     return hash;
 }
 
-static void
+static int
 testHashCheckForEachCount(void *payload ATTRIBUTE_UNUSED,
                           const void *name ATTRIBUTE_UNUSED,
                           void *data ATTRIBUTE_UNUSED)
 {
+    return 0;
 }
 
 static int
@@ -183,7 +184,7 @@ testHashRemove(const void *data ATTRIBUTE_UNUSED)
 const int testHashCountRemoveForEachSome =
     ARRAY_CARDINALITY(uuids) - ARRAY_CARDINALITY(uuids_subset);
 
-static void
+static int
 testHashRemoveForEachSome(void *payload ATTRIBUTE_UNUSED,
                           const void *name,
                           void *data)
@@ -200,12 +201,13 @@ testHashRemoveForEachSome(void *payload ATTRIBUTE_UNUSED,
             break;
         }
     }
+    return 0;
 }
 
 
 const int testHashCountRemoveForEachAll = 0;
 
-static void
+static int
 testHashRemoveForEachAll(void *payload ATTRIBUTE_UNUSED,
                          const void *name,
                          void *data)
@@ -213,12 +215,13 @@ testHashRemoveForEachAll(void *payload ATTRIBUTE_UNUSED,
     virHashTablePtr hash = data;
 
     virHashRemoveEntry(hash, name);
+    return 0;
 }
 
 
 const int testHashCountRemoveForEachForbidden = ARRAY_CARDINALITY(uuids);
 
-static void
+static int
 testHashRemoveForEachForbidden(void *payload ATTRIBUTE_UNUSED,
                                const void *name,
                                void *data)
@@ -238,6 +241,7 @@ testHashRemoveForEachForbidden(void *payload ATTRIBUTE_UNUSED,
             break;
         }
     }
+    return 0;
 }
 
 
@@ -302,15 +306,15 @@ testHashSteal(const void *data ATTRIBUTE_UNUSED)
 }
 
 
-static void
+static int
 testHashIter(void *payload ATTRIBUTE_UNUSED,
              const void *name ATTRIBUTE_UNUSED,
              void *data ATTRIBUTE_UNUSED)
 {
-    return;
+    return 0;
 }
 
-static void
+static int
 testHashForEachIter(void *payload ATTRIBUTE_UNUSED,
                     const void *name ATTRIBUTE_UNUSED,
                     void *data)
@@ -332,6 +336,7 @@ testHashForEachIter(void *payload ATTRIBUTE_UNUSED,
     if (virHashForEach(hash, testHashIter, NULL) >= 0)
         VIR_TEST_VERBOSE("\niterating through hash in ForEach"
                 " should be forbidden");
+    return 0;
 }
 
 static int