From: Lev Stipakov Date: Wed, 5 Feb 2025 12:23:41 +0000 (+0100) Subject: dco-win: disable dco in server mode if multiple --local options defined X-Git-Tag: v2.7_alpha1~91 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4719687ef3ec8acefcdde584df0e7fa86ddcf333;p=thirdparty%2Fopenvpn.git dco-win: disable dco in server mode if multiple --local options defined 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 Acked-by: Gert Doering 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 --- diff --git a/src/openvpn/dco.c b/src/openvpn/dco.c index b5a21369..c65aece7 100644 --- a/src/openvpn/dco.c +++ b/src/openvpn/dco.c @@ -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