netfilter: Use unsigned types for hooknum and pf vars
and (try to) consistently use u_int8_t for the L3 family. Signed-off-by: Jan Engelhardt <jengelh@medozas.de> Signed-off-by: Patrick McHardy <kaber@trash.net>
This commit is contained in:
committed by
Patrick McHardy
parent
be713a443e
commit
76108cea06
@ -92,8 +92,8 @@ struct nf_hook_ops
|
|||||||
/* User fills in from here down. */
|
/* User fills in from here down. */
|
||||||
nf_hookfn *hook;
|
nf_hookfn *hook;
|
||||||
struct module *owner;
|
struct module *owner;
|
||||||
int pf;
|
u_int8_t pf;
|
||||||
int hooknum;
|
unsigned int hooknum;
|
||||||
/* Hooks are ordered in ascending priority. */
|
/* Hooks are ordered in ascending priority. */
|
||||||
int priority;
|
int priority;
|
||||||
};
|
};
|
||||||
@ -102,7 +102,7 @@ struct nf_sockopt_ops
|
|||||||
{
|
{
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
|
|
||||||
int pf;
|
u_int8_t pf;
|
||||||
|
|
||||||
/* Non-inclusive ranges: use 0/0/NULL to never get called. */
|
/* Non-inclusive ranges: use 0/0/NULL to never get called. */
|
||||||
int set_optmin;
|
int set_optmin;
|
||||||
@ -140,7 +140,7 @@ extern struct ctl_path nf_net_ipv4_netfilter_sysctl_path[];
|
|||||||
|
|
||||||
extern struct list_head nf_hooks[NPROTO][NF_MAX_HOOKS];
|
extern struct list_head nf_hooks[NPROTO][NF_MAX_HOOKS];
|
||||||
|
|
||||||
int nf_hook_slow(int pf, unsigned int hook, struct sk_buff *skb,
|
int nf_hook_slow(u_int8_t pf, unsigned int hook, struct sk_buff *skb,
|
||||||
struct net_device *indev, struct net_device *outdev,
|
struct net_device *indev, struct net_device *outdev,
|
||||||
int (*okfn)(struct sk_buff *), int thresh);
|
int (*okfn)(struct sk_buff *), int thresh);
|
||||||
|
|
||||||
@ -151,7 +151,7 @@ int nf_hook_slow(int pf, unsigned int hook, struct sk_buff *skb,
|
|||||||
* okfn must be invoked by the caller in this case. Any other return
|
* okfn must be invoked by the caller in this case. Any other return
|
||||||
* value indicates the packet has been consumed by the hook.
|
* value indicates the packet has been consumed by the hook.
|
||||||
*/
|
*/
|
||||||
static inline int nf_hook_thresh(int pf, unsigned int hook,
|
static inline int nf_hook_thresh(u_int8_t pf, unsigned int hook,
|
||||||
struct sk_buff *skb,
|
struct sk_buff *skb,
|
||||||
struct net_device *indev,
|
struct net_device *indev,
|
||||||
struct net_device *outdev,
|
struct net_device *outdev,
|
||||||
@ -167,7 +167,7 @@ static inline int nf_hook_thresh(int pf, unsigned int hook,
|
|||||||
return nf_hook_slow(pf, hook, skb, indev, outdev, okfn, thresh);
|
return nf_hook_slow(pf, hook, skb, indev, outdev, okfn, thresh);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int nf_hook(int pf, unsigned int hook, struct sk_buff *skb,
|
static inline int nf_hook(u_int8_t pf, unsigned int hook, struct sk_buff *skb,
|
||||||
struct net_device *indev, struct net_device *outdev,
|
struct net_device *indev, struct net_device *outdev,
|
||||||
int (*okfn)(struct sk_buff *))
|
int (*okfn)(struct sk_buff *))
|
||||||
{
|
{
|
||||||
@ -212,14 +212,14 @@ __ret;})
|
|||||||
NF_HOOK_THRESH(pf, hook, skb, indev, outdev, okfn, INT_MIN)
|
NF_HOOK_THRESH(pf, hook, skb, indev, outdev, okfn, INT_MIN)
|
||||||
|
|
||||||
/* Call setsockopt() */
|
/* Call setsockopt() */
|
||||||
int nf_setsockopt(struct sock *sk, int pf, int optval, char __user *opt,
|
int nf_setsockopt(struct sock *sk, u_int8_t pf, int optval, char __user *opt,
|
||||||
int len);
|
int len);
|
||||||
int nf_getsockopt(struct sock *sk, int pf, int optval, char __user *opt,
|
int nf_getsockopt(struct sock *sk, u_int8_t pf, int optval, char __user *opt,
|
||||||
int *len);
|
int *len);
|
||||||
|
|
||||||
int compat_nf_setsockopt(struct sock *sk, int pf, int optval,
|
int compat_nf_setsockopt(struct sock *sk, u_int8_t pf, int optval,
|
||||||
char __user *opt, int len);
|
char __user *opt, int len);
|
||||||
int compat_nf_getsockopt(struct sock *sk, int pf, int optval,
|
int compat_nf_getsockopt(struct sock *sk, u_int8_t pf, int optval,
|
||||||
char __user *opt, int *len);
|
char __user *opt, int *len);
|
||||||
|
|
||||||
/* Call this before modifying an existing packet: ensures it is
|
/* Call this before modifying an existing packet: ensures it is
|
||||||
@ -292,7 +292,7 @@ extern void nf_unregister_afinfo(const struct nf_afinfo *afinfo);
|
|||||||
extern void (*ip_nat_decode_session)(struct sk_buff *, struct flowi *);
|
extern void (*ip_nat_decode_session)(struct sk_buff *, struct flowi *);
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
nf_nat_decode_session(struct sk_buff *skb, struct flowi *fl, int family)
|
nf_nat_decode_session(struct sk_buff *skb, struct flowi *fl, u_int8_t family)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_NF_NAT_NEEDED
|
#ifdef CONFIG_NF_NAT_NEEDED
|
||||||
void (*decodefn)(struct sk_buff *, struct flowi *);
|
void (*decodefn)(struct sk_buff *, struct flowi *);
|
||||||
@ -315,7 +315,7 @@ extern struct proc_dir_entry *proc_net_netfilter;
|
|||||||
#else /* !CONFIG_NETFILTER */
|
#else /* !CONFIG_NETFILTER */
|
||||||
#define NF_HOOK(pf, hook, skb, indev, outdev, okfn) (okfn)(skb)
|
#define NF_HOOK(pf, hook, skb, indev, outdev, okfn) (okfn)(skb)
|
||||||
#define NF_HOOK_COND(pf, hook, skb, indev, outdev, okfn, cond) (okfn)(skb)
|
#define NF_HOOK_COND(pf, hook, skb, indev, outdev, okfn, cond) (okfn)(skb)
|
||||||
static inline int nf_hook_thresh(int pf, unsigned int hook,
|
static inline int nf_hook_thresh(u_int8_t pf, unsigned int hook,
|
||||||
struct sk_buff *skb,
|
struct sk_buff *skb,
|
||||||
struct net_device *indev,
|
struct net_device *indev,
|
||||||
struct net_device *outdev,
|
struct net_device *outdev,
|
||||||
@ -324,7 +324,7 @@ static inline int nf_hook_thresh(int pf, unsigned int hook,
|
|||||||
{
|
{
|
||||||
return okfn(skb);
|
return okfn(skb);
|
||||||
}
|
}
|
||||||
static inline int nf_hook(int pf, unsigned int hook, struct sk_buff *skb,
|
static inline int nf_hook(u_int8_t pf, unsigned int hook, struct sk_buff *skb,
|
||||||
struct net_device *indev, struct net_device *outdev,
|
struct net_device *indev, struct net_device *outdev,
|
||||||
int (*okfn)(struct sk_buff *))
|
int (*okfn)(struct sk_buff *))
|
||||||
{
|
{
|
||||||
@ -332,7 +332,9 @@ static inline int nf_hook(int pf, unsigned int hook, struct sk_buff *skb,
|
|||||||
}
|
}
|
||||||
struct flowi;
|
struct flowi;
|
||||||
static inline void
|
static inline void
|
||||||
nf_nat_decode_session(struct sk_buff *skb, struct flowi *fl, int family) {}
|
nf_nat_decode_session(struct sk_buff *skb, struct flowi *fl, u_int8_t family)
|
||||||
|
{
|
||||||
|
}
|
||||||
#endif /*CONFIG_NETFILTER*/
|
#endif /*CONFIG_NETFILTER*/
|
||||||
|
|
||||||
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
|
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
|
||||||
|
@ -292,7 +292,7 @@ struct xt_table
|
|||||||
/* Set this to THIS_MODULE if you are a module, otherwise NULL */
|
/* Set this to THIS_MODULE if you are a module, otherwise NULL */
|
||||||
struct module *me;
|
struct module *me;
|
||||||
|
|
||||||
int af; /* address/protocol family */
|
u_int8_t af; /* address/protocol family */
|
||||||
};
|
};
|
||||||
|
|
||||||
#include <linux/netfilter_ipv4.h>
|
#include <linux/netfilter_ipv4.h>
|
||||||
@ -346,19 +346,19 @@ extern struct xt_table_info *xt_replace_table(struct xt_table *table,
|
|||||||
struct xt_table_info *newinfo,
|
struct xt_table_info *newinfo,
|
||||||
int *error);
|
int *error);
|
||||||
|
|
||||||
extern struct xt_match *xt_find_match(int af, const char *name, u8 revision);
|
extern struct xt_match *xt_find_match(u8 af, const char *name, u8 revision);
|
||||||
extern struct xt_target *xt_find_target(int af, const char *name, u8 revision);
|
extern struct xt_target *xt_find_target(u8 af, const char *name, u8 revision);
|
||||||
extern struct xt_target *xt_request_find_target(int af, const char *name,
|
extern struct xt_target *xt_request_find_target(u8 af, const char *name,
|
||||||
u8 revision);
|
u8 revision);
|
||||||
extern int xt_find_revision(int af, const char *name, u8 revision, int target,
|
extern int xt_find_revision(u8 af, const char *name, u8 revision,
|
||||||
int *err);
|
int target, int *err);
|
||||||
|
|
||||||
extern struct xt_table *xt_find_table_lock(struct net *net, int af,
|
extern struct xt_table *xt_find_table_lock(struct net *net, u_int8_t af,
|
||||||
const char *name);
|
const char *name);
|
||||||
extern void xt_table_unlock(struct xt_table *t);
|
extern void xt_table_unlock(struct xt_table *t);
|
||||||
|
|
||||||
extern int xt_proto_init(struct net *net, int af);
|
extern int xt_proto_init(struct net *net, u_int8_t af);
|
||||||
extern void xt_proto_fini(struct net *net, int af);
|
extern void xt_proto_fini(struct net *net, u_int8_t af);
|
||||||
|
|
||||||
extern struct xt_table_info *xt_alloc_table_info(unsigned int size);
|
extern struct xt_table_info *xt_alloc_table_info(unsigned int size);
|
||||||
extern void xt_free_table_info(struct xt_table_info *info);
|
extern void xt_free_table_info(struct xt_table_info *info);
|
||||||
@ -423,12 +423,12 @@ struct compat_xt_counters_info
|
|||||||
#define COMPAT_XT_ALIGN(s) (((s) + (__alignof__(struct compat_xt_counters)-1)) \
|
#define COMPAT_XT_ALIGN(s) (((s) + (__alignof__(struct compat_xt_counters)-1)) \
|
||||||
& ~(__alignof__(struct compat_xt_counters)-1))
|
& ~(__alignof__(struct compat_xt_counters)-1))
|
||||||
|
|
||||||
extern void xt_compat_lock(int af);
|
extern void xt_compat_lock(u_int8_t af);
|
||||||
extern void xt_compat_unlock(int af);
|
extern void xt_compat_unlock(u_int8_t af);
|
||||||
|
|
||||||
extern int xt_compat_add_offset(int af, unsigned int offset, short delta);
|
extern int xt_compat_add_offset(u_int8_t af, unsigned int offset, short delta);
|
||||||
extern void xt_compat_flush_offsets(int af);
|
extern void xt_compat_flush_offsets(u_int8_t af);
|
||||||
extern short xt_compat_calc_jump(int af, unsigned int offset);
|
extern short xt_compat_calc_jump(u_int8_t af, unsigned int offset);
|
||||||
|
|
||||||
extern int xt_compat_match_offset(const struct xt_match *match);
|
extern int xt_compat_match_offset(const struct xt_match *match);
|
||||||
extern int xt_compat_match_from_user(struct xt_entry_match *m,
|
extern int xt_compat_match_from_user(struct xt_entry_match *m,
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
/* This header is used to share core functionality between the
|
/* This header is used to share core functionality between the
|
||||||
standalone connection tracking module, and the compatibility layer's use
|
standalone connection tracking module, and the compatibility layer's use
|
||||||
of connection tracking. */
|
of connection tracking. */
|
||||||
extern unsigned int nf_conntrack_in(int pf,
|
extern unsigned int nf_conntrack_in(u_int8_t pf,
|
||||||
unsigned int hooknum,
|
unsigned int hooknum,
|
||||||
struct sk_buff *skb);
|
struct sk_buff *skb);
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ void nf_ct_unexpect_related(struct nf_conntrack_expect *exp);
|
|||||||
/* Allocate space for an expectation: this is mandatory before calling
|
/* Allocate space for an expectation: this is mandatory before calling
|
||||||
nf_ct_expect_related. You will have to call put afterwards. */
|
nf_ct_expect_related. You will have to call put afterwards. */
|
||||||
struct nf_conntrack_expect *nf_ct_expect_alloc(struct nf_conn *me);
|
struct nf_conntrack_expect *nf_ct_expect_alloc(struct nf_conn *me);
|
||||||
void nf_ct_expect_init(struct nf_conntrack_expect *, unsigned int, int,
|
void nf_ct_expect_init(struct nf_conntrack_expect *, unsigned int, u_int8_t,
|
||||||
const union nf_inet_addr *,
|
const union nf_inet_addr *,
|
||||||
const union nf_inet_addr *,
|
const union nf_inet_addr *,
|
||||||
u_int8_t, const __be16 *, const __be16 *);
|
u_int8_t, const __be16 *, const __be16 *);
|
||||||
|
@ -39,7 +39,7 @@ struct nf_conntrack_l4proto
|
|||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
unsigned int dataoff,
|
unsigned int dataoff,
|
||||||
enum ip_conntrack_info ctinfo,
|
enum ip_conntrack_info ctinfo,
|
||||||
int pf,
|
u_int8_t pf,
|
||||||
unsigned int hooknum);
|
unsigned int hooknum);
|
||||||
|
|
||||||
/* Called when a new connection for this protocol found;
|
/* Called when a new connection for this protocol found;
|
||||||
@ -52,7 +52,7 @@ struct nf_conntrack_l4proto
|
|||||||
|
|
||||||
int (*error)(struct sk_buff *skb, unsigned int dataoff,
|
int (*error)(struct sk_buff *skb, unsigned int dataoff,
|
||||||
enum ip_conntrack_info *ctinfo,
|
enum ip_conntrack_info *ctinfo,
|
||||||
int pf, unsigned int hooknum);
|
u_int8_t pf, unsigned int hooknum);
|
||||||
|
|
||||||
/* Print out the per-protocol part of the tuple. Return like seq_* */
|
/* Print out the per-protocol part of the tuple. Return like seq_* */
|
||||||
int (*print_tuple)(struct seq_file *s,
|
int (*print_tuple)(struct seq_file *s,
|
||||||
|
@ -28,7 +28,7 @@ struct nf_loginfo {
|
|||||||
} u;
|
} u;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef void nf_logfn(unsigned int pf,
|
typedef void nf_logfn(u_int8_t pf,
|
||||||
unsigned int hooknum,
|
unsigned int hooknum,
|
||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
const struct net_device *in,
|
const struct net_device *in,
|
||||||
@ -43,12 +43,12 @@ struct nf_logger {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Function to register/unregister log function. */
|
/* Function to register/unregister log function. */
|
||||||
int nf_log_register(int pf, const struct nf_logger *logger);
|
int nf_log_register(u_int8_t pf, const struct nf_logger *logger);
|
||||||
void nf_log_unregister(const struct nf_logger *logger);
|
void nf_log_unregister(const struct nf_logger *logger);
|
||||||
void nf_log_unregister_pf(int pf);
|
void nf_log_unregister_pf(u_int8_t pf);
|
||||||
|
|
||||||
/* Calls the registered backend logging function */
|
/* Calls the registered backend logging function */
|
||||||
void nf_log_packet(int pf,
|
void nf_log_packet(u_int8_t pf,
|
||||||
unsigned int hooknum,
|
unsigned int hooknum,
|
||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
const struct net_device *in,
|
const struct net_device *in,
|
||||||
|
@ -8,7 +8,7 @@ struct nf_queue_entry {
|
|||||||
unsigned int id;
|
unsigned int id;
|
||||||
|
|
||||||
struct nf_hook_ops *elem;
|
struct nf_hook_ops *elem;
|
||||||
int pf;
|
u_int8_t pf;
|
||||||
unsigned int hook;
|
unsigned int hook;
|
||||||
struct net_device *indev;
|
struct net_device *indev;
|
||||||
struct net_device *outdev;
|
struct net_device *outdev;
|
||||||
@ -24,9 +24,9 @@ struct nf_queue_handler {
|
|||||||
char *name;
|
char *name;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int nf_register_queue_handler(int pf,
|
extern int nf_register_queue_handler(u_int8_t pf,
|
||||||
const struct nf_queue_handler *qh);
|
const struct nf_queue_handler *qh);
|
||||||
extern int nf_unregister_queue_handler(int pf,
|
extern int nf_unregister_queue_handler(u_int8_t pf,
|
||||||
const struct nf_queue_handler *qh);
|
const struct nf_queue_handler *qh);
|
||||||
extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh);
|
extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh);
|
||||||
extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict);
|
extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict);
|
||||||
|
@ -657,7 +657,7 @@ static unsigned int br_nf_forward_ip(unsigned int hook, struct sk_buff *skb,
|
|||||||
{
|
{
|
||||||
struct nf_bridge_info *nf_bridge;
|
struct nf_bridge_info *nf_bridge;
|
||||||
struct net_device *parent;
|
struct net_device *parent;
|
||||||
int pf;
|
u_int8_t pf;
|
||||||
|
|
||||||
if (!skb->nf_bridge)
|
if (!skb->nf_bridge)
|
||||||
return NF_ACCEPT;
|
return NF_ACCEPT;
|
||||||
@ -791,7 +791,7 @@ static unsigned int br_nf_post_routing(unsigned int hook, struct sk_buff *skb,
|
|||||||
{
|
{
|
||||||
struct nf_bridge_info *nf_bridge = skb->nf_bridge;
|
struct nf_bridge_info *nf_bridge = skb->nf_bridge;
|
||||||
struct net_device *realoutdev = bridge_parent(skb->dev);
|
struct net_device *realoutdev = bridge_parent(skb->dev);
|
||||||
int pf;
|
u_int8_t pf;
|
||||||
|
|
||||||
#ifdef CONFIG_NETFILTER_DEBUG
|
#ifdef CONFIG_NETFILTER_DEBUG
|
||||||
/* Be very paranoid. This probably won't happen anymore, but let's
|
/* Be very paranoid. This probably won't happen anymore, but let's
|
||||||
|
@ -84,7 +84,7 @@ print_ports(const struct sk_buff *skb, uint8_t protocol, int offset)
|
|||||||
|
|
||||||
#define myNIPQUAD(a) a[0], a[1], a[2], a[3]
|
#define myNIPQUAD(a) a[0], a[1], a[2], a[3]
|
||||||
static void
|
static void
|
||||||
ebt_log_packet(unsigned int pf, unsigned int hooknum,
|
ebt_log_packet(u_int8_t pf, unsigned int hooknum,
|
||||||
const struct sk_buff *skb, const struct net_device *in,
|
const struct sk_buff *skb, const struct net_device *in,
|
||||||
const struct net_device *out, const struct nf_loginfo *loginfo,
|
const struct net_device *out, const struct nf_loginfo *loginfo,
|
||||||
const char *prefix)
|
const char *prefix)
|
||||||
|
@ -223,7 +223,7 @@ alloc_failure:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* this function is registered with the netfilter core */
|
/* this function is registered with the netfilter core */
|
||||||
static void ebt_log_packet(unsigned int pf, unsigned int hooknum,
|
static void ebt_log_packet(u_int8_t pf, unsigned int hooknum,
|
||||||
const struct sk_buff *skb, const struct net_device *in,
|
const struct sk_buff *skb, const struct net_device *in,
|
||||||
const struct net_device *out, const struct nf_loginfo *li,
|
const struct net_device *out, const struct nf_loginfo *li,
|
||||||
const char *prefix)
|
const char *prefix)
|
||||||
|
@ -375,7 +375,7 @@ static struct nf_loginfo default_loginfo = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ipt_log_packet(unsigned int pf,
|
ipt_log_packet(u_int8_t pf,
|
||||||
unsigned int hooknum,
|
unsigned int hooknum,
|
||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
const struct net_device *in,
|
const struct net_device *in,
|
||||||
|
@ -292,7 +292,7 @@ ulog_tg(struct sk_buff *skb, const struct net_device *in,
|
|||||||
return XT_CONTINUE;
|
return XT_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ipt_logfn(unsigned int pf,
|
static void ipt_logfn(u_int8_t pf,
|
||||||
unsigned int hooknum,
|
unsigned int hooknum,
|
||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
const struct net_device *in,
|
const struct net_device *in,
|
||||||
|
@ -79,7 +79,7 @@ static int icmp_packet(struct nf_conn *ct,
|
|||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
unsigned int dataoff,
|
unsigned int dataoff,
|
||||||
enum ip_conntrack_info ctinfo,
|
enum ip_conntrack_info ctinfo,
|
||||||
int pf,
|
u_int8_t pf,
|
||||||
unsigned int hooknum)
|
unsigned int hooknum)
|
||||||
{
|
{
|
||||||
/* Try to delete connection immediately after all replies:
|
/* Try to delete connection immediately after all replies:
|
||||||
@ -173,7 +173,7 @@ icmp_error_message(struct sk_buff *skb,
|
|||||||
/* Small and modified version of icmp_rcv */
|
/* Small and modified version of icmp_rcv */
|
||||||
static int
|
static int
|
||||||
icmp_error(struct sk_buff *skb, unsigned int dataoff,
|
icmp_error(struct sk_buff *skb, unsigned int dataoff,
|
||||||
enum ip_conntrack_info *ctinfo, int pf, unsigned int hooknum)
|
enum ip_conntrack_info *ctinfo, u_int8_t pf, unsigned int hooknum)
|
||||||
{
|
{
|
||||||
const struct icmphdr *icmph;
|
const struct icmphdr *icmph;
|
||||||
struct icmphdr _ih;
|
struct icmphdr _ih;
|
||||||
|
@ -385,7 +385,7 @@ static struct nf_loginfo default_loginfo = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ip6t_log_packet(unsigned int pf,
|
ip6t_log_packet(u_int8_t pf,
|
||||||
unsigned int hooknum,
|
unsigned int hooknum,
|
||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
const struct net_device *in,
|
const struct net_device *in,
|
||||||
|
@ -81,7 +81,7 @@ static int icmpv6_packet(struct nf_conn *ct,
|
|||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
unsigned int dataoff,
|
unsigned int dataoff,
|
||||||
enum ip_conntrack_info ctinfo,
|
enum ip_conntrack_info ctinfo,
|
||||||
int pf,
|
u_int8_t pf,
|
||||||
unsigned int hooknum)
|
unsigned int hooknum)
|
||||||
{
|
{
|
||||||
/* Try to delete connection immediately after all replies:
|
/* Try to delete connection immediately after all replies:
|
||||||
@ -173,7 +173,7 @@ icmpv6_error_message(struct sk_buff *skb,
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
icmpv6_error(struct sk_buff *skb, unsigned int dataoff,
|
icmpv6_error(struct sk_buff *skb, unsigned int dataoff,
|
||||||
enum ip_conntrack_info *ctinfo, int pf, unsigned int hooknum)
|
enum ip_conntrack_info *ctinfo, u_int8_t pf, unsigned int hooknum)
|
||||||
{
|
{
|
||||||
const struct icmp6hdr *icmp6h;
|
const struct icmp6hdr *icmp6h;
|
||||||
struct icmp6hdr _ih;
|
struct icmp6hdr _ih;
|
||||||
|
@ -113,7 +113,7 @@ EXPORT_SYMBOL(nf_unregister_hooks);
|
|||||||
|
|
||||||
unsigned int nf_iterate(struct list_head *head,
|
unsigned int nf_iterate(struct list_head *head,
|
||||||
struct sk_buff *skb,
|
struct sk_buff *skb,
|
||||||
int hook,
|
unsigned int hook,
|
||||||
const struct net_device *indev,
|
const struct net_device *indev,
|
||||||
const struct net_device *outdev,
|
const struct net_device *outdev,
|
||||||
struct list_head **i,
|
struct list_head **i,
|
||||||
@ -155,7 +155,7 @@ unsigned int nf_iterate(struct list_head *head,
|
|||||||
|
|
||||||
/* Returns 1 if okfn() needs to be executed by the caller,
|
/* Returns 1 if okfn() needs to be executed by the caller,
|
||||||
* -EPERM for NF_DROP, 0 otherwise. */
|
* -EPERM for NF_DROP, 0 otherwise. */
|
||||||
int nf_hook_slow(int pf, unsigned int hook, struct sk_buff *skb,
|
int nf_hook_slow(u_int8_t pf, unsigned int hook, struct sk_buff *skb,
|
||||||
struct net_device *indev,
|
struct net_device *indev,
|
||||||
struct net_device *outdev,
|
struct net_device *outdev,
|
||||||
int (*okfn)(struct sk_buff *),
|
int (*okfn)(struct sk_buff *),
|
||||||
|
@ -665,7 +665,7 @@ resolve_normal_ct(struct sk_buff *skb,
|
|||||||
}
|
}
|
||||||
|
|
||||||
unsigned int
|
unsigned int
|
||||||
nf_conntrack_in(int pf, unsigned int hooknum, struct sk_buff *skb)
|
nf_conntrack_in(u_int8_t pf, unsigned int hooknum, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
struct nf_conn *ct;
|
struct nf_conn *ct;
|
||||||
enum ip_conntrack_info ctinfo;
|
enum ip_conntrack_info ctinfo;
|
||||||
@ -683,7 +683,7 @@ nf_conntrack_in(int pf, unsigned int hooknum, struct sk_buff *skb)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* rcu_read_lock()ed by nf_hook_slow */
|
/* rcu_read_lock()ed by nf_hook_slow */
|
||||||
l3proto = __nf_ct_l3proto_find((u_int16_t)pf);
|
l3proto = __nf_ct_l3proto_find(pf);
|
||||||
ret = l3proto->get_l4proto(skb, skb_network_offset(skb),
|
ret = l3proto->get_l4proto(skb, skb_network_offset(skb),
|
||||||
&dataoff, &protonum);
|
&dataoff, &protonum);
|
||||||
if (ret <= 0) {
|
if (ret <= 0) {
|
||||||
@ -693,7 +693,7 @@ nf_conntrack_in(int pf, unsigned int hooknum, struct sk_buff *skb)
|
|||||||
return -ret;
|
return -ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
l4proto = __nf_ct_l4proto_find((u_int16_t)pf, protonum);
|
l4proto = __nf_ct_l4proto_find(pf, protonum);
|
||||||
|
|
||||||
/* It may be an special packet, error, unclean...
|
/* It may be an special packet, error, unclean...
|
||||||
* inverse of the return code tells to the netfilter
|
* inverse of the return code tells to the netfilter
|
||||||
|
@ -241,7 +241,7 @@ struct nf_conntrack_expect *nf_ct_expect_alloc(struct nf_conn *me)
|
|||||||
EXPORT_SYMBOL_GPL(nf_ct_expect_alloc);
|
EXPORT_SYMBOL_GPL(nf_ct_expect_alloc);
|
||||||
|
|
||||||
void nf_ct_expect_init(struct nf_conntrack_expect *exp, unsigned int class,
|
void nf_ct_expect_init(struct nf_conntrack_expect *exp, unsigned int class,
|
||||||
int family,
|
u_int8_t family,
|
||||||
const union nf_inet_addr *saddr,
|
const union nf_inet_addr *saddr,
|
||||||
const union nf_inet_addr *daddr,
|
const union nf_inet_addr *daddr,
|
||||||
u_int8_t proto, const __be16 *src, const __be16 *dst)
|
u_int8_t proto, const __be16 *src, const __be16 *dst)
|
||||||
|
@ -709,7 +709,8 @@ static int expect_h245(struct sk_buff *skb, struct nf_conn *ct,
|
|||||||
/* If the calling party is on the same side of the forward-to party,
|
/* If the calling party is on the same side of the forward-to party,
|
||||||
* we don't need to track the second call */
|
* we don't need to track the second call */
|
||||||
static int callforward_do_filter(const union nf_inet_addr *src,
|
static int callforward_do_filter(const union nf_inet_addr *src,
|
||||||
const union nf_inet_addr *dst, int family)
|
const union nf_inet_addr *dst,
|
||||||
|
u_int8_t family)
|
||||||
{
|
{
|
||||||
const struct nf_afinfo *afinfo;
|
const struct nf_afinfo *afinfo;
|
||||||
struct flowi fl1, fl2;
|
struct flowi fl1, fl2;
|
||||||
|
@ -461,7 +461,7 @@ static u64 dccp_ack_seq(const struct dccp_hdr *dh)
|
|||||||
|
|
||||||
static int dccp_packet(struct nf_conn *ct, const struct sk_buff *skb,
|
static int dccp_packet(struct nf_conn *ct, const struct sk_buff *skb,
|
||||||
unsigned int dataoff, enum ip_conntrack_info ctinfo,
|
unsigned int dataoff, enum ip_conntrack_info ctinfo,
|
||||||
int pf, unsigned int hooknum)
|
u_int8_t pf, unsigned int hooknum)
|
||||||
{
|
{
|
||||||
enum ip_conntrack_dir dir = CTINFO2DIR(ctinfo);
|
enum ip_conntrack_dir dir = CTINFO2DIR(ctinfo);
|
||||||
struct dccp_hdr _dh, *dh;
|
struct dccp_hdr _dh, *dh;
|
||||||
@ -546,7 +546,7 @@ static int dccp_packet(struct nf_conn *ct, const struct sk_buff *skb,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int dccp_error(struct sk_buff *skb, unsigned int dataoff,
|
static int dccp_error(struct sk_buff *skb, unsigned int dataoff,
|
||||||
enum ip_conntrack_info *ctinfo, int pf,
|
enum ip_conntrack_info *ctinfo, u_int8_t pf,
|
||||||
unsigned int hooknum)
|
unsigned int hooknum)
|
||||||
{
|
{
|
||||||
struct dccp_hdr _dh, *dh;
|
struct dccp_hdr _dh, *dh;
|
||||||
|
@ -45,7 +45,7 @@ static int packet(struct nf_conn *ct,
|
|||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
unsigned int dataoff,
|
unsigned int dataoff,
|
||||||
enum ip_conntrack_info ctinfo,
|
enum ip_conntrack_info ctinfo,
|
||||||
int pf,
|
u_int8_t pf,
|
||||||
unsigned int hooknum)
|
unsigned int hooknum)
|
||||||
{
|
{
|
||||||
nf_ct_refresh_acct(ct, ctinfo, skb, nf_ct_generic_timeout);
|
nf_ct_refresh_acct(ct, ctinfo, skb, nf_ct_generic_timeout);
|
||||||
|
@ -219,7 +219,7 @@ static int gre_packet(struct nf_conn *ct,
|
|||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
unsigned int dataoff,
|
unsigned int dataoff,
|
||||||
enum ip_conntrack_info ctinfo,
|
enum ip_conntrack_info ctinfo,
|
||||||
int pf,
|
u_int8_t pf,
|
||||||
unsigned int hooknum)
|
unsigned int hooknum)
|
||||||
{
|
{
|
||||||
/* If we've seen traffic both ways, this is a GRE connection.
|
/* If we've seen traffic both ways, this is a GRE connection.
|
||||||
|
@ -287,7 +287,7 @@ static int sctp_packet(struct nf_conn *ct,
|
|||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
unsigned int dataoff,
|
unsigned int dataoff,
|
||||||
enum ip_conntrack_info ctinfo,
|
enum ip_conntrack_info ctinfo,
|
||||||
int pf,
|
u_int8_t pf,
|
||||||
unsigned int hooknum)
|
unsigned int hooknum)
|
||||||
{
|
{
|
||||||
enum sctp_conntrack new_state, old_state;
|
enum sctp_conntrack new_state, old_state;
|
||||||
|
@ -486,7 +486,7 @@ static bool tcp_in_window(const struct nf_conn *ct,
|
|||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
unsigned int dataoff,
|
unsigned int dataoff,
|
||||||
const struct tcphdr *tcph,
|
const struct tcphdr *tcph,
|
||||||
int pf)
|
u_int8_t pf)
|
||||||
{
|
{
|
||||||
struct ip_ct_tcp_state *sender = &state->seen[dir];
|
struct ip_ct_tcp_state *sender = &state->seen[dir];
|
||||||
struct ip_ct_tcp_state *receiver = &state->seen[!dir];
|
struct ip_ct_tcp_state *receiver = &state->seen[!dir];
|
||||||
@ -749,7 +749,7 @@ static const u8 tcp_valid_flags[(TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG) + 1] =
|
|||||||
static int tcp_error(struct sk_buff *skb,
|
static int tcp_error(struct sk_buff *skb,
|
||||||
unsigned int dataoff,
|
unsigned int dataoff,
|
||||||
enum ip_conntrack_info *ctinfo,
|
enum ip_conntrack_info *ctinfo,
|
||||||
int pf,
|
u_int8_t pf,
|
||||||
unsigned int hooknum)
|
unsigned int hooknum)
|
||||||
{
|
{
|
||||||
const struct tcphdr *th;
|
const struct tcphdr *th;
|
||||||
@ -804,7 +804,7 @@ static int tcp_packet(struct nf_conn *ct,
|
|||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
unsigned int dataoff,
|
unsigned int dataoff,
|
||||||
enum ip_conntrack_info ctinfo,
|
enum ip_conntrack_info ctinfo,
|
||||||
int pf,
|
u_int8_t pf,
|
||||||
unsigned int hooknum)
|
unsigned int hooknum)
|
||||||
{
|
{
|
||||||
struct nf_conntrack_tuple *tuple;
|
struct nf_conntrack_tuple *tuple;
|
||||||
|
@ -66,7 +66,7 @@ static int udp_packet(struct nf_conn *ct,
|
|||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
unsigned int dataoff,
|
unsigned int dataoff,
|
||||||
enum ip_conntrack_info ctinfo,
|
enum ip_conntrack_info ctinfo,
|
||||||
int pf,
|
u_int8_t pf,
|
||||||
unsigned int hooknum)
|
unsigned int hooknum)
|
||||||
{
|
{
|
||||||
/* If we've seen traffic both ways, this is some kind of UDP
|
/* If we've seen traffic both ways, this is some kind of UDP
|
||||||
@ -91,7 +91,7 @@ static bool udp_new(struct nf_conn *ct, const struct sk_buff *skb,
|
|||||||
|
|
||||||
static int udp_error(struct sk_buff *skb, unsigned int dataoff,
|
static int udp_error(struct sk_buff *skb, unsigned int dataoff,
|
||||||
enum ip_conntrack_info *ctinfo,
|
enum ip_conntrack_info *ctinfo,
|
||||||
int pf,
|
u_int8_t pf,
|
||||||
unsigned int hooknum)
|
unsigned int hooknum)
|
||||||
{
|
{
|
||||||
unsigned int udplen = skb->len - dataoff;
|
unsigned int udplen = skb->len - dataoff;
|
||||||
|
@ -65,7 +65,7 @@ static int udplite_packet(struct nf_conn *ct,
|
|||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
unsigned int dataoff,
|
unsigned int dataoff,
|
||||||
enum ip_conntrack_info ctinfo,
|
enum ip_conntrack_info ctinfo,
|
||||||
int pf,
|
u_int8_t pf,
|
||||||
unsigned int hooknum)
|
unsigned int hooknum)
|
||||||
{
|
{
|
||||||
/* If we've seen traffic both ways, this is some kind of UDP
|
/* If we've seen traffic both ways, this is some kind of UDP
|
||||||
@ -91,7 +91,7 @@ static bool udplite_new(struct nf_conn *ct, const struct sk_buff *skb,
|
|||||||
|
|
||||||
static int udplite_error(struct sk_buff *skb, unsigned int dataoff,
|
static int udplite_error(struct sk_buff *skb, unsigned int dataoff,
|
||||||
enum ip_conntrack_info *ctinfo,
|
enum ip_conntrack_info *ctinfo,
|
||||||
int pf,
|
u_int8_t pf,
|
||||||
unsigned int hooknum)
|
unsigned int hooknum)
|
||||||
{
|
{
|
||||||
unsigned int udplen = skb->len - dataoff;
|
unsigned int udplen = skb->len - dataoff;
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
/* core.c */
|
/* core.c */
|
||||||
extern unsigned int nf_iterate(struct list_head *head,
|
extern unsigned int nf_iterate(struct list_head *head,
|
||||||
struct sk_buff *skb,
|
struct sk_buff *skb,
|
||||||
int hook,
|
unsigned int hook,
|
||||||
const struct net_device *indev,
|
const struct net_device *indev,
|
||||||
const struct net_device *outdev,
|
const struct net_device *outdev,
|
||||||
struct list_head **i,
|
struct list_head **i,
|
||||||
@ -25,7 +25,7 @@ extern unsigned int nf_iterate(struct list_head *head,
|
|||||||
/* nf_queue.c */
|
/* nf_queue.c */
|
||||||
extern int nf_queue(struct sk_buff *skb,
|
extern int nf_queue(struct sk_buff *skb,
|
||||||
struct list_head *elem,
|
struct list_head *elem,
|
||||||
int pf, unsigned int hook,
|
u_int8_t pf, unsigned int hook,
|
||||||
struct net_device *indev,
|
struct net_device *indev,
|
||||||
struct net_device *outdev,
|
struct net_device *outdev,
|
||||||
int (*okfn)(struct sk_buff *),
|
int (*okfn)(struct sk_buff *),
|
||||||
|
@ -20,7 +20,7 @@ static DEFINE_MUTEX(nf_log_mutex);
|
|||||||
|
|
||||||
/* return EBUSY if somebody else is registered, EEXIST if the same logger
|
/* return EBUSY if somebody else is registered, EEXIST if the same logger
|
||||||
* is registred, 0 on success. */
|
* is registred, 0 on success. */
|
||||||
int nf_log_register(int pf, const struct nf_logger *logger)
|
int nf_log_register(u_int8_t pf, const struct nf_logger *logger)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ int nf_log_register(int pf, const struct nf_logger *logger)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(nf_log_register);
|
EXPORT_SYMBOL(nf_log_register);
|
||||||
|
|
||||||
void nf_log_unregister_pf(int pf)
|
void nf_log_unregister_pf(u_int8_t pf)
|
||||||
{
|
{
|
||||||
if (pf >= NPROTO)
|
if (pf >= NPROTO)
|
||||||
return;
|
return;
|
||||||
@ -73,7 +73,7 @@ void nf_log_unregister(const struct nf_logger *logger)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(nf_log_unregister);
|
EXPORT_SYMBOL(nf_log_unregister);
|
||||||
|
|
||||||
void nf_log_packet(int pf,
|
void nf_log_packet(u_int8_t pf,
|
||||||
unsigned int hooknum,
|
unsigned int hooknum,
|
||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
const struct net_device *in,
|
const struct net_device *in,
|
||||||
|
@ -22,7 +22,7 @@ static DEFINE_MUTEX(queue_handler_mutex);
|
|||||||
|
|
||||||
/* return EBUSY when somebody else is registered, return EEXIST if the
|
/* return EBUSY when somebody else is registered, return EEXIST if the
|
||||||
* same handler is registered, return 0 in case of success. */
|
* same handler is registered, return 0 in case of success. */
|
||||||
int nf_register_queue_handler(int pf, const struct nf_queue_handler *qh)
|
int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ int nf_register_queue_handler(int pf, const struct nf_queue_handler *qh)
|
|||||||
EXPORT_SYMBOL(nf_register_queue_handler);
|
EXPORT_SYMBOL(nf_register_queue_handler);
|
||||||
|
|
||||||
/* The caller must flush their queue before this */
|
/* The caller must flush their queue before this */
|
||||||
int nf_unregister_queue_handler(int pf, const struct nf_queue_handler *qh)
|
int nf_unregister_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh)
|
||||||
{
|
{
|
||||||
if (pf >= NPROTO)
|
if (pf >= NPROTO)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -67,7 +67,7 @@ EXPORT_SYMBOL(nf_unregister_queue_handler);
|
|||||||
|
|
||||||
void nf_unregister_queue_handlers(const struct nf_queue_handler *qh)
|
void nf_unregister_queue_handlers(const struct nf_queue_handler *qh)
|
||||||
{
|
{
|
||||||
int pf;
|
u_int8_t pf;
|
||||||
|
|
||||||
mutex_lock(&queue_handler_mutex);
|
mutex_lock(&queue_handler_mutex);
|
||||||
for (pf = 0; pf < NPROTO; pf++) {
|
for (pf = 0; pf < NPROTO; pf++) {
|
||||||
@ -107,7 +107,7 @@ static void nf_queue_entry_release_refs(struct nf_queue_entry *entry)
|
|||||||
*/
|
*/
|
||||||
static int __nf_queue(struct sk_buff *skb,
|
static int __nf_queue(struct sk_buff *skb,
|
||||||
struct list_head *elem,
|
struct list_head *elem,
|
||||||
int pf, unsigned int hook,
|
u_int8_t pf, unsigned int hook,
|
||||||
struct net_device *indev,
|
struct net_device *indev,
|
||||||
struct net_device *outdev,
|
struct net_device *outdev,
|
||||||
int (*okfn)(struct sk_buff *),
|
int (*okfn)(struct sk_buff *),
|
||||||
@ -191,7 +191,7 @@ err:
|
|||||||
|
|
||||||
int nf_queue(struct sk_buff *skb,
|
int nf_queue(struct sk_buff *skb,
|
||||||
struct list_head *elem,
|
struct list_head *elem,
|
||||||
int pf, unsigned int hook,
|
u_int8_t pf, unsigned int hook,
|
||||||
struct net_device *indev,
|
struct net_device *indev,
|
||||||
struct net_device *outdev,
|
struct net_device *outdev,
|
||||||
int (*okfn)(struct sk_buff *),
|
int (*okfn)(struct sk_buff *),
|
||||||
|
@ -60,7 +60,7 @@ void nf_unregister_sockopt(struct nf_sockopt_ops *reg)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(nf_unregister_sockopt);
|
EXPORT_SYMBOL(nf_unregister_sockopt);
|
||||||
|
|
||||||
static struct nf_sockopt_ops *nf_sockopt_find(struct sock *sk, int pf,
|
static struct nf_sockopt_ops *nf_sockopt_find(struct sock *sk, u_int8_t pf,
|
||||||
int val, int get)
|
int val, int get)
|
||||||
{
|
{
|
||||||
struct nf_sockopt_ops *ops;
|
struct nf_sockopt_ops *ops;
|
||||||
@ -96,7 +96,7 @@ out:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Call get/setsockopt() */
|
/* Call get/setsockopt() */
|
||||||
static int nf_sockopt(struct sock *sk, int pf, int val,
|
static int nf_sockopt(struct sock *sk, u_int8_t pf, int val,
|
||||||
char __user *opt, int *len, int get)
|
char __user *opt, int *len, int get)
|
||||||
{
|
{
|
||||||
struct nf_sockopt_ops *ops;
|
struct nf_sockopt_ops *ops;
|
||||||
@ -115,21 +115,22 @@ static int nf_sockopt(struct sock *sk, int pf, int val,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int nf_setsockopt(struct sock *sk, int pf, int val, char __user *opt,
|
int nf_setsockopt(struct sock *sk, u_int8_t pf, int val, char __user *opt,
|
||||||
int len)
|
int len)
|
||||||
{
|
{
|
||||||
return nf_sockopt(sk, pf, val, opt, &len, 0);
|
return nf_sockopt(sk, pf, val, opt, &len, 0);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(nf_setsockopt);
|
EXPORT_SYMBOL(nf_setsockopt);
|
||||||
|
|
||||||
int nf_getsockopt(struct sock *sk, int pf, int val, char __user *opt, int *len)
|
int nf_getsockopt(struct sock *sk, u_int8_t pf, int val, char __user *opt,
|
||||||
|
int *len)
|
||||||
{
|
{
|
||||||
return nf_sockopt(sk, pf, val, opt, len, 1);
|
return nf_sockopt(sk, pf, val, opt, len, 1);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(nf_getsockopt);
|
EXPORT_SYMBOL(nf_getsockopt);
|
||||||
|
|
||||||
#ifdef CONFIG_COMPAT
|
#ifdef CONFIG_COMPAT
|
||||||
static int compat_nf_sockopt(struct sock *sk, int pf, int val,
|
static int compat_nf_sockopt(struct sock *sk, u_int8_t pf, int val,
|
||||||
char __user *opt, int *len, int get)
|
char __user *opt, int *len, int get)
|
||||||
{
|
{
|
||||||
struct nf_sockopt_ops *ops;
|
struct nf_sockopt_ops *ops;
|
||||||
@ -155,14 +156,14 @@ static int compat_nf_sockopt(struct sock *sk, int pf, int val,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int compat_nf_setsockopt(struct sock *sk, int pf,
|
int compat_nf_setsockopt(struct sock *sk, u_int8_t pf,
|
||||||
int val, char __user *opt, int len)
|
int val, char __user *opt, int len)
|
||||||
{
|
{
|
||||||
return compat_nf_sockopt(sk, pf, val, opt, &len, 0);
|
return compat_nf_sockopt(sk, pf, val, opt, &len, 0);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(compat_nf_setsockopt);
|
EXPORT_SYMBOL(compat_nf_setsockopt);
|
||||||
|
|
||||||
int compat_nf_getsockopt(struct sock *sk, int pf,
|
int compat_nf_getsockopt(struct sock *sk, u_int8_t pf,
|
||||||
int val, char __user *opt, int *len)
|
int val, char __user *opt, int *len)
|
||||||
{
|
{
|
||||||
return compat_nf_sockopt(sk, pf, val, opt, len, 1);
|
return compat_nf_sockopt(sk, pf, val, opt, len, 1);
|
||||||
|
@ -359,7 +359,7 @@ static inline int
|
|||||||
__build_packet_message(struct nfulnl_instance *inst,
|
__build_packet_message(struct nfulnl_instance *inst,
|
||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
unsigned int data_len,
|
unsigned int data_len,
|
||||||
unsigned int pf,
|
u_int8_t pf,
|
||||||
unsigned int hooknum,
|
unsigned int hooknum,
|
||||||
const struct net_device *indev,
|
const struct net_device *indev,
|
||||||
const struct net_device *outdev,
|
const struct net_device *outdev,
|
||||||
@ -534,7 +534,7 @@ static struct nf_loginfo default_loginfo = {
|
|||||||
|
|
||||||
/* log handler for internal netfilter logging api */
|
/* log handler for internal netfilter logging api */
|
||||||
static void
|
static void
|
||||||
nfulnl_log_packet(unsigned int pf,
|
nfulnl_log_packet(u_int8_t pf,
|
||||||
unsigned int hooknum,
|
unsigned int hooknum,
|
||||||
const struct sk_buff *skb,
|
const struct sk_buff *skb,
|
||||||
const struct net_device *in,
|
const struct net_device *in,
|
||||||
|
@ -68,7 +68,8 @@ static const char *const xt_prefix[NPROTO] = {
|
|||||||
int
|
int
|
||||||
xt_register_target(struct xt_target *target)
|
xt_register_target(struct xt_target *target)
|
||||||
{
|
{
|
||||||
int ret, af = target->family;
|
u_int8_t af = target->family;
|
||||||
|
int ret;
|
||||||
|
|
||||||
ret = mutex_lock_interruptible(&xt[af].mutex);
|
ret = mutex_lock_interruptible(&xt[af].mutex);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
@ -82,7 +83,7 @@ EXPORT_SYMBOL(xt_register_target);
|
|||||||
void
|
void
|
||||||
xt_unregister_target(struct xt_target *target)
|
xt_unregister_target(struct xt_target *target)
|
||||||
{
|
{
|
||||||
int af = target->family;
|
u_int8_t af = target->family;
|
||||||
|
|
||||||
mutex_lock(&xt[af].mutex);
|
mutex_lock(&xt[af].mutex);
|
||||||
list_del(&target->list);
|
list_del(&target->list);
|
||||||
@ -123,7 +124,8 @@ EXPORT_SYMBOL(xt_unregister_targets);
|
|||||||
int
|
int
|
||||||
xt_register_match(struct xt_match *match)
|
xt_register_match(struct xt_match *match)
|
||||||
{
|
{
|
||||||
int ret, af = match->family;
|
u_int8_t af = match->family;
|
||||||
|
int ret;
|
||||||
|
|
||||||
ret = mutex_lock_interruptible(&xt[af].mutex);
|
ret = mutex_lock_interruptible(&xt[af].mutex);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
@ -139,7 +141,7 @@ EXPORT_SYMBOL(xt_register_match);
|
|||||||
void
|
void
|
||||||
xt_unregister_match(struct xt_match *match)
|
xt_unregister_match(struct xt_match *match)
|
||||||
{
|
{
|
||||||
int af = match->family;
|
u_int8_t af = match->family;
|
||||||
|
|
||||||
mutex_lock(&xt[af].mutex);
|
mutex_lock(&xt[af].mutex);
|
||||||
list_del(&match->list);
|
list_del(&match->list);
|
||||||
@ -185,7 +187,7 @@ EXPORT_SYMBOL(xt_unregister_matches);
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Find match, grabs ref. Returns ERR_PTR() on error. */
|
/* Find match, grabs ref. Returns ERR_PTR() on error. */
|
||||||
struct xt_match *xt_find_match(int af, const char *name, u8 revision)
|
struct xt_match *xt_find_match(u8 af, const char *name, u8 revision)
|
||||||
{
|
{
|
||||||
struct xt_match *m;
|
struct xt_match *m;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
@ -210,7 +212,7 @@ struct xt_match *xt_find_match(int af, const char *name, u8 revision)
|
|||||||
EXPORT_SYMBOL(xt_find_match);
|
EXPORT_SYMBOL(xt_find_match);
|
||||||
|
|
||||||
/* Find target, grabs ref. Returns ERR_PTR() on error. */
|
/* Find target, grabs ref. Returns ERR_PTR() on error. */
|
||||||
struct xt_target *xt_find_target(int af, const char *name, u8 revision)
|
struct xt_target *xt_find_target(u8 af, const char *name, u8 revision)
|
||||||
{
|
{
|
||||||
struct xt_target *t;
|
struct xt_target *t;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
@ -234,7 +236,7 @@ struct xt_target *xt_find_target(int af, const char *name, u8 revision)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(xt_find_target);
|
EXPORT_SYMBOL(xt_find_target);
|
||||||
|
|
||||||
struct xt_target *xt_request_find_target(int af, const char *name, u8 revision)
|
struct xt_target *xt_request_find_target(u8 af, const char *name, u8 revision)
|
||||||
{
|
{
|
||||||
struct xt_target *target;
|
struct xt_target *target;
|
||||||
|
|
||||||
@ -246,7 +248,7 @@ struct xt_target *xt_request_find_target(int af, const char *name, u8 revision)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(xt_request_find_target);
|
EXPORT_SYMBOL_GPL(xt_request_find_target);
|
||||||
|
|
||||||
static int match_revfn(int af, const char *name, u8 revision, int *bestp)
|
static int match_revfn(u8 af, const char *name, u8 revision, int *bestp)
|
||||||
{
|
{
|
||||||
const struct xt_match *m;
|
const struct xt_match *m;
|
||||||
int have_rev = 0;
|
int have_rev = 0;
|
||||||
@ -262,7 +264,7 @@ static int match_revfn(int af, const char *name, u8 revision, int *bestp)
|
|||||||
return have_rev;
|
return have_rev;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int target_revfn(int af, const char *name, u8 revision, int *bestp)
|
static int target_revfn(u8 af, const char *name, u8 revision, int *bestp)
|
||||||
{
|
{
|
||||||
const struct xt_target *t;
|
const struct xt_target *t;
|
||||||
int have_rev = 0;
|
int have_rev = 0;
|
||||||
@ -279,7 +281,7 @@ static int target_revfn(int af, const char *name, u8 revision, int *bestp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Returns true or false (if no such extension at all) */
|
/* Returns true or false (if no such extension at all) */
|
||||||
int xt_find_revision(int af, const char *name, u8 revision, int target,
|
int xt_find_revision(u8 af, const char *name, u8 revision, int target,
|
||||||
int *err)
|
int *err)
|
||||||
{
|
{
|
||||||
int have_rev, best = -1;
|
int have_rev, best = -1;
|
||||||
@ -337,7 +339,7 @@ int xt_check_match(const struct xt_match *match, unsigned short family,
|
|||||||
EXPORT_SYMBOL_GPL(xt_check_match);
|
EXPORT_SYMBOL_GPL(xt_check_match);
|
||||||
|
|
||||||
#ifdef CONFIG_COMPAT
|
#ifdef CONFIG_COMPAT
|
||||||
int xt_compat_add_offset(int af, unsigned int offset, short delta)
|
int xt_compat_add_offset(u_int8_t af, unsigned int offset, short delta)
|
||||||
{
|
{
|
||||||
struct compat_delta *tmp;
|
struct compat_delta *tmp;
|
||||||
|
|
||||||
@ -359,7 +361,7 @@ int xt_compat_add_offset(int af, unsigned int offset, short delta)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(xt_compat_add_offset);
|
EXPORT_SYMBOL_GPL(xt_compat_add_offset);
|
||||||
|
|
||||||
void xt_compat_flush_offsets(int af)
|
void xt_compat_flush_offsets(u_int8_t af)
|
||||||
{
|
{
|
||||||
struct compat_delta *tmp, *next;
|
struct compat_delta *tmp, *next;
|
||||||
|
|
||||||
@ -373,7 +375,7 @@ void xt_compat_flush_offsets(int af)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(xt_compat_flush_offsets);
|
EXPORT_SYMBOL_GPL(xt_compat_flush_offsets);
|
||||||
|
|
||||||
short xt_compat_calc_jump(int af, unsigned int offset)
|
short xt_compat_calc_jump(u_int8_t af, unsigned int offset)
|
||||||
{
|
{
|
||||||
struct compat_delta *tmp;
|
struct compat_delta *tmp;
|
||||||
short delta;
|
short delta;
|
||||||
@ -590,7 +592,8 @@ void xt_free_table_info(struct xt_table_info *info)
|
|||||||
EXPORT_SYMBOL(xt_free_table_info);
|
EXPORT_SYMBOL(xt_free_table_info);
|
||||||
|
|
||||||
/* Find table by name, grabs mutex & ref. Returns ERR_PTR() on error. */
|
/* Find table by name, grabs mutex & ref. Returns ERR_PTR() on error. */
|
||||||
struct xt_table *xt_find_table_lock(struct net *net, int af, const char *name)
|
struct xt_table *xt_find_table_lock(struct net *net, u_int8_t af,
|
||||||
|
const char *name)
|
||||||
{
|
{
|
||||||
struct xt_table *t;
|
struct xt_table *t;
|
||||||
|
|
||||||
@ -612,13 +615,13 @@ void xt_table_unlock(struct xt_table *table)
|
|||||||
EXPORT_SYMBOL_GPL(xt_table_unlock);
|
EXPORT_SYMBOL_GPL(xt_table_unlock);
|
||||||
|
|
||||||
#ifdef CONFIG_COMPAT
|
#ifdef CONFIG_COMPAT
|
||||||
void xt_compat_lock(int af)
|
void xt_compat_lock(u_int8_t af)
|
||||||
{
|
{
|
||||||
mutex_lock(&xt[af].compat_mutex);
|
mutex_lock(&xt[af].compat_mutex);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(xt_compat_lock);
|
EXPORT_SYMBOL_GPL(xt_compat_lock);
|
||||||
|
|
||||||
void xt_compat_unlock(int af)
|
void xt_compat_unlock(u_int8_t af)
|
||||||
{
|
{
|
||||||
mutex_unlock(&xt[af].compat_mutex);
|
mutex_unlock(&xt[af].compat_mutex);
|
||||||
}
|
}
|
||||||
@ -722,13 +725,13 @@ EXPORT_SYMBOL_GPL(xt_unregister_table);
|
|||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
struct xt_names_priv {
|
struct xt_names_priv {
|
||||||
struct seq_net_private p;
|
struct seq_net_private p;
|
||||||
int af;
|
u_int8_t af;
|
||||||
};
|
};
|
||||||
static void *xt_table_seq_start(struct seq_file *seq, loff_t *pos)
|
static void *xt_table_seq_start(struct seq_file *seq, loff_t *pos)
|
||||||
{
|
{
|
||||||
struct xt_names_priv *priv = seq->private;
|
struct xt_names_priv *priv = seq->private;
|
||||||
struct net *net = seq_file_net(seq);
|
struct net *net = seq_file_net(seq);
|
||||||
int af = priv->af;
|
u_int8_t af = priv->af;
|
||||||
|
|
||||||
mutex_lock(&xt[af].mutex);
|
mutex_lock(&xt[af].mutex);
|
||||||
return seq_list_start(&net->xt.tables[af], *pos);
|
return seq_list_start(&net->xt.tables[af], *pos);
|
||||||
@ -738,7 +741,7 @@ static void *xt_table_seq_next(struct seq_file *seq, void *v, loff_t *pos)
|
|||||||
{
|
{
|
||||||
struct xt_names_priv *priv = seq->private;
|
struct xt_names_priv *priv = seq->private;
|
||||||
struct net *net = seq_file_net(seq);
|
struct net *net = seq_file_net(seq);
|
||||||
int af = priv->af;
|
u_int8_t af = priv->af;
|
||||||
|
|
||||||
return seq_list_next(v, &net->xt.tables[af], pos);
|
return seq_list_next(v, &net->xt.tables[af], pos);
|
||||||
}
|
}
|
||||||
@ -746,7 +749,7 @@ static void *xt_table_seq_next(struct seq_file *seq, void *v, loff_t *pos)
|
|||||||
static void xt_table_seq_stop(struct seq_file *seq, void *v)
|
static void xt_table_seq_stop(struct seq_file *seq, void *v)
|
||||||
{
|
{
|
||||||
struct xt_names_priv *priv = seq->private;
|
struct xt_names_priv *priv = seq->private;
|
||||||
int af = priv->af;
|
u_int8_t af = priv->af;
|
||||||
|
|
||||||
mutex_unlock(&xt[af].mutex);
|
mutex_unlock(&xt[af].mutex);
|
||||||
}
|
}
|
||||||
@ -922,7 +925,7 @@ static const struct file_operations xt_target_ops = {
|
|||||||
|
|
||||||
#endif /* CONFIG_PROC_FS */
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
||||||
int xt_proto_init(struct net *net, int af)
|
int xt_proto_init(struct net *net, u_int8_t af)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
char buf[XT_FUNCTION_MAXNAMELEN];
|
char buf[XT_FUNCTION_MAXNAMELEN];
|
||||||
@ -974,7 +977,7 @@ out:
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(xt_proto_init);
|
EXPORT_SYMBOL_GPL(xt_proto_init);
|
||||||
|
|
||||||
void xt_proto_fini(struct net *net, int af)
|
void xt_proto_fini(struct net *net, u_int8_t af)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
char buf[XT_FUNCTION_MAXNAMELEN];
|
char buf[XT_FUNCTION_MAXNAMELEN];
|
||||||
|
@ -82,7 +82,7 @@ static inline bool already_closed(const struct nf_conn *conn)
|
|||||||
static inline unsigned int
|
static inline unsigned int
|
||||||
same_source_net(const union nf_inet_addr *addr,
|
same_source_net(const union nf_inet_addr *addr,
|
||||||
const union nf_inet_addr *mask,
|
const union nf_inet_addr *mask,
|
||||||
const union nf_inet_addr *u3, unsigned int family)
|
const union nf_inet_addr *u3, u_int8_t family)
|
||||||
{
|
{
|
||||||
if (family == AF_INET) {
|
if (family == AF_INET) {
|
||||||
return (addr->ip & mask->ip) == (u3->ip & mask->ip);
|
return (addr->ip & mask->ip) == (u3->ip & mask->ip);
|
||||||
|
@ -133,7 +133,7 @@ conntrack_addrcmp(const union nf_inet_addr *kaddr,
|
|||||||
static inline bool
|
static inline bool
|
||||||
conntrack_mt_origsrc(const struct nf_conn *ct,
|
conntrack_mt_origsrc(const struct nf_conn *ct,
|
||||||
const struct xt_conntrack_mtinfo1 *info,
|
const struct xt_conntrack_mtinfo1 *info,
|
||||||
unsigned int family)
|
u_int8_t family)
|
||||||
{
|
{
|
||||||
return conntrack_addrcmp(&ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.u3,
|
return conntrack_addrcmp(&ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.u3,
|
||||||
&info->origsrc_addr, &info->origsrc_mask, family);
|
&info->origsrc_addr, &info->origsrc_mask, family);
|
||||||
@ -142,7 +142,7 @@ conntrack_mt_origsrc(const struct nf_conn *ct,
|
|||||||
static inline bool
|
static inline bool
|
||||||
conntrack_mt_origdst(const struct nf_conn *ct,
|
conntrack_mt_origdst(const struct nf_conn *ct,
|
||||||
const struct xt_conntrack_mtinfo1 *info,
|
const struct xt_conntrack_mtinfo1 *info,
|
||||||
unsigned int family)
|
u_int8_t family)
|
||||||
{
|
{
|
||||||
return conntrack_addrcmp(&ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.u3,
|
return conntrack_addrcmp(&ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.u3,
|
||||||
&info->origdst_addr, &info->origdst_mask, family);
|
&info->origdst_addr, &info->origdst_mask, family);
|
||||||
@ -151,7 +151,7 @@ conntrack_mt_origdst(const struct nf_conn *ct,
|
|||||||
static inline bool
|
static inline bool
|
||||||
conntrack_mt_replsrc(const struct nf_conn *ct,
|
conntrack_mt_replsrc(const struct nf_conn *ct,
|
||||||
const struct xt_conntrack_mtinfo1 *info,
|
const struct xt_conntrack_mtinfo1 *info,
|
||||||
unsigned int family)
|
u_int8_t family)
|
||||||
{
|
{
|
||||||
return conntrack_addrcmp(&ct->tuplehash[IP_CT_DIR_REPLY].tuple.src.u3,
|
return conntrack_addrcmp(&ct->tuplehash[IP_CT_DIR_REPLY].tuple.src.u3,
|
||||||
&info->replsrc_addr, &info->replsrc_mask, family);
|
&info->replsrc_addr, &info->replsrc_mask, family);
|
||||||
@ -160,7 +160,7 @@ conntrack_mt_replsrc(const struct nf_conn *ct,
|
|||||||
static inline bool
|
static inline bool
|
||||||
conntrack_mt_repldst(const struct nf_conn *ct,
|
conntrack_mt_repldst(const struct nf_conn *ct,
|
||||||
const struct xt_conntrack_mtinfo1 *info,
|
const struct xt_conntrack_mtinfo1 *info,
|
||||||
unsigned int family)
|
u_int8_t family)
|
||||||
{
|
{
|
||||||
return conntrack_addrcmp(&ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3,
|
return conntrack_addrcmp(&ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3,
|
||||||
&info->repldst_addr, &info->repldst_mask, family);
|
&info->repldst_addr, &info->repldst_mask, family);
|
||||||
|
@ -80,7 +80,7 @@ struct dsthash_ent {
|
|||||||
struct xt_hashlimit_htable {
|
struct xt_hashlimit_htable {
|
||||||
struct hlist_node node; /* global list of all htables */
|
struct hlist_node node; /* global list of all htables */
|
||||||
atomic_t use;
|
atomic_t use;
|
||||||
int family;
|
u_int8_t family;
|
||||||
|
|
||||||
struct hashlimit_cfg1 cfg; /* config */
|
struct hashlimit_cfg1 cfg; /* config */
|
||||||
|
|
||||||
@ -185,7 +185,7 @@ dsthash_free(struct xt_hashlimit_htable *ht, struct dsthash_ent *ent)
|
|||||||
}
|
}
|
||||||
static void htable_gc(unsigned long htlong);
|
static void htable_gc(unsigned long htlong);
|
||||||
|
|
||||||
static int htable_create_v0(struct xt_hashlimit_info *minfo, int family)
|
static int htable_create_v0(struct xt_hashlimit_info *minfo, u_int8_t family)
|
||||||
{
|
{
|
||||||
struct xt_hashlimit_htable *hinfo;
|
struct xt_hashlimit_htable *hinfo;
|
||||||
unsigned int size;
|
unsigned int size;
|
||||||
@ -258,8 +258,7 @@ static int htable_create_v0(struct xt_hashlimit_info *minfo, int family)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int htable_create(struct xt_hashlimit_mtinfo1 *minfo,
|
static int htable_create(struct xt_hashlimit_mtinfo1 *minfo, u_int8_t family)
|
||||||
unsigned int family)
|
|
||||||
{
|
{
|
||||||
struct xt_hashlimit_htable *hinfo;
|
struct xt_hashlimit_htable *hinfo;
|
||||||
unsigned int size;
|
unsigned int size;
|
||||||
@ -378,7 +377,7 @@ static void htable_destroy(struct xt_hashlimit_htable *hinfo)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static struct xt_hashlimit_htable *htable_find_get(const char *name,
|
static struct xt_hashlimit_htable *htable_find_get(const char *name,
|
||||||
int family)
|
u_int8_t family)
|
||||||
{
|
{
|
||||||
struct xt_hashlimit_htable *hinfo;
|
struct xt_hashlimit_htable *hinfo;
|
||||||
struct hlist_node *pos;
|
struct hlist_node *pos;
|
||||||
@ -901,7 +900,7 @@ static void dl_seq_stop(struct seq_file *s, void *v)
|
|||||||
spin_unlock_bh(&htable->lock);
|
spin_unlock_bh(&htable->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int dl_seq_real_show(struct dsthash_ent *ent, int family,
|
static int dl_seq_real_show(struct dsthash_ent *ent, u_int8_t family,
|
||||||
struct seq_file *s)
|
struct seq_file *s)
|
||||||
{
|
{
|
||||||
/* recalculate to show accurate numbers */
|
/* recalculate to show accurate numbers */
|
||||||
|
Reference in New Issue
Block a user