]> xenbits.xensource.com Git - libvirt.git/commitdiff
Rebuild network filter for UML guests on updates
authorSoren Hansen <soren@linux2go.dk>
Tue, 14 Sep 2010 08:07:43 +0000 (10:07 +0200)
committerEric Blake <eblake@redhat.com>
Tue, 14 Sep 2010 15:17:41 +0000 (09:17 -0600)
When nwfilter support was added to UML, I didn't realise the UML driver
needed instrumentation to make updating nwfilters on the fly work. This
patch adds this bit of glue.

Signed-off-by: Soren Hansen <soren@linux2go.dk>
src/uml/uml_driver.c

index 40345d58034861962beacf8b85faa9e4e10bfb2a..9101928bffd8f7c2b59f517aeaa54b999c8e9c47 100644 (file)
@@ -2198,6 +2198,18 @@ static virDriver umlDriver = {
     NULL, /* qemuDomainMonitorCommand */
 };
 
+static int
+umlVMFilterRebuild(virConnectPtr conn ATTRIBUTE_UNUSED,
+                   virHashIterator iter, void *data)
+{
+    struct uml_driver *driver = uml_driver;
+
+    umlDriverLock(driver);
+    virHashForEach(uml_driver->domains.objs, iter, data);
+    umlDriverUnlock(driver);
+
+    return 0;
+}
 
 static virStateDriver umlStateDriver = {
     .name = "UML",
@@ -2207,8 +2219,14 @@ static virStateDriver umlStateDriver = {
     .active = umlActive,
 };
 
+static virNWFilterCallbackDriver umlCallbackDriver = {
+    .name = "UML",
+    .vmFilterRebuild = umlVMFilterRebuild,
+};
+
 int umlRegister(void) {
     virRegisterDriver(&umlDriver);
     virRegisterStateDriver(&umlStateDriver);
+    virNWFilterRegisterCallbackDriver(&umlCallbackDriver);
     return 0;
 }