Commit 2b628a08 authored by Patrick McHardy's avatar Patrick McHardy Committed by David S. Miller

[NETFILTER]: nf_nat: mark NAT protocols const

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