From 81adae9a58248bf0b027708cf9c5b0b7b2b956d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20Kis-Szab=C3=B3?= Date: Thu, 12 Apr 2001 15:35:32 +0000 Subject: integrated the ip6_agr match from Kis-Szabo Andras --- extensions/.agr-test6 | 2 ++ extensions/libip6t_agr.c | 86 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100755 extensions/.agr-test6 create mode 100644 extensions/libip6t_agr.c (limited to 'extensions') diff --git a/extensions/.agr-test6 b/extensions/.agr-test6 new file mode 100755 index 00000000..eab5de3f --- /dev/null +++ b/extensions/.agr-test6 @@ -0,0 +1,2 @@ +#!/bin/sh +[ -f $KERNEL_DIR/net/ipv6/netfilter/ip6t_agr.c ] && echo agr diff --git a/extensions/libip6t_agr.c b/extensions/libip6t_agr.c new file mode 100644 index 00000000..676f9e6c --- /dev/null +++ b/extensions/libip6t_agr.c @@ -0,0 +1,86 @@ +/* Shared library add-on to ip6tables to add MAC address checking support. */ +#include +#include +#include +#include +#include +#if defined(__GLIBC__) && __GLIBC__ == 2 +#include +#else +#include +#endif +#include + +/* Function which prints out usage message. */ +static void +help(void) +{ + printf( +"AGR v%s options:\n" +" This module hasn't got any option\n" +" This module checks for aggregated IPv6 addresses\n" +"\n", NETFILTER_VERSION); +} + +static struct option opts[] = { + {0} +}; + +/* Initialize the match. */ +static void +init(struct ip6t_entry_match *m, unsigned int *nfcache) +{ + /* Can't cache this */ + *nfcache |= NFC_UNKNOWN; +} + +/* Function which parses command options; returns true if it + ate an option */ +static int +parse(int c, char **argv, int invert, unsigned int *flags, + const struct ip6t_entry *entry, + unsigned int *nfcache, + struct ip6t_entry_match **match) +{ + return 0; +} + +/* Final check */ +static void final_check(unsigned int flags) +{ +} + +/* Prints out the matchinfo. */ +static void +print(const struct ip6t_ip6 *ip, + const struct ip6t_entry_match *match, + int numeric) +{ + printf("AGR "); +} + +/* Saves the union ip6t_matchinfo in parsable form to stdout. */ +static void save(const struct ip6t_ip6 *ip, const struct ip6t_entry_match *match) +{ + /* printf("--agr "); */ +} + +struct ip6tables_match agr += { NULL, + "agr", + NETFILTER_VERSION, + IP6T_ALIGN(sizeof(int)), + IP6T_ALIGN(sizeof(int)), + &help, + &init, + &parse, + &final_check, + &print, + &save, + opts +}; + +void _init(void) +{ + register_match6(&agr); +} -- cgit v1.2.3