diff --git a/vpn/openconnect/nm-openconnect-service.h b/vpn/openconnect/nm-openconnect-service.h
index 4b45f20..e91f0f2 100644
--- a/vpn/openconnect/nm-openconnect-service.h
+++ b/vpn/openconnect/nm-openconnect-service.h
@@ -41,6 +41,7 @@
#define NM_OPENCONNECT_KEY_PROXY "proxy"
#define NM_OPENCONNECT_KEY_CSD_ENABLE "enable_csd_trojan"
#define NM_OPENCONNECT_KEY_CSD_WRAPPER "csd_wrapper"
+#define NM_OPENCONNECT_KEY_JUNIPER_MODE "juniper_mode"
#define NM_OPENCONNECT_USER "nm-openconnect"
diff --git a/vpn/openconnect/openconnectauth.cpp b/vpn/openconnect/openconnectauth.cpp
index 1602fb8..f861fab 100644
--- a/vpn/openconnect/openconnectauth.cpp
+++ b/vpn/openconnect/openconnectauth.cpp
@@ -193,6 +193,13 @@ void OpenconnectAuthWidget::readConfig()
openconnect_passphrase_from_fsid(d->vpninfo);
}
}
+ if (dataMap[NM_OPENCONNECT_KEY_JUNIPER_MODE] == "yes") {
+ updateLog("Using Juniper mode", PRG_INFO);
+ openconnect_set_protocol(d->vpninfo, "nc");
+ } else {
+ updateLog("Using Cisco mode", PRG_INFO);
+ }
+
}
void OpenconnectAuthWidget::readSecrets()
diff --git a/vpn/openconnect/openconnectprop.ui b/vpn/openconnect/openconnectprop.ui
index ed7dfde..3aa0a9e 100644
--- a/vpn/openconnect/openconnectprop.ui
+++ b/vpn/openconnect/openconnectprop.ui
@@ -69,24 +69,31 @@
-
- -
-
+
-
+
- CSD Wrapper Script:
+ Allow Cisco Secure Desktop trojan
-
- leCsdWrapperScript
+
+
+ -
+
+
+ Connect to Juniper gateway
- -
-
+
-
+
- Allow Cisco Secure Desktop trojan
+ CSD Wrapper Script:
+
+
+ leCsdWrapperScript
- -
+
-
diff --git a/vpn/openconnect/openconnectwidget.cpp b/vpn/openconnect/openconnectwidget.cpp
index d94a9c7..02e501b 100644
--- a/vpn/openconnect/openconnectwidget.cpp
+++ b/vpn/openconnect/openconnectwidget.cpp
@@ -73,6 +73,7 @@ void OpenconnectSettingWidget::loadConfig(const NetworkManager::Setting::Ptr &se
d->ui.leUserCert->setUrl(QUrl::fromLocalFile(dataMap[NM_OPENCONNECT_KEY_USERCERT]));
d->ui.leUserPrivateKey->setUrl(QUrl::fromLocalFile(dataMap[NM_OPENCONNECT_KEY_PRIVKEY]));
d->ui.chkUseFsid->setChecked(dataMap[NM_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID] == "yes");
+ d->ui.chkJuniperMode->setChecked(dataMap[NM_OPENCONNECT_KEY_JUNIPER_MODE] == "yes");
}
QVariantMap OpenconnectSettingWidget::setting() const
@@ -91,6 +92,7 @@ QVariantMap OpenconnectSettingWidget::setting() const
if (!d->ui.leProxy->text().isEmpty()) {
data.insert(QLatin1String(NM_OPENCONNECT_KEY_PROXY), d->ui.leProxy->text());
}
+ data.insert(QLatin1String(NM_OPENCONNECT_KEY_JUNIPER_MODE), d->ui.chkJuniperMode->isChecked() ? "yes" : "no");
data.insert(QLatin1String(NM_OPENCONNECT_KEY_CSD_ENABLE), d->ui.chkAllowTrojan->isChecked() ? "yes" : "no");
if (d->ui.leCsdWrapperScript->url().isValid()) {
data.insert(QLatin1String(NM_OPENCONNECT_KEY_CSD_WRAPPER), d->ui.leCsdWrapperScript->url().toLocalFile());