Pārlūkot izejas kodu

[NETFILTER]: nf_nat: mark NAT protocols const

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Patrick McHardy 17 gadi atpakaļ
vecāks
revīzija
2b628a0866

+ 9 - 9
include/net/netfilter/nf_nat_protocol.h

@@ -46,21 +46,21 @@ struct nf_nat_protocol
 };
 };
 
 
 /* Protocol registration. */
 /* 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. */
 /* 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 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);

+ 10 - 10
net/ipv4/netfilter/nf_nat_core.c

@@ -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],

+ 1 - 1
net/ipv4/netfilter/nf_nat_proto_gre.c

@@ -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,

+ 1 - 1
net/ipv4/netfilter/nf_nat_proto_icmp.c

@@ -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,

+ 1 - 1
net/ipv4/netfilter/nf_nat_proto_tcp.c

@@ -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,

+ 1 - 1
net/ipv4/netfilter/nf_nat_proto_udp.c

@@ -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,

+ 1 - 1
net/ipv4/netfilter/nf_nat_proto_unknown.c

@@ -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,

+ 1 - 1
net/netfilter/nf_conntrack_netlink.c

@@ -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);