Attention is currently required from: cron2, flichtenheld, ordex, plaisthos.
Hello cron2, flichtenheld, plaisthos,
I'd like you to reexamine a change. Please visit
http://gerrit.openvpn.net/c/openvpn/+/1275?usp=email
to look at the new patch set (#4).
Change subject: dco-freebsd: store peer stats directly in c2
......................................................................
dco-freebsd: store peer stats directly in c2
The dco_context_t structure includes a reference to the general context
structure c, which allows us to store dco_read_bytes and dco_write_bytes
directly as c2 fields. This aligns the FreeBSD implementation with how
we handle DCO peer stats on Linux and Windows.
Change-Id: I53dd40fabdeacb9dca843e28fdd3b357711c5a84
Signed-off-by: Ralf Lici <[email protected]>
---
M src/openvpn/dco_freebsd.c
1 file changed, 16 insertions(+), 19 deletions(-)
git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/75/1275/4
diff --git a/src/openvpn/dco_freebsd.c b/src/openvpn/dco_freebsd.c
index 947a769..e51f8dd 100644
--- a/src/openvpn/dco_freebsd.c
+++ b/src/openvpn/dco_freebsd.c
@@ -564,6 +564,21 @@
return ret;
}
+static void
+dco_update_peer_stat(struct multi_context *m, uint32_t peerid, const nvlist_t
*nvl)
+{
+ if (peerid >= m->max_clients || !m->instances[peerid])
+ {
+ msg(M_WARN, "dco_update_peer_stat: invalid peer ID %d returned by
kernel", peerid);
+ return;
+ }
+
+ struct multi_instance *mi = m->instances[peerid];
+
+ mi->context.c2.dco_read_bytes = nvlist_get_number(nvl, "in");
+ mi->context.c2.dco_write_bytes = nvlist_get_number(nvl, "out");
+}
+
int
dco_do_read(dco_context_t *dco)
{
@@ -619,10 +634,7 @@
if (nvlist_exists_nvlist(nvl, "bytes"))
{
- const nvlist_t *bytes = nvlist_get_nvlist(nvl, "bytes");
-
- dco->dco_read_bytes = nvlist_get_number(bytes, "in");
- dco->dco_write_bytes = nvlist_get_number(bytes, "out");
+ dco_update_peer_stat(dco->c->multi, dco->dco_message_peer_id,
nvlist_get_nvlist(nvl, "bytes"));
}
dco->dco_message_type = OVPN_CMD_DEL_PEER;
@@ -777,21 +789,6 @@
nvlist_destroy(nvl);
}
-static void
-dco_update_peer_stat(struct multi_context *m, uint32_t peerid, const nvlist_t
*nvl)
-{
- if (peerid >= m->max_clients || !m->instances[peerid])
- {
- msg(M_WARN, "dco_update_peer_stat: invalid peer ID %d returned by
kernel", peerid);
- return;
- }
-
- struct multi_instance *mi = m->instances[peerid];
-
- mi->context.c2.dco_read_bytes = nvlist_get_number(nvl, "in");
- mi->context.c2.dco_write_bytes = nvlist_get_number(nvl, "out");
-}
-
int
dco_get_peer_stats_multi(dco_context_t *dco, const bool raise_sigusr1_on_err)
{
--
To view, visit http://gerrit.openvpn.net/c/openvpn/+/1275?usp=email
To unsubscribe, or for help writing mail filters, visit
http://gerrit.openvpn.net/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: openvpn
Gerrit-Branch: master
Gerrit-Change-Id: I53dd40fabdeacb9dca843e28fdd3b357711c5a84
Gerrit-Change-Number: 1275
Gerrit-PatchSet: 4
Gerrit-Owner: ralf_lici <[email protected]>
Gerrit-Reviewer: cron2 <[email protected]>
Gerrit-Reviewer: flichtenheld <[email protected]>
Gerrit-Reviewer: plaisthos <[email protected]>
Gerrit-CC: openvpn-devel <[email protected]>
Gerrit-CC: ordex <[email protected]>
Gerrit-Attention: plaisthos <[email protected]>
Gerrit-Attention: cron2 <[email protected]>
Gerrit-Attention: flichtenheld <[email protected]>
Gerrit-Attention: ordex <[email protected]>
_______________________________________________
Openvpn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel