diff options
author | Gao feng <gaofeng@cn.fujitsu.com> | 2013-04-05 11:04:35 -0400 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-04-05 15:08:10 -0400 |
commit | 5b023fc8d8e0997e0b7ea6506d243afd5478c96e (patch) | |
tree | c94742fdc6d47c6750e923aad9d16f9d7eef687e /net/netfilter | |
parent | 9368a53c471b42a1bd99117d590ce2ccdc8dc3c2 (diff) |
netfilter: enable per netns support for nf_loggers
After this patch, all nf_loggers support net namespace. Still
xt_LOG and ebt_log require syslog netns support.
Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/netfilter')
-rw-r--r-- | net/netfilter/nf_log.c | 21 |
1 files changed, 0 insertions, 21 deletions
diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c index 8d331dc9b1ea..388656d5a9ec 100644 --- a/net/netfilter/nf_log.c +++ b/net/netfilter/nf_log.c | |||
@@ -35,9 +35,6 @@ void nf_log_set(struct net *net, u_int8_t pf, const struct nf_logger *logger) | |||
35 | { | 35 | { |
36 | const struct nf_logger *log; | 36 | const struct nf_logger *log; |
37 | 37 | ||
38 | if (!net_eq(net, &init_net)) | ||
39 | return; | ||
40 | |||
41 | if (pf == NFPROTO_UNSPEC) | 38 | if (pf == NFPROTO_UNSPEC) |
42 | return; | 39 | return; |
43 | 40 | ||
@@ -56,9 +53,6 @@ void nf_log_unset(struct net *net, const struct nf_logger *logger) | |||
56 | int i; | 53 | int i; |
57 | const struct nf_logger *log; | 54 | const struct nf_logger *log; |
58 | 55 | ||
59 | if (!net_eq(net, &init_net)) | ||
60 | return; | ||
61 | |||
62 | mutex_lock(&nf_log_mutex); | 56 | mutex_lock(&nf_log_mutex); |
63 | for (i = 0; i < NFPROTO_NUMPROTO; i++) { | 57 | for (i = 0; i < NFPROTO_NUMPROTO; i++) { |
64 | log = rcu_dereference_protected(net->nf.nf_loggers[i], | 58 | log = rcu_dereference_protected(net->nf.nf_loggers[i], |
@@ -94,7 +88,6 @@ int nf_log_register(u_int8_t pf, struct nf_logger *logger) | |||
94 | 88 | ||
95 | mutex_unlock(&nf_log_mutex); | 89 | mutex_unlock(&nf_log_mutex); |
96 | 90 | ||
97 | nf_log_set(&init_net, pf, logger); | ||
98 | return 0; | 91 | return 0; |
99 | } | 92 | } |
100 | EXPORT_SYMBOL(nf_log_register); | 93 | EXPORT_SYMBOL(nf_log_register); |
@@ -107,17 +100,12 @@ void nf_log_unregister(struct nf_logger *logger) | |||
107 | for (i = 0; i < NFPROTO_NUMPROTO; i++) | 100 | for (i = 0; i < NFPROTO_NUMPROTO; i++) |
108 | list_del(&logger->list[i]); | 101 | list_del(&logger->list[i]); |
109 | mutex_unlock(&nf_log_mutex); | 102 | mutex_unlock(&nf_log_mutex); |
110 | |||
111 | nf_log_unset(&init_net, logger); | ||
112 | } | 103 | } |
113 | EXPORT_SYMBOL(nf_log_unregister); | 104 | EXPORT_SYMBOL(nf_log_unregister); |
114 | 105 | ||
115 | int nf_log_bind_pf(struct net *net, u_int8_t pf, | 106 | int nf_log_bind_pf(struct net *net, u_int8_t pf, |
116 | const struct nf_logger *logger) | 107 | const struct nf_logger *logger) |
117 | { | 108 | { |
118 | if (!net_eq(net, &init_net)) | ||
119 | return 0; | ||
120 | |||
121 | if (pf >= ARRAY_SIZE(net->nf.nf_loggers)) | 109 | if (pf >= ARRAY_SIZE(net->nf.nf_loggers)) |
122 | return -EINVAL; | 110 | return -EINVAL; |
123 | mutex_lock(&nf_log_mutex); | 111 | mutex_lock(&nf_log_mutex); |
@@ -133,9 +121,6 @@ EXPORT_SYMBOL(nf_log_bind_pf); | |||
133 | 121 | ||
134 | void nf_log_unbind_pf(struct net *net, u_int8_t pf) | 122 | void nf_log_unbind_pf(struct net *net, u_int8_t pf) |
135 | { | 123 | { |
136 | if (!net_eq(net, &init_net)) | ||
137 | return; | ||
138 | |||
139 | if (pf >= ARRAY_SIZE(net->nf.nf_loggers)) | 124 | if (pf >= ARRAY_SIZE(net->nf.nf_loggers)) |
140 | return; | 125 | return; |
141 | mutex_lock(&nf_log_mutex); | 126 | mutex_lock(&nf_log_mutex); |
@@ -157,9 +142,6 @@ void nf_log_packet(struct net *net, | |||
157 | char prefix[NF_LOG_PREFIXLEN]; | 142 | char prefix[NF_LOG_PREFIXLEN]; |
158 | const struct nf_logger *logger; | 143 | const struct nf_logger *logger; |
159 | 144 | ||
160 | if (!net_eq(net, &init_net)) | ||
161 | return; | ||
162 | |||
163 | rcu_read_lock(); | 145 | rcu_read_lock(); |
164 | logger = rcu_dereference(net->nf.nf_loggers[pf]); | 146 | logger = rcu_dereference(net->nf.nf_loggers[pf]); |
165 | if (logger) { | 147 | if (logger) { |
@@ -274,9 +256,6 @@ static int nf_log_proc_dostring(ctl_table *table, int write, | |||
274 | struct net *net = current->nsproxy->net_ns; | 256 | struct net *net = current->nsproxy->net_ns; |
275 | 257 | ||
276 | if (write) { | 258 | if (write) { |
277 | if (!net_eq(net, &init_net)) | ||
278 | return -EPERM; | ||
279 | |||
280 | if (size > sizeof(buf)) | 259 | if (size > sizeof(buf)) |
281 | size = sizeof(buf); | 260 | size = sizeof(buf); |
282 | if (copy_from_user(buf, buffer, size)) | 261 | if (copy_from_user(buf, buffer, size)) |