File indexing completed on 2024-04-21 16:20:26

0001 /*
0002     SPDX-FileCopyrightText: 2013 Lukas Tinkl <ltinkl@redhat.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #ifndef PLASMA_NM_OPENVPN_ADVANCED_WIDGET_H
0008 #define PLASMA_NM_OPENVPN_ADVANCED_WIDGET_H
0009 
0010 #include "passwordfield.h"
0011 
0012 #include <QDialog>
0013 #include <QProcess>
0014 
0015 #include <NetworkManagerQt/VpnSetting>
0016 
0017 namespace Ui
0018 {
0019 class OpenVpnAdvancedWidget;
0020 }
0021 
0022 class OpenVpnAdvancedWidget : public QDialog
0023 {
0024     Q_OBJECT
0025 
0026     enum CertCheckType {
0027         DontVerify = 0,
0028         VerifyWholeSubjectExactly,
0029         VerifyNameExactly,
0030         VerifyNameByPrefix,
0031         VerifySubjectPartially,
0032     };
0033 
0034 public:
0035     explicit OpenVpnAdvancedWidget(const NetworkManager::VpnSetting::Ptr &setting, QWidget *parent = nullptr);
0036     ~OpenVpnAdvancedWidget() override;
0037     void init();
0038 
0039     NetworkManager::VpnSetting::Ptr setting() const;
0040 
0041 private Q_SLOTS:
0042     void gotOpenVpnCipherOutput();
0043     void openVpnCipherError(QProcess::ProcessError);
0044     void openVpnCipherFinished(int, QProcess::ExitStatus);
0045     void gotOpenVpnVersionOutput();
0046     void openVpnVersionError(QProcess::ProcessError);
0047     void openVpnVersionFinished(int, QProcess::ExitStatus);
0048     void certCheckTypeChanged(int);
0049     void proxyTypeChanged(int);
0050 
0051 private:
0052     int compareVersion(const int x, const int y, const int z) const;
0053     void disableLegacySubjectMatch();
0054     void loadConfig();
0055     void fillOnePasswordCombo(PasswordField *passwordField, NetworkManager::Setting::SecretFlags type);
0056     void handleOnePasswordType(const PasswordField *passwordField, const QString &key, NMStringMap &data) const;
0057     Ui::OpenVpnAdvancedWidget *const m_ui;
0058     class Private;
0059     Private *const d;
0060 };
0061 
0062 #endif // PLASMA_NM_OPENVPN_ADVANCED_WIDGET_H