netfilter: print the list of register loggers
This patch modifies the proc output to add display of registered loggers. The content of /proc/net/netfilter/nf_log is modified. Instead of displaying a protocol per line with format: proto:logger it now displays: proto:logger (comma_separated_list_of_loggers) NONE is used as keyword if no logger is used. Signed-off-by: Eric Leblond <eric@inl.fr> Signed-off-by: Patrick McHardy <kaber@trash.net>
This commit is contained in:
Родитель
ca735b3aaa
Коммит
c7a913cd55
|
@ -154,13 +154,37 @@ static int seq_show(struct seq_file *s, void *v)
|
|||
{
|
||||
loff_t *pos = v;
|
||||
const struct nf_logger *logger;
|
||||
struct nf_logger *t;
|
||||
int ret;
|
||||
|
||||
logger = rcu_dereference(nf_loggers[*pos]);
|
||||
|
||||
if (!logger)
|
||||
return seq_printf(s, "%2lld NONE\n", *pos);
|
||||
ret = seq_printf(s, "%2lld NONE (", *pos);
|
||||
else
|
||||
ret = seq_printf(s, "%2lld %s (", *pos, logger->name);
|
||||
|
||||
return seq_printf(s, "%2lld %s\n", *pos, logger->name);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
mutex_lock(&nf_log_mutex);
|
||||
list_for_each_entry(t, &nf_loggers_l[*pos], list[*pos]) {
|
||||
ret = seq_printf(s, "%s", t->name);
|
||||
if (ret < 0) {
|
||||
mutex_unlock(&nf_log_mutex);
|
||||
return ret;
|
||||
}
|
||||
if (&t->list[*pos] != nf_loggers_l[*pos].prev) {
|
||||
ret = seq_printf(s, ",");
|
||||
if (ret < 0) {
|
||||
mutex_unlock(&nf_log_mutex);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
mutex_unlock(&nf_log_mutex);
|
||||
|
||||
return seq_printf(s, ")\n");
|
||||
}
|
||||
|
||||
static const struct seq_operations nflog_seq_ops = {
|
||||
|
|
Загрузка…
Ссылка в новой задаче