static char *iptables_cmd_path;
static char *ip6tables_cmd_path;
static char *grep_cmd_path;
-static char *awk_cmd_path;
#define PRINT_ROOT_CHAIN(buf, prefix, ifname) \
snprintf(buf, sizeof(buf), "libvirt-%c-%s", prefix, ifname)
int stopOnError)
{
virBufferAsprintf(buf,
- "res=$($IPT -L %s -n --line-number | "
- "%s \" %s \")\n"
+ "res=$($IPT -L %s -n --line-number | %s '%s')\n"
"if [ $? -ne 0 ]; then\n"
" $IPT -I %s %d -j %s\n"
"else\n"
- " r=$(echo $res | %s '{print $1}')\n"
+ " set dummy $res; r=$2\n"
" if [ \"${r}\" != \"%d\" ]; then\n"
" " CMD_DEF("$IPT -I %s %d -j %s") CMD_SEPARATOR
" " CMD_EXEC
" fi\n"
"fi\n",
- syschain,
- grep_cmd_path, udchain,
+ syschain, grep_cmd_path, udchain,
syschain, pos, udchain,
- awk_cmd_path,
pos,
if (virMutexInit(&execCLIMutex) < 0)
return -EINVAL;
- awk_cmd_path = virFindFileInPath("awk");
grep_cmd_path = virFindFileInPath("grep");
/*
/* ip(6)tables support needs awk & grep, ebtables doesn't */
if ((iptables_cmd_path != NULL || ip6tables_cmd_path != NULL) &&
- (!grep_cmd_path || !awk_cmd_path)) {
+ !grep_cmd_path) {
VIR_ERROR(_("essential tools to support ip(6)tables "
"firewalls could not be located"));
VIR_FREE(iptables_cmd_path);
static void
ebiptablesDriverShutdown(void)
{
- VIR_FREE(awk_cmd_path);
VIR_FREE(grep_cmd_path);
VIR_FREE(ebtables_cmd_path);
VIR_FREE(iptables_cmd_path);