};
-typedef int (*virNWFilterTechDrvInit)(void);
+typedef int (*virNWFilterTechDrvInit)(bool privileged);
typedef void (*virNWFilterTechDrvShutdown)(void);
enum virDomainNetType;
if (virNWFilterLearnInit() < 0)
return -1;
- virNWFilterTechDriversInit();
+ virNWFilterTechDriversInit(privileged);
if (virNWFilterConfLayerInit(virNWFilterDomainFWUpdateCB) < 0)
goto conf_init_err;
#define COMMENT_VARNAME "comment"
static int ebtablesRemoveBasicRules(const char *ifname);
-static int ebiptablesDriverInit(void);
+static int ebiptablesDriverInit(bool privileged);
static void ebiptablesDriverShutdown(void);
static int ebtablesCleanAll(const char *ifname);
static int ebiptablesAllTeardown(const char *ifname);
static int
-ebiptablesDriverInit(void)
+ebiptablesDriverInit(bool privileged)
{
virBuffer buf = VIR_BUFFER_INITIALIZER;
int cli_status;
+ if (!privileged)
+ return 0;
+
if (virMutexInit(&execCLIMutex))
return EINVAL;
static void
-ebiptablesDriverShutdown()
+ebiptablesDriverShutdown(void)
{
VIR_FREE(gawk_cmd_path);
VIR_FREE(grep_cmd_path);
};
-void virNWFilterTechDriversInit() {
+void virNWFilterTechDriversInit(bool privileged) {
int i = 0;
while (filter_tech_drivers[i]) {
if (!(filter_tech_drivers[i]->flags & TECHDRV_FLAG_INITIALIZED))
- filter_tech_drivers[i]->init();
+ filter_tech_drivers[i]->init(privileged);
i++;
}
}
-void virNWFilterTechDriversShutdown() {
+void virNWFilterTechDriversShutdown(void) {
int i = 0;
while (filter_tech_drivers[i]) {
if ((filter_tech_drivers[i]->flags & TECHDRV_FLAG_INITIALIZED))
int virNWFilterRuleInstAddData(virNWFilterRuleInstPtr res,
void *data);
-void virNWFilterTechDriversInit(void);
+void virNWFilterTechDriversInit(bool privileged);
void virNWFilterTechDriversShutdown(void);
enum instCase {