* Initialization function for the QEmu daemon
*/
static int
-nwfilterDriverStartup(bool privileged ATTRIBUTE_UNUSED,
+nwfilterDriverStartup(bool privileged,
virStateInhibitCallback callback ATTRIBUTE_UNUSED,
void *opaque ATTRIBUTE_UNUSED)
{
goto err_free_driverstate;
driverState->watchingFirewallD = (sysbus != NULL);
+ driverState->privileged = privileged;
if (!privileged)
return 0;
return -1;
}
+ if (!driverState->privileged)
+ return 0;
+
conn = virConnectOpen("qemu:///system");
if (conn) {
if (!driverState)
return -1;
- virNWFilterConfLayerShutdown();
- virNWFilterTechDriversShutdown();
- virNWFilterDHCPSnoopShutdown();
- virNWFilterLearnShutdown();
- virNWFilterIPAddrMapShutdown();
+ if (driverState->privileged) {
+ virNWFilterConfLayerShutdown();
+ virNWFilterTechDriversShutdown();
+ virNWFilterDHCPSnoopShutdown();
+ virNWFilterLearnShutdown();
+ virNWFilterIPAddrMapShutdown();
- nwfilterDriverLock(driverState);
+ nwfilterDriverLock(driverState);
- nwfilterDriverRemoveDBusMatches();
+ nwfilterDriverRemoveDBusMatches();
- /* free inactive nwfilters */
- virNWFilterObjListFree(&driverState->nwfilters);
+ /* free inactive nwfilters */
+ virNWFilterObjListFree(&driverState->nwfilters);
+
+ VIR_FREE(driverState->configDir);
+ nwfilterDriverUnlock(driverState);
+ }
- VIR_FREE(driverState->configDir);
- nwfilterDriverUnlock(driverState);
virMutexDestroy(&driverState->lock);
VIR_FREE(driverState);