aboutsummaryrefslogtreecommitdiffstats
path: root/src/libhydra/plugins/kernel_netlink
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2013-03-13 11:31:36 +0100
committerMartin Willi <martin@revosec.ch>2013-03-14 14:20:54 +0100
commit7eeeb1c70226bf5738c367f9903bada5fdde7dab (patch)
treee53c67494f0ef2b56fff4672cee679687bfaa782 /src/libhydra/plugins/kernel_netlink
parent003452d18fbc73bc048085752ee0a61656250adf (diff)
downloadstrongswan-7eeeb1c70226bf5738c367f9903bada5fdde7dab.tar.bz2
strongswan-7eeeb1c70226bf5738c367f9903bada5fdde7dab.tar.xz
kernel_ipsec_t.query_sa() additionally returns the number of processed packets
Diffstat (limited to 'src/libhydra/plugins/kernel_netlink')
-rw-r--r--src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c b/src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c
index e81e55c24..8e90e01b1 100644
--- a/src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c
+++ b/src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c
@@ -1649,7 +1649,8 @@ static void get_replay_state(private_kernel_netlink_ipsec_t *this,
METHOD(kernel_ipsec_t, query_sa, status_t,
private_kernel_netlink_ipsec_t *this, host_t *src, host_t *dst,
- u_int32_t spi, u_int8_t protocol, mark_t mark, u_int64_t *bytes)
+ u_int32_t spi, u_int8_t protocol, mark_t mark,
+ u_int64_t *bytes, u_int64_t *packets)
{
netlink_buf_t request;
struct nlmsghdr *out = NULL, *hdr;
@@ -1739,7 +1740,14 @@ METHOD(kernel_ipsec_t, query_sa, status_t,
}
else
{
- *bytes = sa->curlft.bytes;
+ if (bytes)
+ {
+ *bytes = sa->curlft.bytes;
+ }
+ if (packets)
+ {
+ *packets = sa->curlft.packets;
+ }
status = SUCCESS;
}
memwipe(out, len);