]> err.no Git - linux-2.6/blobdiff - net/netfilter/nf_conntrack_netbios_ns.c
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6] / net / netfilter / nf_conntrack_netbios_ns.c
index ea585c789a834778e4fd6f6e2fbdad0d3d1cf53e..08404e6755fb15064ab086d3229a34cc9139ce3d 100644 (file)
@@ -42,17 +42,17 @@ static unsigned int timeout __read_mostly = 3;
 module_param(timeout, uint, 0400);
 MODULE_PARM_DESC(timeout, "timeout for master connection/replies in seconds");
 
-static int help(struct sk_buff **pskb, unsigned int protoff,
+static int help(struct sk_buff *skb, unsigned int protoff,
                struct nf_conn *ct, enum ip_conntrack_info ctinfo)
 {
        struct nf_conntrack_expect *exp;
-       struct iphdr *iph = ip_hdr(*pskb);
-       struct rtable *rt = (struct rtable *)(*pskb)->dst;
+       struct iphdr *iph = ip_hdr(skb);
+       struct rtable *rt = skb->rtable;
        struct in_device *in_dev;
        __be32 mask = 0;
 
        /* we're only interested in locally generated packets */
-       if ((*pskb)->sk == NULL)
+       if (skb->sk == NULL)
                goto out;
        if (rt == NULL || !(rt->rt_flags & RTCF_BROADCAST))
                goto out;
@@ -83,38 +83,37 @@ static int help(struct sk_buff **pskb, unsigned int protoff,
 
        exp->mask.src.u3.ip       = mask;
        exp->mask.src.u.udp.port  = htons(0xFFFF);
-       exp->mask.dst.u3.ip       = htonl(0xFFFFFFFF);
-       exp->mask.dst.u.udp.port  = htons(0xFFFF);
-       exp->mask.dst.protonum    = 0xFF;
 
        exp->expectfn             = NULL;
        exp->flags                = NF_CT_EXPECT_PERMANENT;
+       exp->class                = NF_CT_EXPECT_CLASS_DEFAULT;
        exp->helper               = NULL;
 
        nf_ct_expect_related(exp);
        nf_ct_expect_put(exp);
 
-       nf_ct_refresh(ct, *pskb, timeout * HZ);
+       nf_ct_refresh(ct, skb, timeout * HZ);
 out:
        return NF_ACCEPT;
 }
 
+static struct nf_conntrack_expect_policy exp_policy = {
+       .max_expected   = 1,
+};
+
 static struct nf_conntrack_helper helper __read_mostly = {
        .name                   = "netbios-ns",
        .tuple.src.l3num        = AF_INET,
        .tuple.src.u.udp.port   = __constant_htons(NMBD_PORT),
        .tuple.dst.protonum     = IPPROTO_UDP,
-       .mask.src.l3num         = 0xFFFF,
-       .mask.src.u.udp.port    = __constant_htons(0xFFFF),
-       .mask.dst.protonum      = 0xFF,
-       .max_expected           = 1,
        .me                     = THIS_MODULE,
        .help                   = help,
+       .expect_policy          = &exp_policy,
 };
 
 static int __init nf_conntrack_netbios_ns_init(void)
 {
-       helper.timeout = timeout;
+       exp_policy.timeout = timeout;
        return nf_conntrack_helper_register(&helper);
 }