[PATCH] Re: OpenConnect, Juniper and NetworkManager

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2016-05-08 at 18:36 -0400, Ian Turner wrote:
> --- a/src/nm-openconnect-service-openconnect-helper.c
> +++ b/src/nm-openconnect-service-openconnect-helper.c
> @@ -216,14 +216,14 @@ addr6_list_to_gvariant (const char *str)
> ?}
> ?
> ?static GVariant *
> -split_dns_list_to_gvariant (const char *str)
> +split_dns_list_to_gvariant (const char *str, const char *sep)
> ?{
> ?	gchar **split;
> ?
> ?	if (!str || strlen (str) < 1)
> ?		return NULL;
> ?
> -	split = g_strsplit (str, ",", -1);
> +	split = g_strsplit (str, sep, -1);
> ?	if (g_strv_length (split) == 0)
> ?		return NULL;
> ?
> @@ -382,6 +382,7 @@ get_ip6_routes (void)
> ? * INTERNAL_IP4_DNS???????-- list of dns serverss
> ? * INTERNAL_IP4_NBNS??????-- list of wins servers
> ? * CISCO_DEF_DOMAIN???????-- default domain name
> + * CISCO_SPLIT_DNS????????-- default domain name
> ? * CISCO_BANNER???????????-- banner from server
> ? *
> ? */
> @@ -450,11 +451,6 @@ main (int argc, char *argv[])
> ?	if (val)
> ?		g_variant_builder_add (&builder, "{sv}", NM_VPN_PLUGIN_CONFIG_BANNER, val);
> ?
> -	/* Default domain */
> -	val = str_to_gvariant (getenv ("CISCO_DEF_DOMAIN"), TRUE);
> -	if (val)
> -		g_variant_builder_add (&ip4builder, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_DOMAIN, val);
> -
> ?	/* MTU??*/
> ?	tmp = getenv ("INTERNAL_IP4_MTU");
> ?	if (tmp && strlen (tmp)) {
> @@ -501,10 +497,27 @@ main (int argc, char *argv[])
> ?	if (val)
> ?		g_variant_builder_add (&ip4builder, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_NBNS, val);
> ?
> -	/* Split DNS domains */
> -	val = split_dns_list_to_gvariant (getenv ("CISCO_SPLIT_DNS"));
> -	if (val)
> -		g_variant_builder_add (&builder, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_DOMAINS, val);
> +	/* We have two environment variables with domains --
> +	???CISCO_SPLIT_DNS and CISCO_DEF_DOMAIN. On Cisco,
> +	???CISCO_DEF_DOMAIN can only be a single domain, while
> +	???CISCO_SPLIT_DNS can have multiple domains separated by
> +	???comma. On Juniper, CISCO_SPLIT_DNS is not supported but
> +	???CISCO_DEF_DOMAIN can have multiple domains separated by ", ".
> +	???
> +	???The upshot of all this is we use CISCO_SPLIT_DNS if available,
> +	???CISCO_DEF_DOMAIN if not. */
> +
> +	val = split_dns_list_to_gvariant (getenv ("CISCO_SPLIT_DNS"), ",");
> +	if (val) {
> +		g_variant_builder_add (&ip4builder, "{sv}",
> +				???????NM_VPN_PLUGIN_IP4_CONFIG_DOMAINS, val);
> +	} else {
> +		val = split_dns_list_to_gvariant (getenv ("CISCO_DEF_DOMAIN"), ", ");
> +		if (val) {
> +			g_variant_builder_add (&ip4builder, "{sv}",
> +					???????NM_VPN_PLUGIN_IP4_CONFIG_DOMAINS, val);
> +		}
> +	}
> ?
> ?	/* Routes */
> ?	val = get_ip4_routes ();

I've merged a form of Juniper support which does things somewhat
differently. I haven't addressed the above though. Can we have a
version which is just a bit more versatile about whitespace instead of
assuming that CISCO_SPLIT_DNS will *always* lack spaces, and
CISCO_DEF_DOMAIN will always have them?

Thanks!

-- 
dwmw2
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5760 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/openconnect-devel/attachments/20160603/3af0bede/attachment-0001.bin>


[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux