Attention is currently required from: cron2, flichtenheld, plaisthos, stipa.
Hello cron2, flichtenheld, plaisthos, I'd like you to reexamine a change. Please visit http://gerrit.openvpn.net/c/openvpn/+/812?usp=email to look at the new patch set (#6). The following approvals got outdated and were removed: Code-Review-1 by cron2 Change subject: dco-win: enable mode server on supported configuration ...................................................................... dco-win: enable mode server on supported configuration Enable dco-win with mode server if driver supports it. Disable for proto TCP or older drivers. Change-Id: Iea4538cee075d50de836d1ef7652985186b2527c Signed-off-by: Lev Stipakov <l...@openvpn.net> --- M src/openvpn/dco.c M src/openvpn/dco_win.c M src/openvpn/dco_win.h 3 files changed, 27 insertions(+), 7 deletions(-) git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/12/812/6 diff --git a/src/openvpn/dco.c b/src/openvpn/dco.c index dcc80d3..512da25 100644 --- a/src/openvpn/dco.c +++ b/src/openvpn/dco.c @@ -43,6 +43,10 @@ #include "tun.h" #include "tun_afunix.h" +#if defined(_WIN32) +#include "dco_win.h" +#endif + #ifdef HAVE_LIBCAPNG #include <cap-ng.h> #endif @@ -235,7 +239,7 @@ } static bool -dco_check_option_ce(const struct connection_entry *ce, int msglevel) +dco_check_option_ce(const struct connection_entry *ce, int msglevel, int mode) { if (ce->fragment) { @@ -264,9 +268,15 @@ #endif #if defined(_WIN32) - if (!ce->remote) + if (!proto_is_udp(ce->proto) && mode == MODE_SERVER) { - msg(msglevel, "NOTE: --remote is not defined, disabling data channel offload."); + msg(msglevel, "NOTE: TCP transport disables data channel offload on Windows in server mode."); + return false; + } + + if (!ce->remote && !dco_win_supports_multipeer()) + { + msg(msglevel, "NOTE: --remote is not defined. This DCO version doesn't support multipeer. Disabling Data Channel Offload"); return false; } #endif @@ -316,7 +326,7 @@ const struct connection_list *l = o->connection_list; for (int i = 0; i < l->len; ++i) { - if (!dco_check_option_ce(l->array[i], msglevel)) + if (!dco_check_option_ce(l->array[i], msglevel, o->mode)) { return false; } @@ -324,16 +334,16 @@ } else { - if (!dco_check_option_ce(&o->ce, msglevel)) + if (!dco_check_option_ce(&o->ce, msglevel, o->mode)) { return false; } } #if defined(_WIN32) - if (o->mode == MODE_SERVER) + if ((o->mode == MODE_SERVER) && !dco_win_supports_multipeer()) { - msg(msglevel, "--mode server is set. Disabling Data Channel Offload"); + msg(msglevel, "--mode server is set. This DCO version doesn't support multipeer. Disabling Data Channel Offload"); return false; } diff --git a/src/openvpn/dco_win.c b/src/openvpn/dco_win.c index f59bf8c..46b2d03 100644 --- a/src/openvpn/dco_win.c +++ b/src/openvpn/dco_win.c @@ -523,4 +523,11 @@ } } +bool +dco_win_supports_multipeer(void) +{ + OVPN_VERSION ver = { 0 }; + return dco_get_version(&ver) && ver.Major >= 2; +} + #endif /* defined(_WIN32) */ diff --git a/src/openvpn/dco_win.h b/src/openvpn/dco_win.h index 4883629..7688516 100644 --- a/src/openvpn/dco_win.h +++ b/src/openvpn/dco_win.h @@ -48,6 +48,9 @@ void dco_start_tun(struct tuntap *tt); +bool +dco_win_supports_multipeer(void); + #else /* if defined(ENABLE_DCO) && defined(_WIN32) */ static inline void -- To view, visit http://gerrit.openvpn.net/c/openvpn/+/812?usp=email To unsubscribe, or for help writing mail filters, visit http://gerrit.openvpn.net/settings Gerrit-Project: openvpn Gerrit-Branch: master Gerrit-Change-Id: Iea4538cee075d50de836d1ef7652985186b2527c Gerrit-Change-Number: 812 Gerrit-PatchSet: 6 Gerrit-Owner: stipa <lstipa...@gmail.com> Gerrit-Reviewer: cron2 <g...@greenie.muc.de> Gerrit-Reviewer: flichtenheld <fr...@lichtenheld.com> Gerrit-Reviewer: plaisthos <arne-open...@rfc2549.org> Gerrit-CC: openvpn-devel <openvpn-devel@lists.sourceforge.net> Gerrit-Attention: plaisthos <arne-open...@rfc2549.org> Gerrit-Attention: cron2 <g...@greenie.muc.de> Gerrit-Attention: flichtenheld <fr...@lichtenheld.com> Gerrit-Attention: stipa <lstipa...@gmail.com> Gerrit-MessageType: newpatchset
_______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel