xdr: Add an export for the helper function write_bytes_to_xdr_buf()
[safe/jmp/linux-2.6] / net / netfilter / nf_conntrack_netbios_ns.c
index a5b234e..497b222 100644 (file)
@@ -37,22 +37,23 @@ MODULE_AUTHOR("Patrick McHardy <kaber@trash.net>");
 MODULE_DESCRIPTION("NetBIOS name service broadcast connection tracking helper");
 MODULE_LICENSE("GPL");
 MODULE_ALIAS("ip_conntrack_netbios_ns");
+MODULE_ALIAS_NFCT_HELPER("netbios_ns");
 
 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,
-                struct nf_conn *ct, enum ip_conntrack_info ctinfo)
+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 = (*pskb)->nh.iph;
-       struct rtable *rt = (struct rtable *)(*pskb)->dst;
+       struct iphdr *iph = ip_hdr(skb);
+       struct rtable *rt = skb_rtable(skb);
        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;
@@ -74,7 +75,7 @@ static int help(struct sk_buff **pskb, unsigned int protoff,
        if (mask == 0)
                goto out;
 
-       exp = nf_conntrack_expect_alloc(ct);
+       exp = nf_ct_expect_alloc(ct);
        if (exp == NULL)
                goto out;
 
@@ -83,37 +84,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_conntrack_expect_related(exp);
-       nf_conntrack_expect_put(exp);
+       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.src.u.udp.port   = cpu_to_be16(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);
 }