[Openvpn-devel,S] Change in openvpn[master]: dco-win: disable dco in server mode if multiple --local options defined

Message ID 81c32319238aa478129db7cd3d88f7293e6ff81f-HTML@gerrit.openvpn.net
State New
Headers show
Series [Openvpn-devel,S] Change in openvpn[master]: dco-win: disable dco in server mode if multiple --local options defined | expand

Commit Message

cron2 (Code Review) Feb. 5, 2025, 10:22 a.m. UTC
Attention is currently required from: flichtenheld, plaisthos.

Hello plaisthos, flichtenheld,

I'd like you to do a code review.
Please visit

    http://gerrit.openvpn.net/c/openvpn/+/885?usp=email

to review the following change.


Change subject: dco-win: disable dco in server mode if multiple --local options defined
......................................................................

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 <lev@openvpn.net>
---
M src/openvpn/dco.c
1 file changed, 12 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/85/885/1

Patch

diff --git a/src/openvpn/dco.c b/src/openvpn/dco.c
index b5a2136..3f0b1cd 100644
--- a/src/openvpn/dco.c
+++ b/src/openvpn/dco.c
@@ -279,6 +279,12 @@ 
         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, "multiple --local options defined, disabling data channel offload");
+        return false;
+    }
 #endif
 
     return true;
@@ -355,6 +361,12 @@ 
         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