Send connman mailing list submissions to connman@lists.01.org To subscribe or unsubscribe via email, send a message with subject or body 'help' to connman-requ...@lists.01.org
You can reach the person managing the list at connman-ow...@lists.01.org When replying, please edit your Subject line so it is more specific than "Re: Contents of connman digest..." Today's Topics: 1. [PATCH] openvpn: Add support for --ping, --ping-exit and --remap-usr1 (Jussi Laakkonen) ---------------------------------------------------------------------- Date: Wed, 21 Oct 2020 14:57:18 +0300 From: Jussi Laakkonen <jussi.laakko...@jolla.com> Subject: [PATCH] openvpn: Add support for --ping, --ping-exit and --remap-usr1 To: connman@lists.01.org Message-ID: <20201021115718.22781-1-jussi.laakko...@jolla.com> [openvpn] Add support for --ping, --ping-exit and --remap-usr1. Fixes JB#51497 Add support for --ping (OpenVPN.Ping) and --ping-exit (OpenVPN.PingExit) configuration values. Set defaults of 10 for ping and 60 for ping exit from https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage Set --ping-restart only with TCP since with UDP it is more feasible to use --ping and --ping-exit with the default values if the values are unset. If with TCP --ping-exit is set ignore --ping-restart as the values are mutually exclusive. Add --remap-usr1 option which remaps SIGUSR1 as SIGHUP/SIGTERM in order to restart the process when errors are detected. OpenVPN does handle some errors internally and it may not always be good with ConnMan monitoring it. --- vpn/plugins/openvpn.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/vpn/plugins/openvpn.c b/vpn/plugins/openvpn.c index abbf20d4..f11750f5 100644 --- a/vpn/plugins/openvpn.c +++ b/vpn/plugins/openvpn.c @@ -83,6 +83,9 @@ struct { { "OpenVPN.ConfigFile", "--config", 1 }, { "OpenVPN.DeviceType", NULL, 1 }, { "OpenVPN.Verb", "--verb", 1 }, + { "OpenVPN.Ping", "--ping", 1}, + { "OpenVPN.PingExit", "--ping-exit", 1}, + { "OpenVPN.RemapUsr1", "--remap-usr1", 1}, }; struct ov_private_data { @@ -496,16 +499,13 @@ static int run_connect(struct ov_private_data *data, connman_task_add_argument(task, "--ifconfig-noexec", NULL); /* - * Disable client restarts because we can't handle this at the - * moment. The problem is that when OpenVPN decides to switch + * Disable client restarts with TCP because we can't handle this at + * the moment. The problem is that when OpenVPN decides to switch * from CONNECTED state to RECONNECTING and then to RESOLVE, * it is not possible to do a DNS lookup. The DNS server is * not accessible through the tunnel anymore and so we end up * trying to resolve the OpenVPN servers address. - */ - connman_task_add_argument(task, "--ping-restart", "0"); - - /* + * * Disable connetion retrying when OpenVPN is connected over TCP. * With TCP OpenVPN attempts to handle reconnection silently without * reporting the error back when establishing a connection or @@ -515,8 +515,24 @@ static int run_connect(struct ov_private_data *data, * including DNS. */ option = vpn_provider_get_string(provider, "OpenVPN.Proto"); - if (option && g_str_has_prefix(option, "tcp")) + if (option && g_str_has_prefix(option, "tcp")) { + option = vpn_provider_get_string(provider, "OpenVPN.PingExit"); + if (!option) + connman_task_add_argument(task, "--ping-restart", "0"); + connman_task_add_argument(task, "--connect-retry-max", "1"); + /* Apply defaults for --ping and --ping-exit only with UDP protocol. */ + } else { + /* Apply default of 10 second interval for ping if omitted. */ + option = vpn_provider_get_string(provider, "OpenVPN.Ping"); + if (!option) + connman_task_add_argument(task, "--ping", "10"); + + /* Apply default of 60 seconds for ping exit if omitted. */ + option = vpn_provider_get_string(provider, "OpenVPN.PingExit"); + if (!option) + connman_task_add_argument(task, "--ping-exit", "60"); + } err = connman_task_run(task, ov_died, data, NULL, NULL, NULL); if (err < 0) { -- 2.20.1 ------------------------------ Subject: Digest Footer _______________________________________________ connman mailing list -- connman@lists.01.org To unsubscribe send an email to connman-le...@lists.01.org ------------------------------ End of connman Digest, Vol 60, Issue 21 ***************************************