]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
dco-win: disable dco in server mode if multiple --local options defined
authorLev Stipakov <lev@openvpn.net>
Wed, 5 Feb 2025 12:23:41 +0000 (13:23 +0100)
committerGert Doering <gert@greenie.muc.de>
Wed, 5 Feb 2025 12:36:47 +0000 (13:36 +0100)
dco-win doesn't yet support multisocket, so for the time
being we have to fallback to tap-windows6.

Change-Id: I8724eda269b816dd2cfd0833d467e6d24054e96f
Signed-off-by: Lev Stipakov <lev@openvpn.net>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20250205122341.4944-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg30805.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/dco.c

index b5a21369c6683bd8c869622b1af6ee3c2533bbde..c65aece7b386463517020fd017fba8bf15239afc 100644 (file)
@@ -279,6 +279,12 @@ dco_check_option_ce(const struct connection_entry *ce, int msglevel, int mode)
         msg(msglevel, "NOTE: --remote is not defined. This DCO version doesn't support multipeer. Disabling Data Channel Offload");
         return false;
     }
+
+    if ((mode == MODE_SERVER) && (ce->local_list->len > 1))
+    {
+        msg(msglevel, "NOTE: multiple --local options defined, disabling data channel offload");
+        return false;
+    }
 #endif
 
     return true;
@@ -355,6 +361,12 @@ dco_check_startup_option(int msglevel, const struct options *o)
         return false;
     }
 
+    if ((o->mode == MODE_SERVER) && o->ce.local_list->len > 1)
+    {
+        msg(msglevel, "multiple --local options defined, disabling data channel offload");
+        return false;
+    }
+
 #elif defined(TARGET_LINUX)
     /* if the device name is fixed, we need to check if an interface with this
      * name already exists. IF it does, it must be a DCO interface, otherwise