X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fnetfilter.h;h=4688969398434d51135817b7fde491d36684817f;hb=987b0145d94eecf292d8b301228356f44611ab7c;hp=b31a9bca9361307a6ce997c029634a58e2cd4939;hpb=f7ed79d23a47594e7834d66a8f14449796d4f3e6;p=linux-2.6.git diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h index b31a9bca9..468896939 100644 --- a/include/linux/netfilter.h +++ b/include/linux/netfilter.h @@ -80,14 +80,10 @@ struct nf_sockopt_ops int set_optmin; int set_optmax; int (*set)(struct sock *sk, int optval, void __user *user, unsigned int len); - int (*compat_set)(struct sock *sk, int optval, - void __user *user, unsigned int len); int get_optmin; int get_optmax; int (*get)(struct sock *sk, int optval, void __user *user, int *len); - int (*compat_get)(struct sock *sk, int optval, - void __user *user, int *len); /* Number of users inside set() or get(). */ unsigned int use; @@ -110,8 +106,6 @@ struct nf_info /* Function to register/unregister hook points. */ int nf_register_hook(struct nf_hook_ops *reg); void nf_unregister_hook(struct nf_hook_ops *reg); -int nf_register_hooks(struct nf_hook_ops *reg, unsigned int n); -void nf_unregister_hooks(struct nf_hook_ops *reg, unsigned int n); /* Functions to register get/setsockopt ranges (non-inclusive). You need to check permissions yourself! */ @@ -252,11 +246,6 @@ int nf_setsockopt(struct sock *sk, int pf, int optval, char __user *opt, int nf_getsockopt(struct sock *sk, int pf, int optval, char __user *opt, int *len); -int compat_nf_setsockopt(struct sock *sk, int pf, int optval, - char __user *opt, int len); -int compat_nf_getsockopt(struct sock *sk, int pf, int optval, - char __user *opt, int *len); - /* Packet queuing */ struct nf_queue_handler { int (*outfn)(struct sk_buff *skb, struct nf_info *info, @@ -283,43 +272,17 @@ extern void nf_invalidate_cache(int pf); Returns true or false. */ extern int skb_make_writable(struct sk_buff **pskb, unsigned int writable_len); -struct nf_afinfo { - unsigned short family; - unsigned int (*checksum)(struct sk_buff *skb, unsigned int hook, - unsigned int dataoff, u_int8_t protocol); - void (*saveroute)(const struct sk_buff *skb, - struct nf_info *info); - int (*reroute)(struct sk_buff **skb, - const struct nf_info *info); - int route_key_size; +struct nf_queue_rerouter { + void (*save)(const struct sk_buff *skb, struct nf_info *info); + int (*reroute)(struct sk_buff **skb, const struct nf_info *info); + int rer_size; }; -extern struct nf_afinfo *nf_afinfo[]; -static inline struct nf_afinfo *nf_get_afinfo(unsigned short family) -{ - return rcu_dereference(nf_afinfo[family]); -} - -static inline unsigned int -nf_checksum(struct sk_buff *skb, unsigned int hook, unsigned int dataoff, - u_int8_t protocol, unsigned short family) -{ - struct nf_afinfo *afinfo; - unsigned int csum = 0; - - rcu_read_lock(); - afinfo = nf_get_afinfo(family); - if (afinfo) - csum = afinfo->checksum(skb, hook, dataoff, protocol); - rcu_read_unlock(); - return csum; -} - -extern int nf_register_afinfo(struct nf_afinfo *afinfo); -extern void nf_unregister_afinfo(struct nf_afinfo *afinfo); - #define nf_info_reroute(x) ((void *)x + sizeof(struct nf_info)) +extern int nf_register_queue_rerouter(int pf, struct nf_queue_rerouter *rer); +extern int nf_unregister_queue_rerouter(int pf); + #include extern void (*ip_nat_decode_session)(struct sk_buff *, struct flowi *);