vpnc-script: hack to support NetworkManager
Gernot Hillier
gernot.hillier at siemens.com
Tue Oct 17 05:23:13 PDT 2017
Hi there!
In our setup, we can't use OpenConnect NetworkManager plugin (yet - need
to add some functionality there). Therefore, I use the following quick
hack to make DNS work on OpenSUSE.
It's for sure not for upstream inclusion, but perhaps it's still helpful
for someone. Perhaps it would make sense to put it on the website or
somewhere else?
--- a/vpnc-script
+++ b/vpnc-script
@@ -525,16 +525,32 @@ restore_resolvconf_generic() {
modify_resolvconf_suse_netconfig()
{
- /sbin/netconfig modify -s vpnc -i "$TUNDEV" <<-EOF
- INTERFACE='$TUNDEV'
- DNSSERVERS='$INTERNAL_IP4_DNS'
- DNSDOMAIN='$CISCO_DEF_DOMAIN'
- EOF
+ # ugly hack to support NetworkManager setups in case you can't use NetworkManager plugin for OpenConnect
+ if nmcli c show --active | grep -q "$TUNDEV"; then
+ for s in $INTERNAL_IP4_DNS; do
+ echo "Telling nmcli to use DNS $s"
+ nmcli connection modify --temporary "$TUNDEV" +ipv4.dns $s
+ done
+ # needed to activate config, i.e. rewrite resolv.conf
+ nmcli connection up "$TUNDEV"
+ else
+ /sbin/netconfig modify -s vpnc -i "$TUNDEV" <<-EOF
+ INTERFACE='$TUNDEV'
+ DNSSERVERS='$INTERNAL_IP4_DNS'
+ DNSDOMAIN='$CISCO_DEF_DOMAIN'
+ EOF
+ fi
}
# Restore resolv.conf to old contents on Suse
restore_resolvconf_suse_netconfig()
{
- /sbin/netconfig remove -s vpnc -i "$TUNDEV"
+ # ugly hack to support NetworkManager setups in case you can't use NetworkManager plugin for OpenConnect
+ if nmcli c show --active | grep -q "$TUNDEV"; then
+ echo "Telling nmcli to forget $TUNDEV configuration"
+ nmcli c delete $TUNDEV
+ else
+ /sbin/netconfig remove -s vpnc -i "$TUNDEV"
+ fi
}
# === resolv.conf handling via /sbin/modify_resolvconf (Suse) =====================
--
With kind regards,
Gernot Hillier
Siemens AG, Corporate Competence Center Embedded Linux
More information about the openconnect-devel
mailing list