linux/net/netfilter/xt_comment.c
<<
>>
Prefs
   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("Xtables: No-op match which can be tagged with a comment");
  14MODULE_LICENSE("GPL");
  15MODULE_ALIAS("ipt_comment");
  16MODULE_ALIAS("ip6t_comment");
  17
  18static bool
  19comment_mt(const struct sk_buff *skb, const struct net_device *in,
  20           const struct net_device *out, const struct xt_match *match,
  21           const void *matchinfo, int offset, unsigned int protooff,
  22           bool *hotdrop)
  23{
  24        /* We always match */
  25        return true;
  26}
  27
  28static struct xt_match comment_mt_reg[] __read_mostly = {
  29        {
  30                .name           = "comment",
  31                .family         = AF_INET,
  32                .match          = comment_mt,
  33                .matchsize      = sizeof(struct xt_comment_info),
  34                .me             = THIS_MODULE
  35        },
  36        {
  37                .name           = "comment",
  38                .family         = AF_INET6,
  39                .match          = comment_mt,
  40                .matchsize      = sizeof(struct xt_comment_info),
  41                .me             = THIS_MODULE
  42        },
  43};
  44
  45static int __init comment_mt_init(void)
  46{
  47        return xt_register_matches(comment_mt_reg, ARRAY_SIZE(comment_mt_reg));
  48}
  49
  50static void __exit comment_mt_exit(void)
  51{
  52        xt_unregister_matches(comment_mt_reg, ARRAY_SIZE(comment_mt_reg));
  53}
  54
  55module_init(comment_mt_init);
  56module_exit(comment_mt_exit);
  57