summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extensions/libipt_osf.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/extensions/libipt_osf.c b/extensions/libipt_osf.c
index e3610fce..67474046 100644
--- a/extensions/libipt_osf.c
+++ b/extensions/libipt_osf.c
@@ -35,14 +35,15 @@
static void help(void)
{
- printf("OS fingerprint match v%s options:\n"
+ printf("OS fingerprint match options:\n"
"--genre [!] string Match a OS genre by passive fingerprinting.\n"
"--smart Use some smart extensions to determine OS (do not use TTL).\n"
"--log level Log all(or only first) determined genres even if "
"they do not match desired one. "
"Level may be 0(all) or 1(only first entry).\n"
"--netlink Log through netlink(NETLINK_NFLOG).\n",
- IPTABLES_VERSION);
+ "--connector Log through kernel connector [in 2.6.12-mm+].\n"
+ );
}
@@ -51,6 +52,7 @@ static struct option opts[] = {
{ .name = "smart", .has_arg = 0, .flag = 0, .val = '2' },
{ .name = "log", .has_arg = 1, .flag = 0, .val = '3' },
{ .name = "netlink", .has_arg = 0, .flag = 0, .val = '4' },
+ { .name = "connector", .has_arg = 0, .flag = 0, .val = '5' },
{ .name = 0 }
};
@@ -97,10 +99,16 @@ static int parse(int c, char **argv, int invert, unsigned int *flags,
break;
case '4': /* --netlink */
if (*flags & IPT_OSF_NETLINK)
- exit_error(PARAMETER_PROBLEM, "Can't specify multiple smart parameter");
+ exit_error(PARAMETER_PROBLEM, "Can't specify multiple netlink parameter");
*flags |= IPT_OSF_NETLINK;
info->flags |= IPT_OSF_NETLINK;
break;
+ case '5': /* --connector */
+ if (*flags & IPT_OSF_CONNECTOR)
+ exit_error(PARAMETER_PROBLEM, "Can't specify multiple connector parameter");
+ *flags |= IPT_OSF_CONNECTOR;
+ info->flags |= IPT_OSF_CONNECTOR;
+ break;
default:
return 0;
}