static void ebiptablesDriverShutdown(void);
static int ebtablesCleanAll(const char *ifname);
+static virMutex execCLIMutex;
struct ushort_map {
unsigned short attr;
return 1;
argv[0] = filename;
+
+ virMutexLock(&execCLIMutex);
+
rc = virRun(argv, status);
+ virMutexUnlock(&execCLIMutex);
+
*status >>= 8;
VIR_DEBUG("rc = %d, status = %d",rc, *status);
ebiptablesExecCLI(&buf, &cli_status);
virNWFilterReportError(VIR_ERR_BUILD_FIREWALL,
- "%s",
- _("Some rules could not be created."));
+ _("Some rules could not be created for "
+ "interface %s."),
+ ifname);
return 1;
}
virBuffer buf = VIR_BUFFER_INITIALIZER;
int cli_status;
+ if (virMutexInit(&execCLIMutex))
+ return EINVAL;
+
bash_cmd_path = virFindFileInPath("bash");
gawk_cmd_path = virFindFileInPath("gawk");
grep_cmd_path = virFindFileInPath("grep");