Problem compiling u32 patch on Redhat

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Gurus,

I am trying to apply u32 patch to the Redhat enterprise edition 4 which
is using 2.6.9 kernel. I am getting the following compile error. I
looked in the ipt_u32.c and found the matchsize variable:

static struct ipt_match u32_match = {
        .name           = "u32",
        .match          = &match,
        .matchsize      = sizeof(struct ipt_u32),
        .checkentry     = &checkentry,
        .me             = THIS_MODULE
};

But in the ip_tables.h this varibale doesn't exists:

struct ipt_match
{
        struct list_head list;

        const char name[IPT_FUNCTION_MAXNAMELEN];

        /* Return true or false: return FALSE and set *hotdrop = 1 to
           force immediate packet drop. */
        /* Arguments changed since 2.4, as this must now handle
           non-linear skbs, using skb_copy_bits and
           skb_ip_make_writable. */
        int (*match)(const struct sk_buff *skb,
                     const struct net_device *in,
                     const struct net_device *out,
                     const void *matchinfo,
                     int offset,
                     int *hotdrop);

        /* Called when user tries to insert an entry of this type. */
        /* Should return true or false. */
        int (*checkentry)(const char *tablename,
                          const struct ipt_ip *ip,
                          void *matchinfo,
                          unsigned int matchinfosize,
                          unsigned int hook_mask);

        /* Called when entry of this type deleted. */
        void (*destroy)(void *matchinfo, unsigned int matchinfosize);

        /* Set this to THIS_MODULE. */
        struct module *me;
};

Could you please guide me how can I fix this problem. I tried to fix
this compile problem by commenting out the line ipt_u32.c which
references matchsize variable. After that I was able to compile the
kernel but when I tried to run iptables command,
I got "Invalid argumment" error. Here is the command I used.

iptables -A OUTPUT -m u32 --u32 "2&0xffff=0x2:0x0100" -j DROP
iptables: Invalid argument

I am not sure if I am seen this error because I commented out the line
in ipt_u32.c? I appreciate if you point me to the right direction. Is
u32 module is ported to linux 2.6 kernel?
Thanks.

Mohammad


net/ipv4/netfilter/ipt_u32.c:127: warning: "struct xt_match" declared
inside parameter list
net/ipv4/netfilter/ipt_u32.c:127: warning: its scope is only this
definition or declaration, which is probably not what you want
net/ipv4/netfilter/ipt_u32.c:210: warning: "struct xt_match" declared
inside parameter list
net/ipv4/netfilter/ipt_u32.c:219: warning: initialization from
incompatible pointer type
net/ipv4/netfilter/ipt_u32.c:220: error: unknown field `matchsize'
specified in initializer
net/ipv4/netfilter/ipt_u32.c:220: warning: initialization makes pointer
from integer without a cast
net/ipv4/netfilter/ipt_u32.c:221: warning: initialization from
incompatible pointer type
make[3]: *** [net/ipv4/netfilter/ipt_u32.o] Error 1
make[2]: *** [net/ipv4/netfilter] Error 2
make[1]: *** [net/ipv4] Error 2
make: *** [net] Error 2









[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux