]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
add support for netlink reporting to ipt_osf (Evgeniy Polyakov)
authorEvgeniy Polyakov <johnpol@2ka.mipt.ru>
Sun, 29 Feb 2004 21:19:30 +0000 (21:19 +0000)
committerHarald Welte <laforge@gnumonks.org>
Sun, 29 Feb 2004 21:19:30 +0000 (21:19 +0000)
extensions/libipt_osf.c

index 38a49b38c93552b6749b1438495caaed3a2c3401..3c758c21b69cfa5a83fc6a6875474f42f6231a0f 100644 (file)
@@ -33,8 +33,6 @@
 #include <iptables.h>
 #include <linux/netfilter_ipv4/ipt_osf.h>
 
-#define IPTABLES_VERSION       "1.2.6a" /* It looks like FIXME */
-
 static void help(void)
 {
        printf("OS fingerprint match v%s options:\n"
@@ -42,7 +40,8 @@ static void help(void)
                "--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",
+                                       "Level may be 0(all) or 1(only first entry).\n"
+               "--netlink              Log through netlink(NETLINK_NFLOG).\n",
                IPTABLES_VERSION);
 }
 
@@ -51,6 +50,7 @@ static struct option opts[] = {
        { .name = "genre",      .has_arg = 1, .flag = 0, .val = '1' },
        { .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 = 0 }
 };
 
@@ -102,6 +102,12 @@ static int parse(int c, char **argv, int invert, unsigned int *flags,
                        info->loglevel = atoi(argv[optind-1]);
                        info->flags |= IPT_OSF_LOG;
                        break;
+               case '4': /* --netlink */
+                       if (*flags & IPT_OSF_NETLINK)
+                               exit_error(PARAMETER_PROBLEM, "Can't specify multiple smart parameter");
+                       *flags |= IPT_OSF_NETLINK;
+                       info->flags |= IPT_OSF_NETLINK;
+                       break;
                default:
                        return 0;
        }