summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2009-04-14 10:36:11 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2009-04-14 10:36:11 +0200
commit806f790eae8212dbdbc3f61e6debdf4e29dfa9bf (patch)
tree240f16242d1147cac19a208f5e1e86283c8ba2de /src
parenta1586cea00b32b401c76f17aab4121967051d883 (diff)
snprintf: fix missing protocol state support in XML output
This patch adds the missing bits to display the protocol state in the XML output. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r--src/conntrack/snprintf_xml.c32
1 files changed, 27 insertions, 5 deletions
diff --git a/src/conntrack/snprintf_xml.c b/src/conntrack/snprintf_xml.c
index 928fc0b..08840a9 100644
--- a/src/conntrack/snprintf_xml.c
+++ b/src/conntrack/snprintf_xml.c
@@ -40,9 +40,7 @@
* </counters>
* </meta>
* <meta direction="independent">
- * <layer4>
- * <state>ESTABLISHED</state>
- * </layer4>
+ * <state>ESTABLISHED</state>
* <timeout>100</timeout>
* <mark>1</mark>
* <secmark>0</secmark>
@@ -290,7 +288,10 @@ int __snprintf_conntrack_xml(char *buf,
ret = __snprintf_tuple_xml(buf+offset, len, ct, __DIR_REPL);
BUFFER_SIZE(ret, size, len, offset);
- if (test_bit(ATTR_TIMEOUT, ct->set) ||
+ if (test_bit(ATTR_TCP_STATE, ct->set) ||
+ test_bit(ATTR_SCTP_STATE, ct->set) ||
+ test_bit(ATTR_DCCP_STATE, ct->set) ||
+ test_bit(ATTR_TIMEOUT, ct->set) ||
test_bit(ATTR_MARK, ct->set) ||
test_bit(ATTR_USE, ct->set) ||
test_bit(ATTR_STATUS, ct->set)) {
@@ -299,6 +300,24 @@ int __snprintf_conntrack_xml(char *buf,
BUFFER_SIZE(ret, size, len, offset);
}
+ if (test_bit(ATTR_TCP_STATE, ct->set)) {
+ ret = snprintf(buf+offset, len, "<state>%s</state>",
+ states[ct->protoinfo.tcp.state]);
+ BUFFER_SIZE(ret, size, len, offset);
+ }
+
+ if (test_bit(ATTR_SCTP_STATE, ct->set)) {
+ ret = snprintf(buf+offset, len, "<state>%s</state>",
+ states[ct->protoinfo.sctp.state]);
+ BUFFER_SIZE(ret, size, len, offset);
+ }
+
+ if (test_bit(ATTR_DCCP_STATE, ct->set)) {
+ ret = snprintf(buf+offset, len, "<state>%s</state>",
+ states[ct->protoinfo.dccp.state]);
+ BUFFER_SIZE(ret, size, len, offset);
+ }
+
if (test_bit(ATTR_TIMEOUT, ct->set)) {
ret = snprintf(buf+offset, len,
"<timeout>%u</timeout>", ct->timeout);
@@ -338,7 +357,10 @@ int __snprintf_conntrack_xml(char *buf,
BUFFER_SIZE(ret, size, len, offset);
}
- if (test_bit(ATTR_TIMEOUT, ct->set) ||
+ if (test_bit(ATTR_TCP_STATE, ct->set) ||
+ test_bit(ATTR_SCTP_STATE, ct->set) ||
+ test_bit(ATTR_DCCP_STATE, ct->set) ||
+ test_bit(ATTR_TIMEOUT, ct->set) ||
test_bit(ATTR_MARK, ct->set) ||
test_bit(ATTR_USE, ct->set) ||
test_bit(ATTR_STATUS, ct->set)) {