diff options
author | Jaehyun Kim <jeik01.kim@samsung.com> | 2021-09-08 06:45:07 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@review> | 2021-09-08 06:45:07 +0000 |
commit | 53b8b52126ac91550b12ac3bd9a212dd97232a77 (patch) | |
tree | c9e8d24514887597cb8cfe131706b08e832f51fb | |
parent | e2aacb30e612fed1db0ab4a35b922b55d52e90ae (diff) | |
parent | 77c8a136d2088d75c5c1fc477604908f72460e6c (diff) | |
download | connman-53b8b52126ac91550b12ac3bd9a212dd97232a77.tar.gz connman-53b8b52126ac91550b12ac3bd9a212dd97232a77.tar.bz2 connman-53b8b52126ac91550b12ac3bd9a212dd97232a77.zip |
Merge "wireguard: Save plugin related settings in config file" into tizen
-rw-r--r-- | vpn/plugins/wireguard.c | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/vpn/plugins/wireguard.c b/vpn/plugins/wireguard.c index 1da0ffb3..d8f32b32 100644 --- a/vpn/plugins/wireguard.c +++ b/vpn/plugins/wireguard.c @@ -460,10 +460,114 @@ static void wg_disconnect(struct vpn_provider *provider) g_free(info); } +#if defined TIZEN_EXT +static int wg_save(struct vpn_provider *provider, GKeyFile *keyfile) +{ + const char *option; + + DBG(""); + + /* + * The client/own device listen port. + */ + option = vpn_provider_get_string(provider, "WireGuard.ListenPort"); + if (option) + g_key_file_set_string(keyfile, + vpn_provider_get_save_group(provider), + "WireGuard.ListenPort", + option); + + /* + * comma separated DNS. + */ + option = vpn_provider_get_string(provider, "WireGuard.DNS"); + if (option) + g_key_file_set_string(keyfile, + vpn_provider_get_save_group(provider), + "WireGuard.DNS", + option); + + /* + * The client private key. + */ + option = vpn_provider_get_string(provider, "WireGuard.PrivateKey"); + if (option) + g_key_file_set_string(keyfile, + vpn_provider_get_save_group(provider), + "WireGuard.PrivateKey", + option); + + /* + * The server public key. + */ + option = vpn_provider_get_string(provider, "WireGuard.PublicKey"); + if (option) + g_key_file_set_string(keyfile, + vpn_provider_get_save_group(provider), + "WireGuard.PublicKey", + option); + + /* + * The preshared key. + */ + option = vpn_provider_get_string(provider, "WireGuard.PresharedKey"); + if (option) + g_key_file_set_string(keyfile, + vpn_provider_get_save_group(provider), + "WireGuard.PresharedKey", + option); + + /* + * Subnets accessed via VPN tunnel, 0.0.0.0/0 routes all traffic. + */ + option = vpn_provider_get_string(provider, "WireGuard.AllowedIPs"); + if (option) + g_key_file_set_string(keyfile, + vpn_provider_get_save_group(provider), + "WireGuard.AllowedIPs", + option); + + /* + * The time in seconds to emit periodic keep alive message. + */ + option = vpn_provider_get_string(provider, "WireGuard.PersistentKeepalive"); + if (option) + g_key_file_set_string(keyfile, + vpn_provider_get_save_group(provider), + "WireGuard.PersistentKeepalive", + option); + + /* + * The server listen port, default: 51820 + */ + option = vpn_provider_get_string(provider, "WireGuard.EndpointPort"); + if (option) + g_key_file_set_string(keyfile, + vpn_provider_get_save_group(provider), + "WireGuard.EndpointPort", + option); + + /* + * Save Address: The internal IP of the client node + */ + option = vpn_provider_get_string(provider, "WireGuard.Address"); + if (option) + g_key_file_set_string(keyfile, + vpn_provider_get_save_group(provider), + "WireGuard.Address", + option); + + return 0; +} +#endif + static struct vpn_driver vpn_driver = { .flags = VPN_FLAG_NO_TUN | VPN_FLAG_NO_DAEMON, .connect = wg_connect, .disconnect = wg_disconnect, +#if defined TIZEN_EXT + .save = wg_save, +#endif }; static int wg_init(void) |