[NETFILTER]: nf_nat: mark NAT protocols const
Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3ee9e76038
commit
2b628a0866
|
@ -46,21 +46,21 @@ struct nf_nat_protocol
|
|||
};
|
||||
|
||||
/* Protocol registration. */
|
||||
extern int nf_nat_protocol_register(struct nf_nat_protocol *proto);
|
||||
extern void nf_nat_protocol_unregister(struct nf_nat_protocol *proto);
|
||||
extern int nf_nat_protocol_register(const struct nf_nat_protocol *proto);
|
||||
extern void nf_nat_protocol_unregister(const struct nf_nat_protocol *proto);
|
||||
|
||||
extern struct nf_nat_protocol *nf_nat_proto_find_get(u_int8_t protocol);
|
||||
extern void nf_nat_proto_put(struct nf_nat_protocol *proto);
|
||||
extern const struct nf_nat_protocol *nf_nat_proto_find_get(u_int8_t protocol);
|
||||
extern void nf_nat_proto_put(const struct nf_nat_protocol *proto);
|
||||
|
||||
/* Built-in protocols. */
|
||||
extern struct nf_nat_protocol nf_nat_protocol_tcp;
|
||||
extern struct nf_nat_protocol nf_nat_protocol_udp;
|
||||
extern struct nf_nat_protocol nf_nat_protocol_icmp;
|
||||
extern struct nf_nat_protocol nf_nat_unknown_protocol;
|
||||
extern const struct nf_nat_protocol nf_nat_protocol_tcp;
|
||||
extern const struct nf_nat_protocol nf_nat_protocol_udp;
|
||||
extern const struct nf_nat_protocol nf_nat_protocol_icmp;
|
||||
extern const struct nf_nat_protocol nf_nat_unknown_protocol;
|
||||
|
||||
extern int init_protocols(void) __init;
|
||||
extern void cleanup_protocols(void);
|
||||
extern struct nf_nat_protocol *find_nat_proto(u_int16_t protonum);
|
||||
extern const struct nf_nat_protocol *find_nat_proto(u_int16_t protonum);
|
||||
|
||||
extern int nf_nat_port_range_to_nlattr(struct sk_buff *skb,
|
||||
const struct nf_nat_range *range);
|
||||
|
|
|
@ -42,18 +42,18 @@ static int nf_nat_vmalloced;
|
|||
static struct hlist_head *bysource;
|
||||
|
||||
#define MAX_IP_NAT_PROTO 256
|
||||
static struct nf_nat_protocol *nf_nat_protos[MAX_IP_NAT_PROTO];
|
||||
static const struct nf_nat_protocol *nf_nat_protos[MAX_IP_NAT_PROTO];
|
||||
|
||||
static inline struct nf_nat_protocol *
|
||||
static inline const struct nf_nat_protocol *
|
||||
__nf_nat_proto_find(u_int8_t protonum)
|
||||
{
|
||||
return rcu_dereference(nf_nat_protos[protonum]);
|
||||
}
|
||||
|
||||
struct nf_nat_protocol *
|
||||
const struct nf_nat_protocol *
|
||||
nf_nat_proto_find_get(u_int8_t protonum)
|
||||
{
|
||||
struct nf_nat_protocol *p;
|
||||
const struct nf_nat_protocol *p;
|
||||
|
||||
rcu_read_lock();
|
||||
p = __nf_nat_proto_find(protonum);
|
||||
|
@ -66,7 +66,7 @@ nf_nat_proto_find_get(u_int8_t protonum)
|
|||
EXPORT_SYMBOL_GPL(nf_nat_proto_find_get);
|
||||
|
||||
void
|
||||
nf_nat_proto_put(struct nf_nat_protocol *p)
|
||||
nf_nat_proto_put(const struct nf_nat_protocol *p)
|
||||
{
|
||||
module_put(p->me);
|
||||
}
|
||||
|
@ -105,7 +105,7 @@ static int
|
|||
in_range(const struct nf_conntrack_tuple *tuple,
|
||||
const struct nf_nat_range *range)
|
||||
{
|
||||
struct nf_nat_protocol *proto;
|
||||
const struct nf_nat_protocol *proto;
|
||||
int ret = 0;
|
||||
|
||||
/* If we are supposed to map IPs, then we must be in the
|
||||
|
@ -226,7 +226,7 @@ get_unique_tuple(struct nf_conntrack_tuple *tuple,
|
|||
struct nf_conn *ct,
|
||||
enum nf_nat_manip_type maniptype)
|
||||
{
|
||||
struct nf_nat_protocol *proto;
|
||||
const struct nf_nat_protocol *proto;
|
||||
|
||||
/* 1) If this srcip/proto/src-proto-part is currently mapped,
|
||||
and that same mapping gives a unique tuple within the given
|
||||
|
@ -355,7 +355,7 @@ manip_pkt(u_int16_t proto,
|
|||
enum nf_nat_manip_type maniptype)
|
||||
{
|
||||
struct iphdr *iph;
|
||||
struct nf_nat_protocol *p;
|
||||
const struct nf_nat_protocol *p;
|
||||
|
||||
if (!skb_make_writable(skb, iphdroff + sizeof(*iph)))
|
||||
return 0;
|
||||
|
@ -515,7 +515,7 @@ int nf_nat_icmp_reply_translation(struct nf_conn *ct,
|
|||
EXPORT_SYMBOL_GPL(nf_nat_icmp_reply_translation);
|
||||
|
||||
/* Protocol registration. */
|
||||
int nf_nat_protocol_register(struct nf_nat_protocol *proto)
|
||||
int nf_nat_protocol_register(const struct nf_nat_protocol *proto)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
|
@ -532,7 +532,7 @@ int nf_nat_protocol_register(struct nf_nat_protocol *proto)
|
|||
EXPORT_SYMBOL(nf_nat_protocol_register);
|
||||
|
||||
/* Noone stores the protocol anywhere; simply delete it. */
|
||||
void nf_nat_protocol_unregister(struct nf_nat_protocol *proto)
|
||||
void nf_nat_protocol_unregister(const struct nf_nat_protocol *proto)
|
||||
{
|
||||
write_lock_bh(&nf_nat_lock);
|
||||
rcu_assign_pointer(nf_nat_protos[proto->protonum],
|
||||
|
|
|
@ -135,7 +135,7 @@ gre_manip_pkt(struct sk_buff *skb, unsigned int iphdroff,
|
|||
return 1;
|
||||
}
|
||||
|
||||
static struct nf_nat_protocol gre __read_mostly = {
|
||||
static const struct nf_nat_protocol gre = {
|
||||
.name = "GRE",
|
||||
.protonum = IPPROTO_GRE,
|
||||
.me = THIS_MODULE,
|
||||
|
|
|
@ -71,7 +71,7 @@ icmp_manip_pkt(struct sk_buff *skb,
|
|||
return 1;
|
||||
}
|
||||
|
||||
struct nf_nat_protocol nf_nat_protocol_icmp = {
|
||||
const struct nf_nat_protocol nf_nat_protocol_icmp = {
|
||||
.name = "ICMP",
|
||||
.protonum = IPPROTO_ICMP,
|
||||
.me = THIS_MODULE,
|
||||
|
|
|
@ -137,7 +137,7 @@ tcp_manip_pkt(struct sk_buff *skb,
|
|||
return 1;
|
||||
}
|
||||
|
||||
struct nf_nat_protocol nf_nat_protocol_tcp = {
|
||||
const struct nf_nat_protocol nf_nat_protocol_tcp = {
|
||||
.name = "TCP",
|
||||
.protonum = IPPROTO_TCP,
|
||||
.me = THIS_MODULE,
|
||||
|
|
|
@ -127,7 +127,7 @@ udp_manip_pkt(struct sk_buff *skb,
|
|||
return 1;
|
||||
}
|
||||
|
||||
struct nf_nat_protocol nf_nat_protocol_udp = {
|
||||
const struct nf_nat_protocol nf_nat_protocol_udp = {
|
||||
.name = "UDP",
|
||||
.protonum = IPPROTO_UDP,
|
||||
.me = THIS_MODULE,
|
||||
|
|
|
@ -45,7 +45,7 @@ unknown_manip_pkt(struct sk_buff *skb,
|
|||
return 1;
|
||||
}
|
||||
|
||||
struct nf_nat_protocol nf_nat_unknown_protocol = {
|
||||
const struct nf_nat_protocol nf_nat_unknown_protocol = {
|
||||
.name = "unknown",
|
||||
/* .me isn't set: getting a ref to this cannot fail. */
|
||||
.manip_pkt = unknown_manip_pkt,
|
||||
|
|
|
@ -695,7 +695,7 @@ static int nfnetlink_parse_nat_proto(struct nlattr *attr,
|
|||
struct nf_nat_range *range)
|
||||
{
|
||||
struct nlattr *tb[CTA_PROTONAT_MAX+1];
|
||||
struct nf_nat_protocol *npt;
|
||||
const struct nf_nat_protocol *npt;
|
||||
int err;
|
||||
|
||||
err = nla_parse_nested(tb, CTA_PROTONAT_MAX, attr, protonat_nla_policy);
|
||||
|
|
Loading…
Reference in New Issue