summaryrefslogtreecommitdiffstats
path: root/extensions/libip6t_eui64.c
blob: 8754b9365405ff984748f433c171de6dcae996fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* Shared library add-on to ip6tables to add EUI64 address checking support. */
#include <stdio.h>
#include <netdb.h>
#include <string.h>
#include <stdlib.h>
#include <getopt.h>
#if defined(__GLIBC__) && __GLIBC__ == 2
#include <net/ethernet.h>
#else
#include <linux/if_ether.h>
#endif
#include <ip6tables.h>

static void eui64_help(void)
{
	printf(
"eui64 match options:\n"
" This module hasn't got any option\n"
" This module checks for EUI64 IPv6 addresses\n");
}

static int eui64_parse(int c, char **argv, int invert, unsigned int *flags,
                       const void *entry, struct xt_entry_match **match)
{
	return 0;
}

static struct xtables_match eui64_mt6_reg = {
	.name 		= "eui64",
	.version	= XTABLES_VERSION,
	.family		= PF_INET6,
	.size		= XT_ALIGN(sizeof(int)),
	.userspacesize	= XT_ALIGN(sizeof(int)),
	.help		= eui64_help,
	.parse		= eui64_parse,
};

void _init(void)
{
	xtables_register_match(&eui64_mt6_reg);
}