]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Fix '--inactive <time> 0' behavior for DCO
authorLev Stipakov <lev@openvpn.net>
Wed, 22 Mar 2023 11:34:08 +0000 (13:34 +0200)
committerGert Doering <gert@greenie.muc.de>
Wed, 22 Mar 2023 12:46:52 +0000 (13:46 +0100)
Make sure we exit if <bytes> is 0 (not set) and no traffic
was produced.

According to man page and non-DCO --inactive implementation,
we exit if amount of bytes produced is less than <bytes> specified.
DCO implementation will do off-by-ones, but we consider it as okay
since we don't want to complicate code to handle both bytes=0 and >0
cases.

Change-Id: I4c089e486728a43bfe42596787c00355838311da
Signed-off-by: Lev Stipakov <lev@openvpn.net>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20230322113408.2057-1-lstipakov@gmail.com>
URL: https://www.mail-archive.com/search?l=mid&q=20230322113408.2057-1-lstipakov@gmail.com
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/forward.c

index 28a96f940d8defc221caf4a2accdf5785491be3c..b3e0ba5d9882e663ba49d66f79c4d37a1a5c3e33 100644 (file)
@@ -481,7 +481,7 @@ check_inactivity_timeout(struct context *c)
         int64_t tot_bytes = c->c2.tun_read_bytes + c->c2.tun_write_bytes;
         int64_t new_bytes = tot_bytes - c->c2.inactivity_bytes;
 
-        if (new_bytes >= c->options.inactivity_minimum_bytes)
+        if (new_bytes > c->options.inactivity_minimum_bytes)
         {
             c->c2.inactivity_bytes = tot_bytes;
             event_timeout_reset(&c->c2.inactivity_interval);