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());