vpn: Make domain parameter optional 11/261311/1
authorNishant Chaprana <n.chaprana@samsung.com>
Thu, 15 Jul 2021 06:04:16 +0000 (11:34 +0530)
committerNishant Chaprana <n.chaprana@samsung.com>
Thu, 15 Jul 2021 06:04:16 +0000 (11:34 +0530)
There is no technical requirement to provide the domain name. Thus,
make the domain paremeter optional.

Reported by Christian Hewitt
Upstream Patch: https://git.kernel.org/pub/scm/network/connman/connman.git/patch/?id=82699007fa89e26206771047d8cbb7c160fd2990

Change-Id: Iac21532e3e310d67c633874a95566413beb4b3a4
Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
doc/vpn-config-format.txt
vpn/vpn-config.c
vpn/vpn-provider.c

index 91e2a63..f2adf29 100644 (file)
@@ -38,7 +38,7 @@ Allowed fields:
 VPN related parameters (M = mandatory, O = optional):
 - Name: A user defined name for the VPN (M)
 - Host: VPN server IP address (M)
-- Domain: Domain name for the VPN service (M)
+- Domain: Domain name for the VPN service (O)
 - Networks: The networks behind the VPN link can be defined here. This can
   be missing if all traffic should go via VPN tunnel. If there are more
   than one network, then separate them by comma. Format of the entry
index 2fe0307..97e072c 100755 (executable)
@@ -234,11 +234,11 @@ static int load_provider(GKeyFile *keyfile, const char *group,
        host = get_string(config_provider, "Host");
        domain = get_string(config_provider, "Domain");
 #if !defined TIZEN_EXT
-       if (host && domain) {
+       if (host) {
                char *id = __vpn_provider_create_identifier(host, domain);
 #else
        name = get_string(config_provider, "Name");
-       if (host && domain && name) {
+       if (host && name) {
                char *id = __vpn_provider_create_identifier(host, domain, name);
 #endif
 
index 8d2836e..d29b018 100755 (executable)
@@ -2167,9 +2167,10 @@ char *__vpn_provider_create_identifier(const char *host, const char *domain)
 {
        char *ident;
 
-       ident = g_strdup_printf("%s_%s", host, domain);
-       if (!ident)
-               return NULL;
+       if (domain)
+               ident = g_strdup_printf("%s_%s", host, domain);
+       else
+               ident = g_strdup_printf("%s", host);
 
        provider_dbus_ident(ident);
 
@@ -2180,7 +2181,10 @@ char *__vpn_provider_create_identifier(const char *host, const char *domain, con
 {
        char *ident;
 
-       ident = g_strdup_printf("%s_%s_%s", host, domain, name);
+       if (domain)
+               ident = g_strdup_printf("%s_%s_%s", host, domain, name);
+       else
+               ident = g_strdup_printf("%s_%s", host, name);
        if (!ident)
                return NULL;
 
@@ -2234,7 +2238,7 @@ int __vpn_provider_create(DBusMessage *msg)
                dbus_message_iter_next(&array);
        }
 
-       if (!host || !domain)
+       if (!host)
                return -EINVAL;
 
        DBG("Type %s name %s networks %p", type, name, networks);
@@ -2423,7 +2427,7 @@ int __vpn_provider_create_from_config(GHashTable *settings,
        networks_str = get_string(settings, "Networks");
        networks = parse_user_networks(networks_str);
 
-       if (!host || !domain) {
+       if (!host) {
                err = -EINVAL;
                goto fail;
        }