{
printf(
"multiport v%s options:\n"
-" --source-ports port[,port:port,port...]\n"
+" --source-ports [!] port[,port:port,port...]\n"
" --sports ...\n"
" match source port(s)\n"
-" --destination-ports port[,port:port,port...]\n"
+" --destination-ports [!] port[,port:port,port...]\n"
" --dports ...\n"
" match destination port(s)\n"
-" --ports port[,port:port,port]\n"
+" --ports [!] port[,port:port,port]\n"
" match both source and destination port(s)\n",
IPTABLES_VERSION);
}
}
if (invert)
- exit_error(PARAMETER_PROBLEM,
- "multiport does not support invert");
+ multiinfo->invert = 1;
if (*flags)
exit_error(PARAMETER_PROBLEM,
break;
}
+ if (multiinfo->invert)
+ printf("! ");
+
for (i=0; i < multiinfo->count; i++) {
printf("%s", i ? "," : "");
print_port(multiinfo->ports[i], ip->proto, numeric);
break;
}
+ if (multiinfo->invert)
+ printf("! ");
+
for (i=0; i < multiinfo->count; i++) {
printf("%s", i ? "," : "");
print_port(multiinfo->ports[i], ip->proto, 1);