diff --git a/internal/provider/custom/openvpnconf.go b/internal/provider/custom/openvpnconf.go index dae0a02f..01cd2aef 100644 --- a/internal/provider/custom/openvpnconf.go +++ b/internal/provider/custom/openvpnconf.go @@ -73,6 +73,7 @@ func modifyConfig(lines []string, connection models.Connection, modified = append(modified, "pull-filter ignore \"auth-token\"") // prevent auth failed loop modified = append(modified, "auth-retry nointeract") modified = append(modified, "suppress-timestamps") + modified = append(modified, "hand-window 10") // default is 60 seconds which is too long if *settings.User != "" { modified = append(modified, "auth-user-pass "+openvpn.AuthConf) } diff --git a/internal/provider/custom/openvpnconf_test.go b/internal/provider/custom/openvpnconf_test.go index ab8ef6bb..782b5575 100644 --- a/internal/provider/custom/openvpnconf_test.go +++ b/internal/provider/custom/openvpnconf_test.go @@ -62,6 +62,7 @@ func Test_modifyConfig(t *testing.T) { "pull-filter ignore \"auth-token\"", "auth-retry nointeract", "suppress-timestamps", + "hand-window 10", "auth-user-pass /etc/openvpn/auth.conf", "verb 0", "data-ciphers-fallback cipher", diff --git a/internal/provider/utils/openvpn.go b/internal/provider/utils/openvpn.go index 9433d24f..64ba44b2 100644 --- a/internal/provider/utils/openvpn.go +++ b/internal/provider/utils/openvpn.go @@ -62,6 +62,7 @@ func OpenVPNConfig(provider OpenVPNProviderSettings, lines.add("mute-replay-warnings") // these are often ignored by some VPN providers lines.add("auth-retry", "nointeract") // retry authenticating without interaction lines.add("suppress-timestamps") // do not log timestamps, the Gluetun logger takes care of it + lines.add("hand-window", "10") // default is 60 seconds which is too long lines.add("dev", settings.Interface) lines.add("verb", fmt.Sprint(*settings.Verbosity)) protocol := connection.Protocol