xt_comment.c revision a45049c51ce6a3fecf2a909b591b28164c927112
1/* 2 * Implements a dummy match to allow attaching comments to rules 3 * 4 * 2003-05-13 Brad Fisher (brad@info-link.net) 5 */ 6 7#include <linux/module.h> 8#include <linux/skbuff.h> 9#include <linux/netfilter/x_tables.h> 10#include <linux/netfilter/xt_comment.h> 11 12MODULE_AUTHOR("Brad Fisher <brad@info-link.net>"); 13MODULE_DESCRIPTION("iptables comment match module"); 14MODULE_LICENSE("GPL"); 15MODULE_ALIAS("ipt_comment"); 16MODULE_ALIAS("ip6t_comment"); 17 18static int 19match(const struct sk_buff *skb, 20 const struct net_device *in, 21 const struct net_device *out, 22 const struct xt_match *match, 23 const void *matchinfo, 24 int offset, 25 unsigned int protooff, 26 int *hotdrop) 27{ 28 /* We always match */ 29 return 1; 30} 31 32static struct xt_match comment_match = { 33 .name = "comment", 34 .match = match, 35 .matchsize = sizeof(struct xt_comment_info), 36 .family = AF_INET, 37 .me = THIS_MODULE 38}; 39 40static struct xt_match comment6_match = { 41 .name = "comment", 42 .match = match, 43 .matchsize = sizeof(struct xt_comment_info), 44 .family = AF_INET6, 45 .me = THIS_MODULE 46}; 47 48static int __init init(void) 49{ 50 int ret; 51 52 ret = xt_register_match(&comment_match); 53 if (ret) 54 return ret; 55 56 ret = xt_register_match(&comment6_match); 57 if (ret) 58 xt_unregister_match(&comment_match); 59 60 return ret; 61} 62 63static void __exit fini(void) 64{ 65 xt_unregister_match(&comment_match); 66 xt_unregister_match(&comment6_match); 67} 68 69module_init(init); 70module_exit(fini); 71