[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. */
|
/* 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;
|
||||||
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)
|
||||||
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
|
||||||
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,
|
||||||
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,
|
||||||
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,
|
||||||
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)
|
||||||
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,
|
||||||
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,
|
||||||
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,
|
||||||
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,
|
||||||
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,
|
||||||
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,
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue