[network-manager-openconnect/th/vpn-editor-split-bgo767690: 11/14] properties: split "nm-openconnect-editor-plugin.c" out of "nm-openconnect.c"
- From: Thomas Haller <thaller src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-openconnect/th/vpn-editor-split-bgo767690: 11/14] properties: split "nm-openconnect-editor-plugin.c" out of "nm-openconnect.c"
- Date: Wed, 15 Jun 2016 13:23:22 +0000 (UTC)
commit a3ef5dd08e91907a183a27a3163a3956b8c61f71
Author: Thomas Haller <thaller redhat com>
Date: Tue Jun 14 23:38:51 2016 +0200
properties: split "nm-openconnect-editor-plugin.c" out of "nm-openconnect.c"
po/POTFILES.in | 3 +-
po/as.po | 4 +-
po/bg.po | 4 +-
po/bn_IN.po | 4 +-
po/bs.po | 4 +-
po/ca.po | 4 +-
po/ca valencia po | 4 +-
po/cs.po | 4 +-
po/da.po | 4 +-
po/de.po | 4 +-
po/el.po | 4 +-
po/en_GB.po | 4 +-
po/en_US.po | 4 +-
po/eo.po | 4 +-
po/es.po | 4 +-
po/et.po | 4 +-
po/eu.po | 4 +-
po/fa.po | 4 +-
po/fi.po | 4 +-
po/fr.po | 4 +-
po/gl.po | 4 +-
po/gu.po | 4 +-
po/he.po | 4 +-
po/hu.po | 4 +-
po/id.po | 4 +-
po/it.po | 4 +-
po/kn.po | 4 +-
po/ko.po | 4 +-
po/lt.po | 4 +-
po/lv.po | 4 +-
po/mr.po | 4 +-
po/nb.po | 4 +-
po/nl.po | 4 +-
po/or.po | 4 +-
po/pa.po | 4 +-
po/pl.po | 4 +-
po/pt.po | 4 +-
po/pt_BR.po | 4 +-
po/ro.po | 4 +-
po/ru.po | 4 +-
po/sl.po | 4 +-
po/sr.po | 4 +-
po/sr latin po | 4 +-
po/sv.po | 4 +-
po/ta.po | 4 +-
po/te.po | 4 +-
po/tr.po | 4 +-
po/ug.po | 4 +-
po/uk.po | 4 +-
po/vi.po | 4 +-
po/zh_CN.po | 4 +-
po/zh_HK.po | 4 +-
po/zh_TW.po | 4 +-
properties/Makefile.am | 23 +-
properties/auth-helpers.c | 2 -
properties/nm-openconnect-editor-plugin.c | 514 +++++++++++
...penconnect.h => nm-openconnect-editor-plugin.h} | 28 +-
properties/nm-openconnect-editor.c | 505 ++++++++++
.../{nm-openconnect.h => nm-openconnect-editor.h} | 31 +-
properties/nm-openconnect.c | 969 --------------------
60 files changed, 1148 insertions(+), 1135 deletions(-)
---
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 0a1f46e..b1ea126 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -4,7 +4,8 @@ appdata/network-manager-openconnect.metainfo.xml.in
auth-dialog/main.c
openconnect-strings.txt
properties/auth-helpers.c
-properties/nm-openconnect.c
+properties/nm-openconnect-editor-plugin.c
+properties/nm-openconnect-editor.c
shared/nm-vpn/nm-vpn-plugin-utils.c
src/nm-openconnect-service.c
[type: gettext/glade]properties/nm-openconnect-dialog.ui
diff --git a/po/as.po b/po/as.po
index 86f999c..f4a729c 100644
--- a/po/as.po
+++ b/po/as.po
@@ -97,11 +97,11 @@ msgstr "আপোনাৰ ব্যক্তিগত চাবি বাচি
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM প্ৰমাণপত্ৰ (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect সুসঙ্গত VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "যিকোনো Cisco AnyConnect SSL VPN ৰ সৈতে সুসঙ্গত ।"
diff --git a/po/bg.po b/po/bg.po
index b2cd2e4..73192bd 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -98,11 +98,11 @@ msgstr "Избор на частен ключ…"
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Сертификати във формат PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "ВЧМ съвместима със Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "ВЧМ съвместима със AnyConnect SSL."
diff --git a/po/bn_IN.po b/po/bn_IN.po
index 91c7d45..9745428 100644
--- a/po/bn_IN.po
+++ b/po/bn_IN.po
@@ -97,11 +97,11 @@ msgstr "ব্যক্তিগত-কি নির্বাচন করুন
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM সার্টিফিকেট (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect Compatible VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Cisco AnyConnect SSL VPN "
diff --git a/po/bs.po b/po/bs.po
index 48439d9..f57c921 100644
--- a/po/bs.po
+++ b/po/bs.po
@@ -99,11 +99,11 @@ msgstr "Izaberite vaš lični ključ..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM sertifikati (*.pijem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect Kompatibilan VPN (otvorenakonecija)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Kompatibilan sa Cisco AnyConnect SSL VPN."
diff --git a/po/ca.po b/po/ca.po
index 97373b8..b6de3b7 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -5144,11 +5144,11 @@ msgstr "Trieu la vostra clau privada..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Certificats PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:79
+#: ../properties/nm-openconnect-editor.c:79
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN compatible amb Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:80
+#: ../properties/nm-openconnect-editor.c:80
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "VPN SSL compatible amb Cisco AnyConnect."
diff --git a/po/ca valencia po b/po/ca valencia po
index 05cf06d..647a17f 100644
--- a/po/ca valencia po
+++ b/po/ca valencia po
@@ -95,11 +95,11 @@ msgstr "Trieu la vostra clau privada..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Certificats PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN compatible amb Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "VPN SSL compatible amb Cisco AnyConnect."
diff --git a/po/cs.po b/po/cs.po
index bec18ac..15159d1 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -5045,11 +5045,11 @@ msgstr "Zvolte svůj soukromý klíč…"
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Certifikáty PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:79
+#: ../properties/nm-openconnect-editor.c:79
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN kompatibilní s Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:80
+#: ../properties/nm-openconnect-editor.c:80
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Kompatibilní s Cisco AnyConnect SSL VPN."
diff --git a/po/da.po b/po/da.po
index 0d496bd..00fbfbc 100644
--- a/po/da.po
+++ b/po/da.po
@@ -100,11 +100,11 @@ msgstr "Vælg din private nøgle..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM-certifikater (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect-kompatibel VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Kompatibel med Cisco AnyConnect SSL VPN."
diff --git a/po/de.po b/po/de.po
index cd2a723..1e9a32e 100644
--- a/po/de.po
+++ b/po/de.po
@@ -5129,11 +5129,11 @@ msgstr "Geheimen Schlüssel wählen …"
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM-Zertifikate (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:79
+#: ../properties/nm-openconnect-editor.c:79
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Zu Cisco AnyConnect kompatible VPN-Verbindung (openconnect)"
-#: ../properties/nm-openconnect.c:80
+#: ../properties/nm-openconnect-editor.c:80
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Kompatibel zu Cisco AnyConnect SSL VPN."
diff --git a/po/el.po b/po/el.po
index f78a99b..375fc27 100644
--- a/po/el.po
+++ b/po/el.po
@@ -3783,11 +3783,11 @@ msgstr "TOTP - χειροκίνητη εισαγωγή"
msgid "HOTP - manually entered"
msgstr ""
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Συμβατό VPN με Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Συμβατό με το Cisco AnyConnect SSL VPN."
diff --git a/po/en_GB.po b/po/en_GB.po
index 7fac05a..7d6a170 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -3681,11 +3681,11 @@ msgstr ""
msgid "TOTP - manually entered"
msgstr ""
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect Compatible VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Compatible with Cisco AnyConnect SSL VPN."
diff --git a/po/en_US.po b/po/en_US.po
index 315aee8..d809f14 100644
--- a/po/en_US.po
+++ b/po/en_US.po
@@ -3685,11 +3685,11 @@ msgstr ""
msgid "TOTP - manually entered"
msgstr ""
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr ""
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr ""
diff --git a/po/eo.po b/po/eo.po
index 8f9805b..5a1fde1 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -96,11 +96,11 @@ msgstr "Elekti vian privatan ŝlosilon..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr ""
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr ""
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr ""
diff --git a/po/es.po b/po/es.po
index feccce5..62b245c 100644
--- a/po/es.po
+++ b/po/es.po
@@ -5160,11 +5160,11 @@ msgstr "Elija su clave privada…"
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Certificados PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:79
+#: ../properties/nm-openconnect-editor.c:79
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Compatible con VPN Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:80
+#: ../properties/nm-openconnect-editor.c:80
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Compatible con VPN Cisco AnyConnect SSL."
diff --git a/po/et.po b/po/et.po
index 67653bd..038848e 100644
--- a/po/et.po
+++ b/po/et.po
@@ -101,11 +101,11 @@ msgstr "Vali privaatvõti..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM sertifikaadid (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect-iga ühilduv VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Cisco AnyConnect SSL VPN-iga ühilduv."
diff --git a/po/eu.po b/po/eu.po
index f96ad76..2fee0ce 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -101,11 +101,11 @@ msgstr "Aukeratu gako pribatua..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM ziurtagiriak (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN bateragarria Cisco AnyConnect-ekin (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Cisco AnyConnect SSL VPN-ekin bateragarria."
diff --git a/po/fa.po b/po/fa.po
index eb22bd6..6fea9e9 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -94,11 +94,11 @@ msgstr "کلید اختصاصی خود را انتخاب کنید..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "تادییههای PEM شامل (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect Compatible VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "سازگار با AnyConnect SSL VPN سیسکو."
diff --git a/po/fi.po b/po/fi.po
index 30bdfa8..2537a7e 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -103,11 +103,11 @@ msgstr "Valitse yksityinen avain..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM-varmenteet (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:79
+#: ../properties/nm-openconnect-editor.c:79
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect -yhteensopiva VPN (openconnect)"
-#: ../properties/nm-openconnect.c:80
+#: ../properties/nm-openconnect-editor.c:80
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Yhteensopiva Cisco AnyConnect SSL VPN:n kanssa."
diff --git a/po/fr.po b/po/fr.po
index 0d3c117..4dc0b20 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -101,11 +101,11 @@ msgstr "Choisissez votre clé privée..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Certificats PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN compatible Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Compatible avec Cisco AnyConnect SSL VPN."
diff --git a/po/gl.po b/po/gl.po
index fef01a0..d9eafe6 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -101,11 +101,11 @@ msgstr "Seleccione a súa chave privada…"
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Certificados PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN compatíbel Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Compatíbel con Cisco AnyConnect SSL VPN."
diff --git a/po/gu.po b/po/gu.po
index c874937..ac443ca 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -97,11 +97,11 @@ msgstr "તમારી ખાનગી કી ને પસંદ કરો..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM પ્રમાણપત્રો (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect Compatible VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Cisco AnyConnect SSL VPN સાથે સુસંગત"
diff --git a/po/he.po b/po/he.po
index da7df96..c2c0cf7 100644
--- a/po/he.po
+++ b/po/he.po
@@ -98,11 +98,11 @@ msgstr "נא לבחור את המפתח הפרטי שלך..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "אישורי PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN התואם ל־Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "תואם ל־VPN מסוג Cisco AnyConnect SSL."
diff --git a/po/hu.po b/po/hu.po
index 9bf9296..e7ba2b0 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -5100,11 +5100,11 @@ msgstr "Válassza ki a személyes kulcsát…"
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM tanúsítványok (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:79
+#: ../properties/nm-openconnect-editor.c:79
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect-kompatibilis VPN (openconnect)"
-#: ../properties/nm-openconnect.c:80
+#: ../properties/nm-openconnect-editor.c:80
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Kompatibilis a Cisco AnyConnect SSL VPN-nel"
diff --git a/po/id.po b/po/id.po
index f749df7..5ae63a8 100644
--- a/po/id.po
+++ b/po/id.po
@@ -3746,11 +3746,11 @@ msgstr "TOTP - dimasukkan secara manual"
msgid "HOTP - manually entered"
msgstr "HOTP - dimasukkan secara manual"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN Kompatibel AnyConnect Cisco (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Kompatibel dengan VPN SSL AnyConnect Cisco."
diff --git a/po/it.po b/po/it.po
index cd038c7..1ffe748 100644
--- a/po/it.po
+++ b/po/it.po
@@ -100,11 +100,11 @@ msgstr "Scegliere la propria chiave privata..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Certificati PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN compatibile con Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "VPN SSL compatibile con Cisco AnyConnect."
diff --git a/po/kn.po b/po/kn.po
index 6c5ed88..b343ea2 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -97,11 +97,11 @@ msgstr "ನಿಮ್ಮ ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ಆರಿಸ
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM ಪ್ರಮಾಣಪತ್ರಗಳು (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect ಸಹವರ್ತನೀಯ VPN (ಓಪನ್ಕನೆಕ್ಟ್)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Cisco AnyConnect SSL VPN ನೊಂದಿಗೆ ಸಹವರ್ತನೀಯವಾಗಿದೆ."
diff --git a/po/ko.po b/po/ko.po
index de20982..6fa7a03 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -95,11 +95,11 @@ msgstr "개인 키를 선택하십시오..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM 인증서 (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect 호환 VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Cisco AnyConnect SSL VPN과 호환됩니다."
diff --git a/po/lt.po b/po/lt.po
index 01c03f1..e1ecee3 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -102,11 +102,11 @@ msgstr "Pasirinkite savo asmeninį raktą..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM liudijimai (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:79
+#: ../properties/nm-openconnect-editor.c:79
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect Compatible VPN (openconnect)"
-#: ../properties/nm-openconnect.c:80
+#: ../properties/nm-openconnect-editor.c:80
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Suderinamas su Cisco AnyConnect SSL VPN."
diff --git a/po/lv.po b/po/lv.po
index 8b03d70..4d99eb8 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -101,11 +101,11 @@ msgstr "Izvēlieties privāto atslēgu..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM sertifikāti (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect savietojams VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Savietojams ar Cisco AnyConnect SSL VPN."
diff --git a/po/mr.po b/po/mr.po
index 415f39b..7f09c49 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -96,11 +96,11 @@ msgstr "तुमचे वैयक्तिक कि निवडा..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM प्रमाणपत्रं (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect Compatible VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Cisco AnyConnect SSL VPN सह सहत्व."
diff --git a/po/nb.po b/po/nb.po
index c1ebc6b..504ab07 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -100,11 +100,11 @@ msgstr "Velg din private nøkkel …"
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM-sertifikater (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN som er kompatibelt med Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Kompatibel med Cisco AnyConnect SSL-VPN."
diff --git a/po/nl.po b/po/nl.po
index 5ee9466..e9ab65a 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -3699,11 +3699,11 @@ msgstr ""
msgid "TOTP - manually entered"
msgstr ""
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr ""
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr ""
diff --git a/po/or.po b/po/or.po
index f0b049c..829bf6b 100644
--- a/po/or.po
+++ b/po/or.po
@@ -97,11 +97,11 @@ msgstr "ଆପଣଙ୍କର ବ୍ୟକ୍ତିଗତ କି କୁ ବା
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM ପ୍ରମାଣପତ୍ରଗୁଡ଼ିକ (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco ଯେକୌଣସି ସଂଯୋଗ ସୁସଂଗତ VPN (ଖୋଲା ସଂଯୋଗ)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Cisco ଯେକୌଣସି ସଂଯୋଗ SSL VPN ସହିତ ସୁସଂଗତ।"
diff --git a/po/pa.po b/po/pa.po
index b9068eb..b32d230 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -100,11 +100,11 @@ msgstr "ਆਪਣੀ ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ ਚੁਣੋ..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM ਸਰਟੀਫਿਕੇਟ (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco ਐਨੀ-ਕੁਨੈਕਟ ਅਨੁਕੂਲ VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Cisco AnyConnect SSL VPN ਨਾਲ ਅਨੁਕੂਲ।"
diff --git a/po/pl.po b/po/pl.po
index 5133b79..21e053d 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5120,11 +5120,11 @@ msgstr "Wybierz klucz prywatny…"
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Certyfikaty PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:79
+#: ../properties/nm-openconnect-editor.c:79
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN zgodny z Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:80
+#: ../properties/nm-openconnect-editor.c:80
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Zgodny z VPN Cisco AnyConnect SSL."
diff --git a/po/pt.po b/po/pt.po
index 8b88ea3..2d7a253 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -104,11 +104,11 @@ msgstr "Escolha a sua chave privada..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Certificados PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:79
+#: ../properties/nm-openconnect-editor.c:79
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN compatível com Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:80
+#: ../properties/nm-openconnect-editor.c:80
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Compatível com Cisco AnyConnect SSL VPN."
diff --git a/po/pt_BR.po b/po/pt_BR.po
index bbf18f0..940831b 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -5077,11 +5077,11 @@ msgstr "Escolha sua chave privada..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Certificados PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:79
+#: ../properties/nm-openconnect-editor.c:79
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN Compatível com Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:80
+#: ../properties/nm-openconnect-editor.c:80
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Compatível com Cisco AnyConnect SSL VPN."
diff --git a/po/ro.po b/po/ro.po
index 822263e..f8a1c29 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -97,11 +97,11 @@ msgstr "Alegeți cheia personală..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Certificate PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN compatibil Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Compatibil cu SSL VPN Cisco AnyConnect."
diff --git a/po/ru.po b/po/ru.po
index 5c28708..7a6c50e 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -102,11 +102,11 @@ msgstr "Выберите свой личный ключ…"
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Сертификаты PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect-совместимая VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "SSL VPN, совместимая с Cisco AnyConnect."
diff --git a/po/sl.po b/po/sl.po
index 8b2a467..3c04fa2 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -3726,11 +3726,11 @@ msgstr "RSA SecurID - ročno vpisano"
msgid "TOTP - manually entered"
msgstr "TOTP - ročno vpisano"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Združljivo s Cisco AnyConnect VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Združljivo s Cisco AnyConnect SSL VPN."
diff --git a/po/sr.po b/po/sr.po
index 7886039..41456ae 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -101,11 +101,11 @@ msgstr "Изаберите лични кључ..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "ПЕМ уверења (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:79
+#: ../properties/nm-openconnect-editor.c:79
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "ВПН сагласан са Циско Ени Конектом (openconnect)"
-#: ../properties/nm-openconnect.c:80
+#: ../properties/nm-openconnect-editor.c:80
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Сагласно са ССЛ ВПН-ом Циско Ени Конекта."
diff --git a/po/sr latin po b/po/sr latin po
index 814fe78..7ff2fff 100644
--- a/po/sr latin po
+++ b/po/sr latin po
@@ -101,11 +101,11 @@ msgstr "Izaberite lični ključ..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM uverenja (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:79
+#: ../properties/nm-openconnect-editor.c:79
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN saglasan sa Cisko Eni Konektom (openconnect)"
-#: ../properties/nm-openconnect.c:80
+#: ../properties/nm-openconnect-editor.c:80
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Saglasno sa SSL VPN-om Cisko Eni Konekta."
diff --git a/po/sv.po b/po/sv.po
index 10c5545..510fb92 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -5030,11 +5030,11 @@ msgstr "Välj din privata nyckel…"
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM-certifikat (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:79
+#: ../properties/nm-openconnect-editor.c:79
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect-kompatibel VPN (openconnect)"
-#: ../properties/nm-openconnect.c:80
+#: ../properties/nm-openconnect-editor.c:80
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Kompatibel med Cisco AnyConnect SSL VPN."
diff --git a/po/ta.po b/po/ta.po
index d44606e..7e5e7da 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -101,11 +101,11 @@ msgstr "உங்களது தனிப்பட்ட விசையை த
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM சான்றிதழ்கள் (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect ஏற்ற VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Cisco AnyConnect SSL VPNக்கு ஏற்றது."
diff --git a/po/te.po b/po/te.po
index b26f682..e96d160 100644
--- a/po/te.po
+++ b/po/te.po
@@ -98,11 +98,11 @@ msgstr "మీ వ్యక్తిగత కీను యెంచుకొన
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM ధృవీకరణపత్రములు (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect Compatible VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Cisco AnyConnect SSL VPN తో సారూప్యమైంది."
diff --git a/po/tr.po b/po/tr.po
index 5254508..e055b58 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -104,11 +104,11 @@ msgstr "Özel anahtarınızı seçin..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM sertifikaları (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect Uyumlu VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Cisco AnyConnect SSL VPN ile uyumlu"
diff --git a/po/ug.po b/po/ug.po
index f72c521..b5b88f9 100644
--- a/po/ug.po
+++ b/po/ug.po
@@ -3697,11 +3697,11 @@ msgstr ""
msgid "TOTP - manually entered"
msgstr ""
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect بىلەن ماسلىشىدىغان VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Cisco AnyConnect SSL VPN بىلەن ماسلىشىدۇ."
diff --git a/po/uk.po b/po/uk.po
index 6693172..921cc77 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -97,11 +97,11 @@ msgstr "Виберіть ваш закритий ключ…"
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Сертифікати PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Сумісна з Cisco AnyConnect VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "SSL VPN, сумісна з Cisco AnyConnect."
diff --git a/po/vi.po b/po/vi.po
index 78624de..335b3d8 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -98,11 +98,11 @@ msgstr "Chọn khóa riêng..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "Chứng nhận PEM (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "VPN tương thích Cisco AnyConnect (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "Tương thích với Cisco AnyConnect SSL VPN."
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 0457279..d057db5 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -98,11 +98,11 @@ msgstr "选择您的私人密钥..."
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM 证书(*.pem,*.crt,*.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect 兼容的 VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "和 Cisco AnyConnect SSL VPN 兼容。"
diff --git a/po/zh_HK.po b/po/zh_HK.po
index eb8c306..9c430e4 100644
--- a/po/zh_HK.po
+++ b/po/zh_HK.po
@@ -94,11 +94,11 @@ msgstr "選擇你的私密密碼匙…"
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM 證書 (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect 兼容 VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "兼容於 Cisco AnyConnect SSL VPN。"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index d3007c2..7c435ae 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -94,11 +94,11 @@ msgstr "選擇您的私密金鑰…"
msgid "PEM certificates (*.pem, *.crt, *.key)"
msgstr "PEM 憑證 (*.pem, *.crt, *.key)"
-#: ../properties/nm-openconnect.c:63
+#: ../properties/nm-openconnect-editor.c:63
msgid "Cisco AnyConnect Compatible VPN (openconnect)"
msgstr "Cisco AnyConnect 相容 VPN (openconnect)"
-#: ../properties/nm-openconnect.c:64
+#: ../properties/nm-openconnect-editor.c:64
msgid "Compatible with Cisco AnyConnect SSL VPN."
msgstr "相容於 Cisco AnyConnect SSL VPN。"
diff --git a/properties/Makefile.am b/properties/Makefile.am
index 1d70913..a5407b0 100644
--- a/properties/Makefile.am
+++ b/properties/Makefile.am
@@ -4,16 +4,21 @@ if WITH_LIBNM_GLIB
plugin_LTLIBRARIES += libnm-openconnect-properties.la
endif
-uidir = $(datadir)/gnome-vpn-properties/openconnect
-ui_DATA = nm-openconnect-dialog.ui
-
plugin_sources = \
+ nm-openconnect-editor-plugin.c \
+ nm-openconnect-editor-plugin.h \
+ $(NULL)
+
+editor_sources = \
auth-helpers.c \
auth-helpers.h \
- nm-openconnect.c \
- nm-openconnect.h
+ nm-openconnect-editor.c \
+ nm-openconnect-editor.h
$(NULL)
+uidir = $(datadir)/gnome-vpn-properties/openconnect
+ui_DATA = nm-openconnect-dialog.ui
+
common_CFLAGS = \
$(GLIB_CFLAGS) \
$(GTK_CFLAGS) \
@@ -26,7 +31,8 @@ common_CFLAGS = \
###############################################################################
libnm_vpn_plugin_openconnect_la_SOURCES = \
- $(plugin_sources)
+ $(plugin_sources) \
+ $(editor_sources)
libnm_vpn_plugin_openconnect_la_CFLAGS = \
-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB \
@@ -45,7 +51,8 @@ libnm_vpn_plugin_openconnect_la_LDFLAGS = \
###############################################################################
libnm_openconnect_properties_la_SOURCES = \
- $(plugin_sources)
+ $(plugin_sources) \
+ $(editor_sources)
libnm_openconnect_properties_la_CFLAGS = \
-DNM_VPN_OLD \
@@ -67,7 +74,7 @@ libnm_openconnect_properties_la_LDFLAGS = \
CLEANFILES = *.bak *~
EXTRA_DIST = \
- $(ui_DATA) \
libnm-openconnect-properties.ver \
libnm-vpn-plugin-openconnect.ver \
+ nm-openconnect-dialog.ui \
$(NULL)
diff --git a/properties/auth-helpers.c b/properties/auth-helpers.c
index e60d16f..a5a0248 100644
--- a/properties/auth-helpers.c
+++ b/properties/auth-helpers.c
@@ -33,8 +33,6 @@
#include <unistd.h>
#include <errno.h>
-#include "nm-openconnect.h"
-
void
tls_pw_init_auth_widget (GtkBuilder *builder,
GtkSizeGroup *group,
diff --git a/properties/nm-openconnect-editor-plugin.c b/properties/nm-openconnect-editor-plugin.c
new file mode 100644
index 0000000..8486b59
--- /dev/null
+++ b/properties/nm-openconnect-editor-plugin.c
@@ -0,0 +1,514 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/***************************************************************************
+ * Copyright (C) 2005 David Zeuthen, <davidz redhat com>
+ * Copyright (C) 2005 - 2008 Dan Williams, <dcbw redhat com>
+ * Copyright (C) 2005 - 2011 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ **************************************************************************/
+
+#include "nm-default.h"
+
+#include "nm-openconnect-editor-plugin.h"
+
+#include <stdio.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <openconnect.h>
+
+#ifndef OPENCONNECT_CHECK_VER
+#define OPENCONNECT_CHECK_VER(x,y) 0
+#endif
+
+#if !OPENCONNECT_CHECK_VER(2,1)
+#define openconnect_has_stoken_support() 0
+#endif
+#if !OPENCONNECT_CHECK_VER(2,2)
+#define openconnect_has_oath_support() 0
+#endif
+
+#include "nm-openconnect-editor.h"
+
+#ifndef NM_VPN_OLD
+#include "nm-utils/nm-vpn-editor-plugin-call.h"
+#endif
+
+#define OPENCONNECT_PLUGIN_NAME _("Cisco AnyConnect Compatible VPN (openconnect)")
+#define OPENCONNECT_PLUGIN_DESC _("Compatible with Cisco AnyConnect SSL VPN.")
+
+/************** plugin class **************/
+
+enum {
+ PROP_0,
+ PROP_NAME,
+ PROP_DESC,
+ PROP_SERVICE
+};
+
+static void openconnect_editor_plugin_interface_init (NMVpnEditorPluginInterface *iface_class);
+
+G_DEFINE_TYPE_EXTENDED (OpenconnectEditorPlugin, openconnect_editor_plugin, G_TYPE_OBJECT, 0,
+ G_IMPLEMENT_INTERFACE (NM_TYPE_VPN_EDITOR_PLUGIN,
+ openconnect_editor_plugin_interface_init))
+
+typedef struct {
+ char **supported_protocols;
+} OpenconnectEditorPluginPrivate;
+
+#define OPENCONNECT_EDITOR_PLUGIN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o),
OPENCONNECT_TYPE_EDITOR_PLUGIN, OpenconnectEditorPluginPrivate))
+
+/************** import/export **************/
+
+typedef enum {
+ NM_OPENCONNECT_IMPORT_EXPORT_ERROR_UNKNOWN = 0,
+ NM_OPENCONNECT_IMPORT_EXPORT_ERROR_NOT_OPENCONNECT,
+ NM_OPENCONNECT_IMPORT_EXPORT_ERROR_BAD_DATA,
+} NMOpenconnectImportError;
+
+#define NM_OPENCONNECT_IMPORT_EXPORT_ERROR nm_openconnect_import_export_error_quark ()
+
+static GQuark
+nm_openconnect_import_export_error_quark (void)
+{
+ static GQuark quark = 0;
+
+ if (G_UNLIKELY (quark == 0))
+ quark = g_quark_from_static_string ("nm-openconnect-import-export-error-quark");
+ return quark;
+}
+
+static NMConnection *
+import (NMVpnEditorPlugin *iface, const char *path, GError **error)
+{
+ NMConnection *connection;
+ NMSettingConnection *s_con;
+ NMSettingVpn *s_vpn;
+ NMSettingIP4Config *s_ip4;
+ GKeyFile *keyfile;
+ GKeyFileFlags flags;
+ const char *buf;
+ gboolean bval;
+
+ keyfile = g_key_file_new ();
+ flags = G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS;
+
+ if (!g_key_file_load_from_file (keyfile, path, flags, NULL)) {
+ g_set_error (error,
+ NM_OPENCONNECT_IMPORT_EXPORT_ERROR,
+ NM_OPENCONNECT_IMPORT_EXPORT_ERROR_NOT_OPENCONNECT,
+ "does not look like a %s VPN connection (parse failed)",
+ OPENCONNECT_PLUGIN_NAME);
+ return NULL;
+ }
+
+ connection = nm_simple_connection_new ();
+ s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ());
+ nm_connection_add_setting (connection, NM_SETTING (s_con));
+
+ s_vpn = NM_SETTING_VPN (nm_setting_vpn_new ());
+ g_object_set (s_vpn, NM_SETTING_VPN_SERVICE_TYPE, NM_VPN_SERVICE_TYPE_OPENCONNECT, NULL);
+ nm_connection_add_setting (connection, NM_SETTING (s_vpn));
+
+ s_ip4 = NM_SETTING_IP4_CONFIG (nm_setting_ip4_config_new ());
+ nm_connection_add_setting (connection, NM_SETTING (s_ip4));
+
+ /* Host */
+ buf = g_key_file_get_string (keyfile, "openconnect", "Host", NULL);
+ if (buf) {
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_GATEWAY, buf);
+ } else {
+ g_set_error (error,
+ NM_OPENCONNECT_IMPORT_EXPORT_ERROR,
+ NM_OPENCONNECT_IMPORT_EXPORT_ERROR_BAD_DATA,
+ "does not look like a %s VPN connection (no Host)",
+ OPENCONNECT_PLUGIN_NAME);
+ g_object_unref (connection);
+ return NULL;
+ }
+
+ /* Optional Settings */
+
+ /* Description */
+ buf = g_key_file_get_string (keyfile, "openconnect", "Description", NULL);
+ if (buf)
+ g_object_set (s_con, NM_SETTING_CONNECTION_ID, buf, NULL);
+
+ /* CA Certificate */
+ buf = g_key_file_get_string (keyfile, "openconnect", "CACert", NULL);
+ if (buf)
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_CACERT, buf);
+
+ /* Proxy */
+ buf = g_key_file_get_string (keyfile, "openconnect", "Proxy", NULL);
+ if (buf)
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_PROXY, buf);
+
+ /* Cisco Secure Desktop */
+ bval = g_key_file_get_boolean (keyfile, "openconnect", "CSDEnable", NULL);
+ if (bval)
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_CSD_ENABLE, "yes");
+
+ /* Cisco Secure Desktop wrapper */
+ buf = g_key_file_get_string (keyfile, "openconnect", "CSDWrapper", NULL);
+ if (buf)
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_CSD_WRAPPER, buf);
+
+ /* User Certificate */
+ buf = g_key_file_get_string (keyfile, "openconnect", "UserCertificate", NULL);
+ if (buf)
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_USERCERT, buf);
+
+ /* Private Key */
+ buf = g_key_file_get_string (keyfile, "openconnect", "PrivateKey", NULL);
+ if (buf)
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_PRIVKEY, buf);
+
+ /* FSID */
+ bval = g_key_file_get_boolean (keyfile, "openconnect", "FSID", NULL);
+ if (bval)
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID, "yes");
+
+ /* Soft token mode */
+ buf = g_key_file_get_string (keyfile, "openconnect", "StokenSource", NULL);
+ if (buf)
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_TOKEN_MODE, buf);
+
+ /* Soft token secret */
+ buf = g_key_file_get_string (keyfile, "openconnect", "StokenString", NULL);
+ if (buf)
+ nm_setting_vpn_add_secret (s_vpn, NM_OPENCONNECT_KEY_TOKEN_SECRET, buf);
+
+ return connection;
+}
+
+static gboolean
+export (NMVpnEditorPlugin *iface,
+ const char *path,
+ NMConnection *connection,
+ GError **error)
+{
+ NMSettingConnection *s_con;
+ NMSettingVpn *s_vpn;
+ const char *value;
+ const char *gateway = NULL;
+ const char *cacert = NULL;
+ const char *proxy = NULL;
+ gboolean csd_enable = FALSE;
+ const char *csd_wrapper = NULL;
+ const char *usercert = NULL;
+ const char *privkey = NULL;
+ gboolean pem_passphrase_fsid = FALSE;
+ const char *token_mode = NULL;
+ const char *token_secret = NULL;
+ gboolean success = FALSE;
+ FILE *f;
+
+ f = fopen (path, "w");
+ if (!f) {
+ g_set_error_literal (error,
+ NM_OPENCONNECT_IMPORT_EXPORT_ERROR,
+ NM_OPENCONNECT_IMPORT_EXPORT_ERROR_UNKNOWN,
+ "could not open file for writing");
+ return FALSE;
+ }
+
+ s_con = nm_connection_get_setting_connection (connection);
+
+ s_vpn = nm_connection_get_setting_vpn (connection);
+
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_GATEWAY);
+ if (value && strlen (value))
+ gateway = value;
+ else {
+ g_set_error_literal (error,
+ NM_OPENCONNECT_IMPORT_EXPORT_ERROR,
+ NM_OPENCONNECT_IMPORT_EXPORT_ERROR_BAD_DATA,
+ "connection was incomplete (missing gateway)");
+ goto done;
+ }
+
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_CACERT);
+ if (value && strlen (value))
+ cacert = value;
+
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_PROXY);
+ if (value && strlen (value))
+ proxy = value;
+
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_CSD_ENABLE);
+ if (value && !strcmp (value, "yes"))
+ csd_enable = TRUE;
+
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_CSD_WRAPPER);
+ if (value && strlen (value))
+ csd_wrapper = value;
+
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_USERCERT);
+ if (value && strlen (value))
+ usercert = value;
+
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_PRIVKEY);
+ if (value && strlen (value))
+ privkey = value;
+
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID);
+ if (value && !strcmp (value, "yes"))
+ pem_passphrase_fsid = TRUE;
+
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_TOKEN_MODE);
+ if (value && strlen (value))
+ token_mode = value;
+
+ value = nm_setting_vpn_get_secret (s_vpn, NM_OPENCONNECT_KEY_TOKEN_SECRET);
+ if (value && strlen (value))
+ token_secret = value;
+ else {
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_TOKEN_SECRET);
+ if (value && strlen (value))
+ token_secret = value;
+ }
+
+ fprintf (f,
+ "[openconnect]\n"
+ "Description=%s\n"
+ "Host=%s\n"
+ "CACert=%s\n"
+ "Proxy=%s\n"
+ "CSDEnable=%s\n"
+ "CSDWrapper=%s\n"
+ "UserCertificate=%s\n"
+ "PrivateKey=%s\n"
+ "FSID=%s\n"
+ "StokenSource=%s\n"
+ "StokenString=%s\n",
+ /* Description */ nm_setting_connection_get_id (s_con),
+ /* Host */ gateway,
+ /* CA Certificate */ cacert,
+ /* Proxy */ proxy ? proxy : "",
+ /* Cisco Secure Desktop */ csd_enable ? "1" : "0",
+ /* CSD Wrapper Script */ csd_wrapper ? csd_wrapper : "",
+ /* User Certificate */ usercert,
+ /* Private Key */ privkey,
+ /* FSID */ pem_passphrase_fsid ? "1" : "0",
+ /* Soft token mode */ token_mode ? token_mode : "",
+ /* Soft token secret */ token_secret ? token_secret : "");
+
+ success = TRUE;
+
+done:
+ fclose (f);
+ return success;
+}
+
+static guint32
+get_capabilities (NMVpnEditorPlugin *iface)
+{
+ return (NM_VPN_EDITOR_PLUGIN_CAPABILITY_IMPORT |
+ NM_VPN_EDITOR_PLUGIN_CAPABILITY_EXPORT |
+ NM_VPN_EDITOR_PLUGIN_CAPABILITY_IPV6);
+}
+
+#ifndef NM_VPN_OLD
+static void
+notify_plugin_info_set (NMVpnEditorPlugin *plugin,
+ NMVpnPluginInfo *plugin_info)
+{
+ OpenconnectEditorPluginPrivate *priv = OPENCONNECT_EDITOR_PLUGIN_GET_PRIVATE (plugin);
+ const char *supported_protocols;
+ guint i, j;
+
+ if (!plugin_info)
+ return;
+
+ supported_protocols = nm_vpn_plugin_info_lookup_property (plugin_info, "openconnect",
"supported-protocols");
+
+ g_strfreev (priv->supported_protocols);
+ priv->supported_protocols = supported_protocols
+ ? g_strsplit_set (supported_protocols, ",", -1)
+ : g_new0 (char *, 1);
+
+ /*remove empty entries and whitespace */
+ for (i = 0, j = 0; priv->supported_protocols[j]; j++) {
+ g_strstrip (priv->supported_protocols[j]);
+ if (priv->supported_protocols[j][0] == '\0')
+ g_free (priv->supported_protocols[j]);
+ else
+ priv->supported_protocols[i++] = priv->supported_protocols[j];
+ }
+ priv->supported_protocols[i] = NULL;
+}
+
+static char **
+_vt_impl_get_service_add_details (NMVpnEditorPlugin *plugin,
+ const char *service_type)
+{
+ return g_strdupv (OPENCONNECT_EDITOR_PLUGIN_GET_PRIVATE (plugin)->supported_protocols);
+}
+
+static gboolean
+_vt_impl_get_service_add_detail (NMVpnEditorPlugin *plugin,
+ const char *service_type,
+ const char *add_detail,
+ char **out_pretty_name,
+ char **out_description,
+ char **out_add_detail_key,
+ char **out_add_detail_val,
+ guint *out_flags)
+{
+ OpenconnectEditorPluginPrivate *priv;
+ guint i;
+
+ if (!nm_streq (service_type, NM_VPN_SERVICE_TYPE_OPENCONNECT))
+ return FALSE;
+
+ priv = OPENCONNECT_EDITOR_PLUGIN_GET_PRIVATE (plugin);
+ for (i = 0; priv->supported_protocols[i]; i++) {
+ if (!nm_streq (add_detail, priv->supported_protocols[i]))
+ continue;
+ if (nm_streq (add_detail, "anyconnect")) {
+ NM_SET_OUT (out_pretty_name, g_strdup (OPENCONNECT_PLUGIN_NAME));
+ NM_SET_OUT (out_description, g_strdup (OPENCONNECT_PLUGIN_DESC));
+ /* we unset @add_detail, because "anyconnect" is the default and no need
+ * to set the protocol explicitly. */
+ add_detail = NULL;
+ } else if (nm_streq (add_detail, "nc")) {
+ NM_SET_OUT (out_pretty_name, g_strdup (_("Juniper Network Connect (openconnect)")));
+ NM_SET_OUT (out_description, g_strdup (_("Compatible with Juniper Network Connect /
Pulse Secure SSL VPN")));
+ } else {
+ /* we don't know this protocol by name, but it's configured in the .name file,
+ * so just take it. */
+ NM_SET_OUT (out_pretty_name, g_strdup_printf (_("Openconnect VPN (%s)"), add_detail));
+ NM_SET_OUT (out_description, g_strdup_printf (_("Openconnect SSL VPN with %s
protocol"), add_detail));
+ }
+ NM_SET_OUT (out_add_detail_key, g_strdup (add_detail ? NM_OPENCONNECT_KEY_PROTOCOL : NULL));
+ NM_SET_OUT (out_add_detail_val, g_strdup (add_detail));
+ NM_SET_OUT (out_flags, 0);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+NM_VPN_EDITOR_PLUGIN_VT_DEFINE (vt, _get_vt,
+ .fcn_get_service_add_details = _vt_impl_get_service_add_details,
+ .fcn_get_service_add_detail = _vt_impl_get_service_add_detail,
+)
+
+#endif
+
+static NMVpnEditor *
+get_editor (NMVpnEditorPlugin *iface, NMConnection *connection, GError **error)
+{
+ return nm_vpn_editor_interface_new (connection, error);
+}
+
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
+{
+ switch (prop_id) {
+ case PROP_NAME:
+ g_value_set_string (value, OPENCONNECT_PLUGIN_NAME);
+ break;
+ case PROP_DESC:
+ g_value_set_string (value, OPENCONNECT_PLUGIN_DESC);
+ break;
+ case PROP_SERVICE:
+ g_value_set_string (value, NM_VPN_SERVICE_TYPE_OPENCONNECT);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+openconnect_editor_plugin_dispose (GObject *object)
+{
+ OpenconnectEditorPlugin *plugin = OPENCONNECT_EDITOR_PLUGIN (object);
+ OpenconnectEditorPluginPrivate *priv = OPENCONNECT_EDITOR_PLUGIN_GET_PRIVATE (plugin);
+
+ g_strfreev (priv->supported_protocols);
+ priv->supported_protocols = NULL;
+
+ G_OBJECT_CLASS (openconnect_editor_plugin_parent_class)->dispose (object);
+}
+
+static void
+openconnect_editor_plugin_class_init (OpenconnectEditorPluginClass *req_class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (req_class);
+
+ g_type_class_add_private (req_class, sizeof (OpenconnectEditorPluginPrivate));
+
+ object_class->get_property = get_property;
+ object_class->dispose = openconnect_editor_plugin_dispose;
+
+ g_object_class_override_property (object_class,
+ PROP_NAME,
+ NM_VPN_EDITOR_PLUGIN_NAME);
+
+ g_object_class_override_property (object_class,
+ PROP_DESC,
+ NM_VPN_EDITOR_PLUGIN_DESCRIPTION);
+
+ g_object_class_override_property (object_class,
+ PROP_SERVICE,
+ NM_VPN_EDITOR_PLUGIN_SERVICE);
+}
+
+static void
+openconnect_editor_plugin_init (OpenconnectEditorPlugin *plugin)
+{
+ OpenconnectEditorPluginPrivate *priv = OPENCONNECT_EDITOR_PLUGIN_GET_PRIVATE (plugin);
+ char *dflt[] = {
+ "anyconnect",
+ "nc",
+ NULL,
+ };
+
+ priv->supported_protocols = g_strdupv (dflt);
+}
+
+static void
+openconnect_editor_plugin_interface_init (NMVpnEditorPluginInterface *iface_class)
+{
+ /* interface implementation */
+ iface_class->get_editor = get_editor;
+ iface_class->get_capabilities = get_capabilities;
+ iface_class->import_from_file = import;
+ iface_class->export_to_file = export;
+#ifndef NM_VPN_OLD
+ iface_class->notify_plugin_info_set = notify_plugin_info_set;
+ iface_class->get_vt = _get_vt;
+#endif
+}
+
+G_MODULE_EXPORT NMVpnEditorPlugin *
+nm_vpn_editor_plugin_factory (GError **error)
+{
+ if (error)
+ g_return_val_if_fail (*error == NULL, NULL);
+
+ bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+
+ return g_object_new (OPENCONNECT_TYPE_EDITOR_PLUGIN, NULL);
+}
+
diff --git a/properties/nm-openconnect.h b/properties/nm-openconnect-editor-plugin.h
similarity index 65%
copy from properties/nm-openconnect.h
copy to properties/nm-openconnect-editor-plugin.h
index a392b73..4625528 100644
--- a/properties/nm-openconnect.h
+++ b/properties/nm-openconnect-editor-plugin.h
@@ -1,7 +1,5 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/***************************************************************************
- * nm-openconnect.h : GNOME UI dialogs for configuring openconnect VPN connections
- *
* Copyright (C) 2008 Dan Williams, <dcbw redhat com>
*
* This program is free software; you can redistribute it and/or modify
@@ -20,8 +18,8 @@
*
**************************************************************************/
-#ifndef _NM_OPENCONNECT_H_
-#define _NM_OPENCONNECT_H_
+#ifndef __NM_OPENCONNECT_EDITOR_PLUGIN_H__
+#define __NM_OPENCONNECT_EDITOR_PLUGIN_H__
#define OPENCONNECT_TYPE_EDITOR_PLUGIN (openconnect_editor_plugin_get_type ())
#define OPENCONNECT_EDITOR_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj),
OPENCONNECT_TYPE_EDITOR_PLUGIN, OpenconnectEditorPlugin))
@@ -44,25 +42,5 @@ struct _OpenconnectEditorPluginClass {
GType openconnect_editor_plugin_get_type (void);
-#define OPENCONNECT_TYPE_EDITOR (openconnect_editor_get_type ())
-#define OPENCONNECT_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OPENCONNECT_TYPE_EDITOR,
OpenconnectEditor))
-#define OPENCONNECT_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OPENCONNECT_TYPE_EDITOR,
OpenconnectEditorClass))
-#define OPENCONNECT_IS_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OPENCONNECT_TYPE_EDITOR))
-#define OPENCONNECT_IS_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OPENCONNECT_TYPE_EDITOR))
-#define OPENCONNECT_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OPENCONNECT_TYPE_EDITOR,
OpenconnectEditorClass))
-
-typedef struct _OpenconnectEditor OpenconnectEditor;
-typedef struct _OpenconnectEditorClass OpenconnectEditorClass;
-
-struct _OpenconnectEditor {
- GObject parent;
-};
-
-struct _OpenconnectEditorClass {
- GObjectClass parent;
-};
-
-GType openconnect_editor_get_type (void);
-
-#endif /* _NM_OPENCONNECT_H_ */
+#endif /* __NM_OPENCONNECT_EDITOR_PLUGIN_H__ */
diff --git a/properties/nm-openconnect-editor.c b/properties/nm-openconnect-editor.c
new file mode 100644
index 0000000..7021642
--- /dev/null
+++ b/properties/nm-openconnect-editor.c
@@ -0,0 +1,505 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/***************************************************************************
+ * Copyright (C) 2005 David Zeuthen, <davidz redhat com>
+ * Copyright (C) 2005 - 2008 Dan Williams, <dcbw redhat com>
+ * Copyright (C) 2005 - 2011 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ **************************************************************************/
+
+#include "nm-default.h"
+
+#include "nm-openconnect-editor.h"
+
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+
+#include <openconnect.h>
+
+#ifndef OPENCONNECT_CHECK_VER
+#define OPENCONNECT_CHECK_VER(x,y) 0
+#endif
+
+#if !OPENCONNECT_CHECK_VER(2,1)
+#define openconnect_has_stoken_support() 0
+#endif
+#if !OPENCONNECT_CHECK_VER(2,2)
+#define openconnect_has_oath_support() 0
+#endif
+
+#include "auth-helpers.h"
+
+/************** UI widget class **************/
+
+static void openconnect_editor_interface_init (NMVpnEditorInterface *iface_class);
+
+G_DEFINE_TYPE_EXTENDED (OpenconnectEditor, openconnect_editor, G_TYPE_OBJECT, 0,
+ G_IMPLEMENT_INTERFACE (NM_TYPE_VPN_EDITOR,
+ openconnect_editor_interface_init))
+
+#define OPENCONNECT_EDITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), OPENCONNECT_TYPE_EDITOR,
OpenconnectEditorPrivate))
+
+typedef struct {
+ GtkBuilder *builder;
+ GtkWidget *widget;
+ GtkSizeGroup *group;
+ GtkWindowGroup *window_group;
+ gboolean window_added;
+} OpenconnectEditorPrivate;
+
+#define COL_AUTH_NAME 0
+#define COL_AUTH_PAGE 1
+#define COL_AUTH_TYPE 2
+
+/*****************************************************************************/
+
+static gboolean
+check_validity (OpenconnectEditor *self, GError **error)
+{
+ OpenconnectEditorPrivate *priv = OPENCONNECT_EDITOR_GET_PRIVATE (self);
+ GtkWidget *widget;
+ const char *str;
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "gateway_entry"));
+ str = gtk_entry_get_text (GTK_ENTRY (widget));
+ if (!str || !strlen (str)) {
+ g_set_error (error,
+ NMV_EDITOR_PLUGIN_ERROR,
+ NMV_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY,
+ NM_OPENCONNECT_KEY_GATEWAY);
+ return FALSE;
+ }
+
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "proxy_entry"));
+ str = gtk_entry_get_text (GTK_ENTRY (widget));
+ if (str && str[0] &&
+ strncmp(str, "socks://", 8) && strncmp(str, "http://", 7)) {
+ g_set_error (error,
+ NMV_EDITOR_PLUGIN_ERROR,
+ NMV_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY,
+ NM_OPENCONNECT_KEY_PROXY);
+ return FALSE;
+ }
+
+ if (!auth_widget_check_validity (priv->builder, error))
+ return FALSE;
+
+ return TRUE;
+}
+
+static void
+stuff_changed_cb (GtkWidget *widget, gpointer user_data)
+{
+ g_signal_emit_by_name (OPENCONNECT_EDITOR (user_data), "changed");
+}
+
+static gboolean
+init_token_mode_options (GtkComboBox *token_mode)
+{
+ GtkListStore *token_mode_list = GTK_LIST_STORE (gtk_combo_box_get_model (token_mode));
+ GtkTreeModel *model = GTK_TREE_MODEL (token_mode_list);
+ GtkTreeIter iter;
+ gboolean iter_valid;
+ int valid_rows = 0;
+
+ if (!gtk_tree_model_get_iter_first (model, &iter))
+ return FALSE;
+ do {
+ char *token_type;
+
+ gtk_tree_model_get (model, &iter, 2, &token_type, -1);
+ if (!strcmp (token_type, "stoken") && !openconnect_has_stoken_support ())
+ iter_valid = gtk_list_store_remove (token_mode_list, &iter);
+ else if (!strcmp (token_type, "totp") && !openconnect_has_oath_support ())
+ iter_valid = gtk_list_store_remove (token_mode_list, &iter);
+ else if (!strcmp (token_type, "hotp") &&
+ (!openconnect_has_oath_support () || !OPENCONNECT_CHECK_VER(3,4)))
+ iter_valid = gtk_list_store_remove (token_mode_list, &iter);
+ else {
+ iter_valid = gtk_tree_model_iter_next (model, &iter);
+ valid_rows++;
+ }
+ g_free (token_type);
+ } while (iter_valid);
+
+ /* if the only option is "Disabled", don't show the token section at all */
+ return valid_rows > 1;
+}
+
+static gboolean
+init_token_ui (OpenconnectEditor *self,
+ OpenconnectEditorPrivate *priv,
+ NMSettingVpn *s_vpn)
+{
+ GtkWidget *widget;
+ GtkComboBox *token_mode;
+ GtkTextBuffer *buffer;
+ const char *value;
+
+ token_mode = GTK_COMBO_BOX (gtk_builder_get_object (priv->builder, "token_mode"));
+ if (!token_mode)
+ return FALSE;
+ if (!init_token_mode_options (token_mode))
+ return TRUE;
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "token_vbox"));
+ if (!widget)
+ return FALSE;
+ gtk_box_pack_start (GTK_BOX (priv->widget), widget, FALSE, FALSE, 0);
+
+ if (s_vpn) {
+ GtkTreeModel *model = gtk_combo_box_get_model (token_mode);
+ int active_option = 0;
+
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_TOKEN_MODE);
+ if (value) {
+ int i;
+ GtkTreeIter iter;
+
+ if (!gtk_tree_model_get_iter_first (model, &iter))
+ return FALSE;
+ for (i = 0; ; i++) {
+ char *pref_value;
+
+ gtk_tree_model_get (model, &iter, 1, &pref_value, -1);
+ if (!strcmp (value, pref_value))
+ active_option = i;
+ g_free (pref_value);
+ if (!gtk_tree_model_iter_next (model, &iter))
+ break;
+ }
+ }
+ gtk_combo_box_set_active (token_mode, active_option);
+ }
+ g_signal_connect (G_OBJECT (token_mode), "changed", G_CALLBACK (stuff_changed_cb), self);
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "token_secret"));
+ if (!widget)
+ return FALSE;
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+ if (!buffer)
+ return FALSE;
+ if (s_vpn) {
+ value = nm_setting_vpn_get_secret (s_vpn, NM_OPENCONNECT_KEY_TOKEN_SECRET);
+ if (!value)
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_TOKEN_SECRET);
+ if (value)
+ gtk_text_buffer_set_text (buffer, value, -1);
+ }
+ g_signal_connect (G_OBJECT (buffer), "changed", G_CALLBACK (stuff_changed_cb), self);
+
+ return TRUE;
+}
+
+static gboolean
+init_editor_plugin (OpenconnectEditor *self, NMConnection *connection, GError **error)
+{
+ OpenconnectEditorPrivate *priv = OPENCONNECT_EDITOR_GET_PRIVATE (self);
+ NMSettingVpn *s_vpn;
+ GtkWidget *widget;
+ const char *value;
+
+ s_vpn = nm_connection_get_setting_vpn (connection);
+
+ priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "gateway_entry"));
+ if (!widget)
+ return FALSE;
+ gtk_size_group_add_widget (priv->group, widget);
+ if (s_vpn) {
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_GATEWAY);
+ if (value)
+ gtk_entry_set_text (GTK_ENTRY (widget), value);
+ }
+ g_signal_connect (G_OBJECT (widget), "changed", G_CALLBACK (stuff_changed_cb), self);
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "proxy_entry"));
+ if (!widget)
+ return FALSE;
+ gtk_size_group_add_widget (priv->group, widget);
+ if (s_vpn) {
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_PROXY);
+ if (value)
+ gtk_entry_set_text (GTK_ENTRY (widget), value);
+ }
+ g_signal_connect (G_OBJECT (widget), "changed", G_CALLBACK (stuff_changed_cb), self);
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "fsid_button"));
+ if (!widget)
+ return FALSE;
+ if (s_vpn) {
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID);
+ if (value && !strcmp(value, "yes"))
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (widget), TRUE);
+ }
+ g_signal_connect (G_OBJECT (widget), "toggled", G_CALLBACK (stuff_changed_cb), self);
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "csd_button"));
+ if (!widget)
+ return FALSE;
+ if (s_vpn) {
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_CSD_ENABLE);
+ if (value && !strcmp(value, "yes"))
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (widget), TRUE);
+ }
+ g_signal_connect (G_OBJECT (widget), "toggled", G_CALLBACK (stuff_changed_cb), self);
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "csd_wrapper_entry"));
+ if (!widget)
+ return FALSE;
+ if (s_vpn) {
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_CSD_WRAPPER);
+ if (value)
+ gtk_entry_set_text (GTK_ENTRY (widget), value);
+ }
+ g_signal_connect (G_OBJECT (widget), "changed", G_CALLBACK (stuff_changed_cb), self);
+
+ if (init_token_ui (self, priv, s_vpn) == FALSE)
+ return FALSE;
+
+ tls_pw_init_auth_widget (priv->builder, priv->group, s_vpn, stuff_changed_cb, self);
+
+ return TRUE;
+}
+
+static GObject *
+get_widget (NMVpnEditor *iface)
+{
+ OpenconnectEditor *self = OPENCONNECT_EDITOR (iface);
+ OpenconnectEditorPrivate *priv = OPENCONNECT_EDITOR_GET_PRIVATE (self);
+
+ return G_OBJECT (priv->widget);
+}
+
+static gboolean
+update_connection (NMVpnEditor *iface,
+ NMConnection *connection,
+ GError **error)
+{
+ OpenconnectEditor *self = OPENCONNECT_EDITOR (iface);
+ OpenconnectEditorPrivate *priv = OPENCONNECT_EDITOR_GET_PRIVATE (self);
+ NMSettingVpn *s_vpn;
+ GtkWidget *widget;
+ char *str;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ gboolean token_secret_editable = FALSE;
+ GtkTextIter iter_start, iter_end;
+ GtkTextBuffer *buffer;
+ const char *auth_type = NULL;
+ const char *protocol = NULL;
+
+ s_vpn = nm_connection_get_setting_vpn (connection);
+ if (s_vpn)
+ protocol = nm_setting_vpn_get_data_item (s_vpn, NM_OPENCONNECT_KEY_PROTOCOL);
+
+ s_vpn = NM_SETTING_VPN (nm_setting_vpn_new ());
+ g_object_set (s_vpn, NM_SETTING_VPN_SERVICE_TYPE, NM_VPN_SERVICE_TYPE_OPENCONNECT, NULL);
+
+ if (protocol)
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_PROTOCOL, protocol);
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "gateway_entry"));
+ str = (char *) gtk_entry_get_text (GTK_ENTRY (widget));
+ if (str && strlen (str))
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_GATEWAY, str);
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "proxy_entry"));
+ str = (char *) gtk_entry_get_text (GTK_ENTRY (widget));
+ if (str && strlen (str))
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_PROXY, str);
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "fsid_button"));
+ str = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (widget))?"yes":"no";
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID, str);
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "csd_button"));
+ str = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (widget))?"yes":"no";
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_CSD_ENABLE, str);
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "csd_wrapper_entry"));
+ str = (char *) gtk_entry_get_text (GTK_ENTRY (widget));
+ if (str && strlen (str))
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_CSD_WRAPPER, str);
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "token_mode"));
+ model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
+ if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter)) {
+ gtk_tree_model_get (model, &iter, 1, &str, 3, &token_secret_editable, -1);
+ nm_setting_vpn_add_data_item (s_vpn, NM_OPENCONNECT_KEY_TOKEN_MODE, str);
+ g_free(str);
+ }
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "token_secret_label"));
+ gtk_widget_set_sensitive (widget, token_secret_editable);
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "token_secret"));
+ gtk_widget_set_sensitive (widget, token_secret_editable);
+
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+ gtk_text_buffer_get_start_iter (buffer, &iter_start);
+ gtk_text_buffer_get_end_iter (buffer, &iter_end);
+ str = (char *) gtk_text_buffer_get_text (buffer, &iter_start, &iter_end, TRUE);
+ if (str) {
+ char *src = str, *dst = str;
+
+ /* zap invalid characters */
+ for (; *src; src++)
+ if (*src >= ' ' && *src <= '~')
+ *(dst++) = *src;
+ *dst = 0;
+
+ if (strlen (str))
+ nm_setting_vpn_add_secret (s_vpn, NM_OPENCONNECT_KEY_TOKEN_SECRET, str);
+ }
+
+ if (!check_validity (self, error))
+ return FALSE;
+
+ /* These are different for every login session, and should not be stored */
+ nm_setting_set_secret_flags (NM_SETTING (s_vpn), "gwcert",
+ NM_SETTING_SECRET_FLAG_NOT_SAVED, NULL);
+ nm_setting_set_secret_flags (NM_SETTING (s_vpn), "cookie",
+ NM_SETTING_SECRET_FLAG_NOT_SAVED, NULL);
+ nm_setting_set_secret_flags (NM_SETTING (s_vpn), "gateway",
+ NM_SETTING_SECRET_FLAG_NOT_SAVED, NULL);
+
+ /* These are purely internal data for the auth-dialog, and should be stored */
+ nm_setting_set_secret_flags (NM_SETTING (s_vpn), "xmlconfig",
+ NM_SETTING_SECRET_FLAG_NONE, NULL);
+ nm_setting_set_secret_flags (NM_SETTING (s_vpn), "lasthost",
+ NM_SETTING_SECRET_FLAG_NONE, NULL);
+ nm_setting_set_secret_flags (NM_SETTING (s_vpn), "autoconnect",
+ NM_SETTING_SECRET_FLAG_NONE, NULL);
+ nm_setting_set_secret_flags (NM_SETTING (s_vpn), "certsigs",
+ NM_SETTING_SECRET_FLAG_NONE, NULL);
+ /* Note that the auth-dialog will also store "extra" secrets for form
+ entries, depending on the arbitrary forms that we're offered by the
+ server during authentication. We can't know about those in advance,
+ but the presence of the above four is sufficient to trigger a write
+ of the new secrets, and the code in the keyfile plugin will treat the
+ absence of a flags configuration for a given secret as equivalent to
+ FLAG_NONE, and thus save our "extra" secrets too. */
+
+ auth_widget_update_connection (priv->builder, auth_type, s_vpn);
+
+ nm_connection_add_setting (connection, NM_SETTING (s_vpn));
+ return TRUE;
+}
+
+NMVpnEditor *
+nm_vpn_editor_interface_new (NMConnection *connection, GError **error)
+{
+ NMVpnEditor *object;
+ OpenconnectEditorPrivate *priv;
+ char *ui_file;
+
+ if (error)
+ g_return_val_if_fail (*error == NULL, NULL);
+
+ object = g_object_new (OPENCONNECT_TYPE_EDITOR, NULL);
+ if (!object) {
+ g_set_error (error, NMV_EDITOR_PLUGIN_ERROR, 0, "could not create openconnect object");
+ return NULL;
+ }
+
+ priv = OPENCONNECT_EDITOR_GET_PRIVATE (object);
+
+ ui_file = g_strdup_printf ("%s/%s", UIDIR, "nm-openconnect-dialog.ui");
+ priv->builder = gtk_builder_new ();
+
+ gtk_builder_set_translation_domain (priv->builder, GETTEXT_PACKAGE);
+
+ if (!gtk_builder_add_from_file (priv->builder, ui_file, error)) {
+ g_warning ("Couldn't load builder file: %s",
+ error && *error ? (*error)->message : "(unknown)");
+ g_clear_error (error);
+ g_set_error (error, NMV_EDITOR_PLUGIN_ERROR, 0,
+ "could not load required resources at %s", ui_file);
+ g_free (ui_file);
+ g_object_unref (object);
+ return NULL;
+ }
+ g_free (ui_file);
+
+ priv->widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "openconnect-vbox"));
+ if (!priv->widget) {
+ g_set_error (error, NMV_EDITOR_PLUGIN_ERROR, 0, "could not load UI widget");
+ g_object_unref (object);
+ return NULL;
+ }
+ g_object_ref_sink (priv->widget);
+
+ priv->window_group = gtk_window_group_new ();
+
+ if (!init_editor_plugin (OPENCONNECT_EDITOR (object), connection, error)) {
+ g_object_unref (object);
+ return NULL;
+ }
+
+ return object;
+}
+
+static void
+dispose (GObject *object)
+{
+ OpenconnectEditor *plugin = OPENCONNECT_EDITOR (object);
+ OpenconnectEditorPrivate *priv = OPENCONNECT_EDITOR_GET_PRIVATE (plugin);
+
+ if (priv->group)
+ g_object_unref (priv->group);
+
+ if (priv->window_group)
+ g_object_unref (priv->window_group);
+
+ if (priv->widget)
+ g_object_unref (priv->widget);
+
+ if (priv->builder)
+ g_object_unref (priv->builder);
+
+ G_OBJECT_CLASS (openconnect_editor_parent_class)->dispose (object);
+}
+
+static void
+openconnect_editor_class_init (OpenconnectEditorClass *req_class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (req_class);
+
+ g_type_class_add_private (req_class, sizeof (OpenconnectEditorPrivate));
+
+ object_class->dispose = dispose;
+}
+
+static void
+openconnect_editor_init (OpenconnectEditor *plugin)
+{
+}
+
+static void
+openconnect_editor_interface_init (NMVpnEditorInterface *iface_class)
+{
+ /* interface implementation */
+ iface_class->get_widget = get_widget;
+ iface_class->update_connection = update_connection;
+}
+
diff --git a/properties/nm-openconnect.h b/properties/nm-openconnect-editor.h
similarity index 60%
rename from properties/nm-openconnect.h
rename to properties/nm-openconnect-editor.h
index a392b73..7bca40b 100644
--- a/properties/nm-openconnect.h
+++ b/properties/nm-openconnect-editor.h
@@ -1,7 +1,5 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/***************************************************************************
- * nm-openconnect.h : GNOME UI dialogs for configuring openconnect VPN connections
- *
* Copyright (C) 2008 Dan Williams, <dcbw redhat com>
*
* This program is free software; you can redistribute it and/or modify
@@ -20,29 +18,8 @@
*
**************************************************************************/
-#ifndef _NM_OPENCONNECT_H_
-#define _NM_OPENCONNECT_H_
-
-#define OPENCONNECT_TYPE_EDITOR_PLUGIN (openconnect_editor_plugin_get_type ())
-#define OPENCONNECT_EDITOR_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj),
OPENCONNECT_TYPE_EDITOR_PLUGIN, OpenconnectEditorPlugin))
-#define OPENCONNECT_EDITOR_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass),
OPENCONNECT_TYPE_EDITOR_PLUGIN, OpenconnectEditorPluginClass))
-#define OPENCONNECT_IS_EDITOR_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj),
OPENCONNECT_TYPE_EDITOR_PLUGIN))
-#define OPENCONNECT_IS_EDITOR_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),
OPENCONNECT_TYPE_EDITOR_PLUGIN))
-#define OPENCONNECT_EDITOR_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),
OPENCONNECT_TYPE_EDITOR_PLUGIN, OpenconnectEditorPluginClass))
-
-typedef struct _OpenconnectEditorPlugin OpenconnectEditorPlugin;
-typedef struct _OpenconnectEditorPluginClass OpenconnectEditorPluginClass;
-
-struct _OpenconnectEditorPlugin {
- GObject parent;
-};
-
-struct _OpenconnectEditorPluginClass {
- GObjectClass parent;
-};
-
-GType openconnect_editor_plugin_get_type (void);
-
+#ifndef __NM_OPENCONNECT_EDITOR_H__
+#define __NM_OPENCONNECT_EDITOR_H__
#define OPENCONNECT_TYPE_EDITOR (openconnect_editor_get_type ())
#define OPENCONNECT_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OPENCONNECT_TYPE_EDITOR,
OpenconnectEditor))
@@ -64,5 +41,7 @@ struct _OpenconnectEditorClass {
GType openconnect_editor_get_type (void);
-#endif /* _NM_OPENCONNECT_H_ */
+NMVpnEditor *nm_vpn_editor_interface_new (NMConnection *connection, GError **error);
+
+#endif /* __NM_OPENCONNECT_EDITOR_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]