diff -Nru network-manager-ssh-0.9.4/appdata/network-manager-ssh.appdata.xml.in network-manager-ssh-1.2.0/appdata/network-manager-ssh.appdata.xml.in
--- network-manager-ssh-0.9.4/appdata/network-manager-ssh.appdata.xml.in 1970-01-01 00:00:00.000000000 +0000
+++ network-manager-ssh-1.2.0/appdata/network-manager-ssh.appdata.xml.in 2016-04-23 14:06:26.000000000 +0000
@@ -0,0 +1,42 @@
+
+
+
+ network-manager-ssh
+ GPL-2.0+
+ CC0-1.0
+ nm-connection-editor.desktop
+ gnome-control-center.desktop
+ <_name>SSH VPN Tunnel
+ <_summary>SSH VPN integration for NetworkManager
+
+
+ network
+ manager
+ NetworkManager
+ connection
+ VPN
+ SSH
+
+
+
+ <_p>Support for tunnelling IP traffic via SSH connections.
+ <_p>This is useful to establish a VPN using tunnel capabilities of OpenSSH.
+
+
+
+
+ https://raw.githubusercontent.com/danfruehauf/NetworkManager-ssh/master/appdata/ssh.png
+
+
+
+ <_caption>The advanced options dialog
+ https://raw.githubusercontent.com/danfruehauf/NetworkManager-ssh/master/appdata/ssh-advanced.png
+
+
+
+ https://github.com/danfruehauf/NetworkManager-ssh
+ https://github.com/danfruehauf/NetworkManager-ssh/issues
+ malkodan@gmail.com
+ NetworkManager-ssh
+ <_developer_name>Dan Fruehauf
+
Binary files /tmp/tmpeB1RKS/u8HTgHL1M2/network-manager-ssh-0.9.4/appdata/ssh-advanced.png and /tmp/tmpeB1RKS/o8SMWaAFlj/network-manager-ssh-1.2.0/appdata/ssh-advanced.png differ
Binary files /tmp/tmpeB1RKS/u8HTgHL1M2/network-manager-ssh-0.9.4/appdata/ssh.png and /tmp/tmpeB1RKS/o8SMWaAFlj/network-manager-ssh-1.2.0/appdata/ssh.png differ
diff -Nru network-manager-ssh-0.9.4/auth-dialog/main.c network-manager-ssh-1.2.0/auth-dialog/main.c
--- network-manager-ssh-0.9.4/auth-dialog/main.c 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/auth-dialog/main.c 2016-04-23 14:06:26.000000000 +0000
@@ -32,11 +32,11 @@
#include
-#include
-#include
-#include
+#include
+#include
+#include
-#include "src/nm-ssh-service.h"
+#include "src/nm-ssh-service-defines.h"
#define KEYRING_UUID_TAG "connection-uuid"
#define KEYRING_SN_TAG "setting-name"
@@ -273,7 +273,7 @@
return 1;
}
- if (!nm_vpn_plugin_utils_read_vpn_details (0, &data, &secrets)) {
+ if (!nm_vpn_service_plugin_read_vpn_details (0, &data, &secrets)) {
fprintf (stderr, "Failed to read '%s' (%s) data and secrets from stdin.\n",
vpn_name, vpn_uuid);
return 1;
@@ -290,7 +290,7 @@
/* Depending on auth type see if we need a password */
if (strncmp (auth_type, NM_SSH_AUTH_TYPE_PASSWORD, strlen(NM_SSH_AUTH_TYPE_PASSWORD)) == 0) {
/* FIXME one day... */
- nm_vpn_plugin_utils_get_secret_flags (secrets, NM_SSH_KEY_PASSWORD, &pw_flags);
+ nm_vpn_service_plugin_get_secret_flags (secrets, NM_SSH_KEY_PASSWORD, &pw_flags);
password_key = NM_SSH_KEY_PASSWORD;
if (!get_secrets (vpn_uuid, vpn_name, retry, allow_interaction, external_ui_mode,
g_hash_table_lookup (secrets, NM_SSH_KEY_PASSWORD),
diff -Nru network-manager-ssh-0.9.4/auth-dialog/Makefile.am network-manager-ssh-1.2.0/auth-dialog/Makefile.am
--- network-manager-ssh-0.9.4/auth-dialog/Makefile.am 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/auth-dialog/Makefile.am 2016-04-23 14:06:26.000000000 +0000
@@ -2,26 +2,22 @@
nm_ssh_auth_dialog_CPPFLAGS = \
$(GTK_CFLAGS) \
- $(NM_CFLAGS) \
$(LIBSECRET_CFLAGS) \
- $(NMGTK_CFLAGS) \
+ $(LIBNM_CFLAGS) \
+ $(LIBNMA_CFLAGS) \
-I$(top_srcdir)/
-DICONDIR=\""$(datadir)/pixmaps"\" \
-DUIDIR=\""$(uidir)"\" \
-DBINDIR=\""$(bindir)"\" \
- -DG_DISABLE_DEPRECATED \
- -DGDK_DISABLE_DEPRECATED \
- -DGNOME_DISABLE_DEPRECATED \
- -DGNOMELOCALEDIR=\"$(datadir)/locale\" \
- -DVERSION=\"$(VERSION)\"
+ -DGNOMELOCALEDIR=\"$(datadir)/locale\"
nm_ssh_auth_dialog_SOURCES = \
main.c
nm_ssh_auth_dialog_LDADD = \
$(GTK_LIBS) \
- $(NM_LIBS) \
$(LIBSECRET_LIBS) \
- $(NMGTK_LIBS)
+ $(LIBNM_LIBS) \
+ $(LIBNMA_LIBS)
CLEANFILES = *~
diff -Nru network-manager-ssh-0.9.4/configure.ac network-manager-ssh-1.2.0/configure.ac
--- network-manager-ssh-0.9.4/configure.ac 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/configure.ac 2016-04-23 14:06:26.000000000 +0000
@@ -1,7 +1,7 @@
AC_PREREQ(2.52)
-AC_INIT(NetworkManager-ssh, 0.9.4, malkodan@gmail.com, NetworkManager-ssh)
-AM_INIT_AUTOMAKE([1.9 subdir-objects tar-ustar no-dist-gzip dist-bzip2])
+AC_INIT(NetworkManager-ssh, 1.2.0, malkodan@gmail.com, NetworkManager-ssh)
+AM_INIT_AUTOMAKE([1.9 subdir-objects tar-ustar no-dist-gzip dist-xz])
AM_MAINTAINER_MODE
AC_CONFIG_MACRO_DIR([m4])
@@ -49,6 +49,9 @@
dnl
AC_ARG_WITH(gnome, AS_HELP_STRING([--without-gnome], [Build NetworkManager-ssh without GNOME support, e.g. vpn service only]))
AM_CONDITIONAL(WITH_GNOME, test x"$with_gnome" != xno)
+AC_ARG_WITH(libnm-glib, AS_HELP_STRING([--without-libnm-glib], [Build NetworkManager-ssh without libnm-glib comatibility]))
+AM_CONDITIONAL(WITH_LIBNM_GLIB, test x"$with_libnm_glib" != xno)
+AC_ARG_ENABLE(absolute-paths, AS_HELP_STRING([--enable-absolute-paths], [Use absolute paths to in .name files. Useful for development. (default is no)]))
GETTEXT_PACKAGE=NetworkManager-ssh
AC_SUBST(GETTEXT_PACKAGE)
@@ -61,24 +64,37 @@
AC_SUBST(GIO_CFLAGS)
AC_SUBST(GIO_LIBS)
-PKG_CHECK_MODULES(NM,
- NetworkManager >= 0.9.10
- libnm-util >= 0.9.10
- libnm-glib >= 0.9.10
- libnm-glib-vpn >= 0.9.10)
-NM_CFLAGS="$NM_CFLAGS -DNM_VERSION_MIN_REQUIRED=NM_VERSION_0_9_10"
-NM_CFLAGS="$NM_CFLAGS -DNM_VERSION_MAX_ALLOWED=NM_VERSION_1_1_0"
-
if test x"$with_gnome" != xno; then
PKG_CHECK_MODULES(GTK, gtk+-3.0 >= 3.4)
GTK_CFLAGS="$GTK_CFLAGS -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_4"
- PKG_CHECK_MODULES(NMGTK, libnm-gtk >= 0.9.10)
+ PKG_CHECK_MODULES(LIBNMA, libnma >= 1.1.0)
PKG_CHECK_MODULES(LIBSECRET, libsecret-1)
+
+ if test x"$with_libnm_glib" != xno; then
+ PKG_CHECK_MODULES(LIBNM_GTK, libnm-gtk >= 1.1.0)
+ PKG_CHECK_MODULES(LIBNM_GLIB,
+ NetworkManager >= 1.1.0
+ libnm-util >= 1.1.0
+ libnm-glib >= 1.1.0
+ libnm-glib-vpn >= 1.1.0)
+ LIBNM_GLIB_CFLAGS="$LIBNM_GLIB_CFLAGS -DNM_VERSION_MIN_REQUIRED=NM_VERSION_1_2"
+ LIBNM_GLIB_CFLAGS="$LIBNM_GLIB_CFLAGS -DNM_VERSION_MAX_ALLOWED=NM_VERSION_1_2"
+ fi
fi
+PKG_CHECK_MODULES(LIBNM, libnm >= 1.1.0)
+LIBNM_CFLAGS="$LIBNM_CFLAGS -DNM_VERSION_MIN_REQUIRED=NM_VERSION_1_2"
+LIBNM_CFLAGS="$LIBNM_CFLAGS -DNM_VERSION_MAX_ALLOWED=NM_VERSION_1_2"
+
+NM_VPN_SERVICE_DIR=`$PKG_CONFIG pkg-config --define-variable prefix='\${prefix}' --variable vpnservicedir libnm`
+AC_SUBST(NM_VPN_SERVICE_DIR)
+
NM_COMPILER_WARNINGS
+test x"$enable_absolute_paths" = x"yes" && NM_PLUGIN_DIR='$(libdir)/NetworkManager/'
+AC_SUBST(NM_PLUGIN_DIR)
+
dnl
dnl Constants
dnl ifconfig should usually be at /sbin/ifconfig
diff -Nru network-manager-ssh-0.9.4/debian/changelog network-manager-ssh-1.2.0/debian/changelog
--- network-manager-ssh-0.9.4/debian/changelog 2015-12-08 12:35:37.000000000 +0000
+++ network-manager-ssh-1.2.0/debian/changelog 2016-05-27 10:38:22.000000000 +0000
@@ -1,3 +1,9 @@
+network-manager-ssh (1.2.0-0ubuntu0.16.04.1) xenial; urgency=medium
+
+ * SRU to 1.2.0 release to match nm update (LP: #1576726)
+
+ -- Aron Xu Fri, 27 May 2016 18:37:39 +0800
+
network-manager-ssh (0.9.4-1) unstable; urgency=low
* Initial release. (Closes: #725396)
diff -Nru network-manager-ssh-0.9.4/debian/control network-manager-ssh-1.2.0/debian/control
--- network-manager-ssh-0.9.4/debian/control 2015-12-08 12:35:37.000000000 +0000
+++ network-manager-ssh-1.2.0/debian/control 2016-06-07 09:32:06.000000000 +0000
@@ -1,7 +1,8 @@
Source: network-manager-ssh
Section: net
Priority: optional
-Maintainer: Lennart Weller
+Maintainer: Ubuntu Developers
+XSBC-Original-Maintainer: Lennart Weller
Build-Depends: debhelper (>= 9),
dh-autoreconf,
dpkg-dev (>= 1.16.1~),
@@ -10,12 +11,13 @@
libglib2.0-dev,
libgnome-keyring-dev,
libgtk-3-dev,
- libnm-glib-dev (>= 0.9.4),
- libnm-glib-vpn-dev (>= 0.9.4),
+ libnm-glib-dev (>= 1.1.0),
+ libnm-glib-vpn-dev (>= 1.1.0),
libnm-gtk-dev,
- libnm-util-dev (>= 0.9.4),
+ libnm-util-dev (>= 1.1.0),
+ libnma-dev (>= 1.1.0),
libsecret-1-dev,
- network-manager-dev (>= 0.9.4)
+ network-manager-dev (>= 1.1.0)
Standards-Version: 3.9.6
Vcs-Git: https://git.ring0.de/lhw/network-manager-ssh.git
Vcs-Browser: https://git.ring0.de/lhw/network-manager-ssh
diff -Nru network-manager-ssh-0.9.4/.gitignore network-manager-ssh-1.2.0/.gitignore
--- network-manager-ssh-0.9.4/.gitignore 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/.gitignore 2016-04-23 14:06:26.000000000 +0000
@@ -21,13 +21,17 @@
Makefile.in
aclocal.m4
+po/NetworkManager-ssh.pot
compile
config.*
configure
depcomp
install-sh
libtool
+network-manager-ssh.appdata.xml
ltmain.sh
missing
nm-ssh-service.name
stamp-h1
+
+/NetworkManager-ssh-*.tar*
diff -Nru network-manager-ssh-0.9.4/Makefile.am network-manager-ssh-1.2.0/Makefile.am
--- network-manager-ssh-0.9.4/Makefile.am 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/Makefile.am 2016-04-23 14:06:26.000000000 +0000
@@ -9,9 +9,24 @@
dbusservicedir = $(sysconfdir)/dbus-1/system.d
dbusservice_DATA = nm-ssh-service.conf
-nmvpnservicedir = $(sysconfdir)/NetworkManager/VPN
+nmvpnservicedir = $(NM_VPN_SERVICE_DIR)
nmvpnservice_DATA = nm-ssh-service.name
+if WITH_LIBNM_GLIB
+# Install a file with full path to plugins for an old gnome-shell
+# https://bugzilla.gnome.org/show_bug.cgi?id=693590
+install-data-hook:
+ mkdir -p $(DESTDIR)$(sysconfdir)/NetworkManager/VPN
+ sed -e "1s|^|# This file is obsoleted by a file in $(NM_VPN_SERVICE_DIR)\n\n|" \
+ -e 's|[@]LIBEXECDIR[@]|$(libexecdir)|g' \
+ -e 's|[@]PLUGINDIR[@]|$(libdir)/NetworkManager|g' \
+ <$(srcdir)/nm-ssh-service.name.in \
+ >$(DESTDIR)$(sysconfdir)/NetworkManager/VPN/nm-ssh-service.name
+
+uninstall-hook:
+ rm -f $(DESTDIR)$(sysconfdir)/NetworkManager/VPN/nm-ssh-service.name
+endif
+
desktopfile = nm-ssh.desktop.in
iconfile = gnome-mime-application-x-ssh-settings.png
@@ -26,8 +41,15 @@
#icon_DATA = $(iconfile)
endif
+appdatadir = $(datadir)/appdata
+appdata_DATA = $(appdata_in_files:.xml.in=.xml)
+appdata_in_files = appdata/network-manager-ssh.appdata.xml.in
+@INTLTOOL_XML_RULE@
+
nm-ssh-service.name: $(srcdir)/nm-ssh-service.name.in
- sed -e 's|[@]LIBEXECDIR[@]|$(libexecdir)|g' $< >$@
+ sed -e 's|[@]LIBEXECDIR[@]|$(libexecdir)|g' \
+ -e 's|[@]PLUGINDIR[@]/|@NM_PLUGIN_DIR@|g' \
+ $< >$@
DISTCHECK_CONFIGURE_FLAGS = --with-tests=yes
@@ -35,11 +57,16 @@
$(dbusservice_DATA) \
$(desktopfile) \
$(iconfile) \
+ $(appdata_in_files) \
+ $(appdata_DATA) \
intltool-extract.in \
intltool-merge.in \
intltool-update.in
-CLEANFILES = $(nmvpnservice_DATA) $(desktop_DATA) *~
+CLEANFILES = $(nmvpnservice_DATA) \
+ $(desktop_DATA) \
+ $(appdata_DATA)
+
DISTCLEANFILES = intltool-extract intltool-merge intltool-update
ACLOCAL_AMFLAGS = -I m4
diff -Nru network-manager-ssh-0.9.4/NetworkManager-ssh.spec network-manager-ssh-1.2.0/NetworkManager-ssh.spec
--- network-manager-ssh-0.9.4/NetworkManager-ssh.spec 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/NetworkManager-ssh.spec 2016-04-23 14:06:26.000000000 +0000
@@ -13,7 +13,6 @@
BuildRequires: autoconf
BuildRequires: gtk3-devel
-BuildRequires: dbus-devel
BuildRequires: NetworkManager-devel
BuildRequires: NetworkManager-glib-devel
BuildRequires: glib2-devel
diff -Nru network-manager-ssh-0.9.4/nm-ssh-service.name.in network-manager-ssh-1.2.0/nm-ssh-service.name.in
--- network-manager-ssh-0.9.4/nm-ssh-service.name.in 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/nm-ssh-service.name.in 2016-04-23 14:06:26.000000000 +0000
@@ -3,7 +3,10 @@
service=org.freedesktop.NetworkManager.ssh
program=@LIBEXECDIR@/nm-ssh-service
+[libnm]
+plugin=@PLUGINDIR@/libnm-vpn-plugin-ssh.so
+
[GNOME]
auth-dialog=@LIBEXECDIR@/nm-ssh-auth-dialog
-properties=libnm-ssh-properties
+properties=@PLUGINDIR@/libnm-ssh-properties
diff -Nru network-manager-ssh-0.9.4/po/POTFILES.in network-manager-ssh-1.2.0/po/POTFILES.in
--- network-manager-ssh-0.9.4/po/POTFILES.in 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/po/POTFILES.in 2016-04-23 14:06:26.000000000 +0000
@@ -1,5 +1,6 @@
# List of source files containing translatable strings.
# Please keep this file sorted alphabetically.
+appdata/network-manager-ssh.appdata.xml.in
nm-ssh.desktop.in
auth-dialog/main.c
properties/advanced-dialog.c
diff -Nru network-manager-ssh-0.9.4/properties/advanced-dialog.c network-manager-ssh-1.2.0/properties/advanced-dialog.c
--- network-manager-ssh-0.9.4/properties/advanced-dialog.c 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/properties/advanced-dialog.c 2016-04-23 14:06:26.000000000 +0000
@@ -33,12 +33,20 @@
#include
#include
+
+#ifdef NM_SSH_OLD
+#define NM_VPN_LIBNM_COMPAT
#include
#include
+#else /* !NM_SSH_OLD */
+
+#include
+#endif
+
#include "advanced-dialog.h"
#include "nm-ssh.h"
-#include "src/nm-ssh-service.h"
+#include "src/nm-ssh-service-defines.h"
static const char *advanced_keys[] = {
NM_SSH_KEY_PORT,
@@ -70,11 +78,11 @@
GError **error)
{
GHashTable *hash;
- NMSettingVPN *s_vpn;
+ NMSettingVpn *s_vpn;
hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
- s_vpn = (NMSettingVPN *) nm_connection_get_setting (connection, NM_TYPE_SETTING_VPN);
+ s_vpn = (NMSettingVpn *) nm_connection_get_setting (connection, NM_TYPE_SETTING_VPN);
nm_setting_vpn_foreach_data_item (s_vpn, copy_values, hash);
return hash;
diff -Nru network-manager-ssh-0.9.4/properties/Makefile.am network-manager-ssh-1.2.0/properties/Makefile.am
--- network-manager-ssh-0.9.4/properties/Makefile.am 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/properties/Makefile.am 2016-04-23 14:06:26.000000000 +0000
@@ -1,38 +1,54 @@
SUBDIRS = .
plugindir = $(libdir)/NetworkManager
-plugin_LTLIBRARIES = libnm-ssh-properties.la
+plugin_LTLIBRARIES = libnm-vpn-plugin-ssh.la
+if WITH_LIBNM_GLIB
+plugin_LTLIBRARIES += libnm-ssh-properties.la
+endif
-libnm_ssh_properties_la_SOURCES = \
+libnm_vpn_plugin_ssh_la_SOURCES = \
nm-ssh.c \
nm-ssh.h \
advanced-dialog.c \
advanced-dialog.h
+libnm_ssh_properties_la_SOURCES = \
+ $(libnm_vpn_plugin_ssh_la_SOURCES)
+
uidir = $(datadir)/gnome-vpn-properties/ssh
ui_DATA = nm-ssh-dialog.ui
-libnm_ssh_properties_la_CFLAGS = \
+common_CFLAGS = \
$(GTK_CFLAGS) \
- $(NM_CFLAGS) \
$(GNOMEKEYRING_CFLAGS) \
- $(DISABLE_DEPRECATED) \
-I$(top_srcdir)/ \
-DICONDIR=\""$(datadir)/pixmaps"\" \
-DUIDIR=\""$(uidir)"\" \
- -DG_DISABLE_DEPRECATED \
- -DGDK_DISABLE_DEPRECATED \
- -DGNOME_DISABLE_DEPRECATED \
- -DGNOMELOCALEDIR=\"$(datadir)/locale\" \
- -DVERSION=\"$(VERSION)\"
+ -DGNOMELOCALEDIR=\"$(datadir)/locale\"
+
+libnm_vpn_plugin_ssh_la_CFLAGS = \
+ $(common_CFLAGS) \
+ $(LIBNM_CFLAGS)
+
+libnm_ssh_properties_la_CFLAGS = \
+ -DNM_SSH_OLD \
+ $(common_CFLAGS) \
+ $(LIBNM_GLIB_CFLAGS)
+
+libnm_vpn_plugin_ssh_la_LIBADD = \
+ $(GTK_LIBS) \
+ $(LIBNM_LIBS)
libnm_ssh_properties_la_LIBADD = \
$(GTK_LIBS) \
- $(NM_LIBS)
+ $(LIBNM_GLIB_LIBS)
-libnm_ssh_properties_la_LDFLAGS = \
+libnm_vpn_plugin_ssh_la_LDFLAGS = \
-avoid-version
+libnm_ssh_properties_la_LDFLAGS = \
+ $(libnm_vpn_plugin_ssh_la_LDFLAGS)
+
CLEANFILES = *.bak *~
EXTRA_DIST = \
diff -Nru network-manager-ssh-0.9.4/properties/nm-ssh.c network-manager-ssh-1.2.0/properties/nm-ssh.c
--- network-manager-ssh-0.9.4/properties/nm-ssh.c 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/properties/nm-ssh.c 2016-04-23 14:06:26.000000000 +0000
@@ -37,12 +37,29 @@
#define NM_VPN_API_SUBJECT_TO_CHANGE
+#ifdef NM_SSH_OLD
+#define NM_VPN_LIBNM_COMPAT
#include
#include
#include
#include
-#include "src/nm-ssh-service.h"
+#define SSH_EDITOR_PLUGIN_ERROR NM_SETTING_VPN_ERROR
+#define SSH_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY NM_SETTING_VPN_ERROR_INVALID_PROPERTY
+#define SSH_EDITOR_PLUGIN_ERROR_FAILED NM_SETTING_VPN_ERROR_UNKNOWN
+
+#define nm_simple_connection_new nm_connection_new
+
+#else /* !NM_SSH_OLD */
+
+#include
+
+#define SSH_EDITOR_PLUGIN_ERROR NM_CONNECTION_ERROR
+#define SSH_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY NM_CONNECTION_ERROR_INVALID_PROPERTY
+#define SSH_EDITOR_PLUGIN_ERROR_FAILED NM_CONNECTION_ERROR_FAILED
+#endif
+
+#include "src/nm-ssh-service-defines.h"
#include "nm-ssh.h"
#include "advanced-dialog.h"
@@ -91,21 +108,28 @@
/************** plugin class **************/
-static void ssh_plugin_ui_interface_init (NMVpnPluginUiInterface *iface_class);
-
-G_DEFINE_TYPE_EXTENDED (SshPluginUi, ssh_plugin_ui, G_TYPE_OBJECT, 0,
- G_IMPLEMENT_INTERFACE (NM_TYPE_VPN_PLUGIN_UI_INTERFACE,
- ssh_plugin_ui_interface_init))
+enum {
+ PROP_0,
+ PROP_NAME,
+ PROP_DESC,
+ PROP_SERVICE
+};
+
+static void ssh_editor_plugin_interface_init (NMVpnEditorPluginInterface *iface_class);
+
+G_DEFINE_TYPE_EXTENDED (SshEditorPlugin, ssh_editor_plugin, G_TYPE_OBJECT, 0,
+ G_IMPLEMENT_INTERFACE (NM_TYPE_VPN_EDITOR_PLUGIN,
+ ssh_editor_plugin_interface_init))
/************** UI widget class **************/
-static void ssh_plugin_ui_widget_interface_init (NMVpnPluginUiWidgetInterface *iface_class);
+static void ssh_editor_interface_init (NMVpnEditorInterface *iface_class);
-G_DEFINE_TYPE_EXTENDED (SshPluginUiWidget, ssh_plugin_ui_widget, G_TYPE_OBJECT, 0,
- G_IMPLEMENT_INTERFACE (NM_TYPE_VPN_PLUGIN_UI_WIDGET_INTERFACE,
- ssh_plugin_ui_widget_interface_init))
+G_DEFINE_TYPE_EXTENDED (SshEditor, ssh_editor, G_TYPE_OBJECT, 0,
+ G_IMPLEMENT_INTERFACE (NM_TYPE_VPN_EDITOR,
+ ssh_editor_interface_init))
-#define SSH_PLUGIN_UI_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SSH_TYPE_PLUGIN_UI_WIDGET, SshPluginUiWidgetPrivate))
+#define SSH_EDITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SSH_TYPE_EDITOR, SshEditorPrivate))
typedef struct {
GtkBuilder *builder;
@@ -115,57 +139,17 @@
gboolean window_added;
GHashTable *advanced;
gboolean new_connection;
-} SshPluginUiWidgetPrivate;
+} SshEditorPrivate;
#define COL_AUTH_NAME 0
#define COL_AUTH_PAGE 1
#define COL_AUTH_TYPE 2
-GQuark
-ssh_plugin_ui_error_quark (void)
-{
- static GQuark error_quark = 0;
-
- if (G_UNLIKELY (error_quark == 0))
- error_quark = g_quark_from_static_string ("ssh-plugin-ui-error-quark");
-
- return error_quark;
-}
-
-/* This should really be standard. */
-#define ENUM_ENTRY(NAME, DESC) { NAME, "" #NAME "", DESC }
-
-GType
-ssh_plugin_ui_error_get_type (void)
-{
- static GType etype = 0;
-
- if (etype == 0) {
- static const GEnumValue values[] = {
- /* Unknown error. */
- ENUM_ENTRY (SSH_PLUGIN_UI_ERROR_UNKNOWN, "UnknownError"),
- /* The connection was missing invalid. */
- ENUM_ENTRY (SSH_PLUGIN_UI_ERROR_INVALID_CONNECTION, "InvalidConnection"),
- /* The specified property was invalid. */
- ENUM_ENTRY (SSH_PLUGIN_UI_ERROR_INVALID_PROPERTY, "InvalidProperty"),
- /* The specified property was missing and is required. */
- ENUM_ENTRY (SSH_PLUGIN_UI_ERROR_MISSING_PROPERTY, "MissingProperty"),
- /* The file to import could not be read. */
- ENUM_ENTRY (SSH_PLUGIN_UI_ERROR_FILE_NOT_READABLE, "FileNotReadable"),
- /* The file to import could was not an SSH client file. */
- ENUM_ENTRY (SSH_PLUGIN_UI_ERROR_FILE_NOT_SSH, "FileNotSSH"),
- { 0, 0, 0 }
- };
- etype = g_enum_register_static ("SshPluginUiError", values);
- }
- return etype;
-}
-
static gboolean
-check_validity (SshPluginUiWidget *self, GError **error)
+check_validity (SshEditor *self, GError **error)
{
- SshPluginUiWidgetPrivate *priv = SSH_PLUGIN_UI_WIDGET_GET_PRIVATE (self);
+ SshEditorPrivate *priv = SSH_EDITOR_GET_PRIVATE (self);
GtkWidget *widget;
const char *str;
@@ -173,8 +157,8 @@
str = gtk_entry_get_text (GTK_ENTRY (widget));
if (!str || !strlen (str)) {
g_set_error (error,
- SSH_PLUGIN_UI_ERROR,
- SSH_PLUGIN_UI_ERROR_INVALID_PROPERTY,
+ SSH_EDITOR_PLUGIN_ERROR,
+ SSH_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY,
NM_SSH_KEY_REMOTE);
return FALSE;
}
@@ -183,8 +167,8 @@
str = gtk_entry_get_text (GTK_ENTRY (widget));
if (!str || !strlen (str)) {
g_set_error (error,
- SSH_PLUGIN_UI_ERROR,
- SSH_PLUGIN_UI_ERROR_INVALID_PROPERTY,
+ SSH_EDITOR_PLUGIN_ERROR,
+ SSH_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY,
NM_SSH_KEY_REMOTE_IP);
return FALSE;
}
@@ -193,8 +177,8 @@
str = gtk_entry_get_text (GTK_ENTRY (widget));
if (!str || !strlen (str)) {
g_set_error (error,
- SSH_PLUGIN_UI_ERROR,
- SSH_PLUGIN_UI_ERROR_INVALID_PROPERTY,
+ SSH_EDITOR_PLUGIN_ERROR,
+ SSH_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY,
NM_SSH_KEY_LOCAL_IP);
return FALSE;
}
@@ -203,8 +187,8 @@
str = gtk_entry_get_text (GTK_ENTRY (widget));
if (!str || !strlen (str)) {
g_set_error (error,
- SSH_PLUGIN_UI_ERROR,
- SSH_PLUGIN_UI_ERROR_INVALID_PROPERTY,
+ SSH_EDITOR_PLUGIN_ERROR,
+ SSH_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY,
NM_SSH_KEY_NETMASK);
return FALSE;
}
@@ -221,14 +205,14 @@
static void
stuff_changed_cb (GtkWidget *widget, gpointer user_data)
{
- g_signal_emit_by_name (SSH_PLUGIN_UI_WIDGET (user_data), "changed");
+ g_signal_emit_by_name (SSH_EDITOR (user_data), "changed");
}
static void
auth_combo_changed_cb (GtkWidget *combo, gpointer user_data)
{
- SshPluginUiWidget *self = SSH_PLUGIN_UI_WIDGET (user_data);
- SshPluginUiWidgetPrivate *priv = SSH_PLUGIN_UI_WIDGET_GET_PRIVATE (self);
+ SshEditor *self = SSH_EDITOR (user_data);
+ SshEditorPrivate *priv = SSH_EDITOR_GET_PRIVATE (self);
GtkWidget *auth_notebook;
GtkWidget *show_password;
GtkWidget *file_chooser;
@@ -271,8 +255,8 @@
static void
advanced_dialog_response_cb (GtkWidget *dialog, gint response, gpointer user_data)
{
- SshPluginUiWidget *self = SSH_PLUGIN_UI_WIDGET (user_data);
- SshPluginUiWidgetPrivate *priv = SSH_PLUGIN_UI_WIDGET_GET_PRIVATE (self);
+ SshEditor *self = SSH_EDITOR (user_data);
+ SshEditorPrivate *priv = SSH_EDITOR_GET_PRIVATE (self);
GError *error = NULL;
if (response != GTK_RESPONSE_OK) {
@@ -295,8 +279,8 @@
static void
advanced_button_clicked_cb (GtkWidget *button, gpointer user_data)
{
- SshPluginUiWidget *self = SSH_PLUGIN_UI_WIDGET (user_data);
- SshPluginUiWidgetPrivate *priv = SSH_PLUGIN_UI_WIDGET_GET_PRIVATE (self);
+ SshEditor *self = SSH_EDITOR (user_data);
+ SshEditorPrivate *priv = SSH_EDITOR_GET_PRIVATE (self);
GtkWidget *dialog, *toplevel;
toplevel = gtk_widget_get_toplevel (priv->widget);
@@ -340,7 +324,7 @@
void
init_auth_widget (GtkBuilder *builder,
GtkSizeGroup *group,
- NMSettingVPN *s_vpn,
+ NMSettingVpn *s_vpn,
const char *contype,
const char *prefix,
ChangedCallback changed_cb,
@@ -400,8 +384,8 @@
static void
pw_type_combo_changed_cb (GtkWidget *combo, gpointer user_data)
{
- SshPluginUiWidget *self = SSH_PLUGIN_UI_WIDGET (user_data);
- SshPluginUiWidgetPrivate *priv = SSH_PLUGIN_UI_WIDGET_GET_PRIVATE (self);
+ SshEditor *self = SSH_EDITOR (user_data);
+ SshEditorPrivate *priv = SSH_EDITOR_GET_PRIVATE (self);
GtkWidget *entry;
entry = GTK_WIDGET (gtk_builder_get_object (priv->builder, "auth_password_entry"));
@@ -425,13 +409,13 @@
static void
init_one_pw_combo (
- SshPluginUiWidget *self,
- NMSettingVPN *s_vpn,
+ SshEditor *self,
+ NMSettingVpn *s_vpn,
const char *combo_name,
const char *secret_key,
const char *entry_name)
{
- SshPluginUiWidgetPrivate *priv = SSH_PLUGIN_UI_WIDGET_GET_PRIVATE (self);
+ SshEditorPrivate *priv = SSH_EDITOR_GET_PRIVATE (self);
int active = -1;
GtkWidget *widget;
GtkListStore *store;
@@ -477,10 +461,10 @@
/* FIXME break into smaller functions */
static gboolean
-init_plugin_ui (SshPluginUiWidget *self, NMConnection *connection, GError **error)
+init_editor_plugin (SshEditor *self, NMConnection *connection, GError **error)
{
- SshPluginUiWidgetPrivate *priv = SSH_PLUGIN_UI_WIDGET_GET_PRIVATE (self);
- NMSettingVPN *s_vpn;
+ SshEditorPrivate *priv = SSH_EDITOR_GET_PRIVATE (self);
+ NMSettingVpn *s_vpn;
GtkWidget *widget;
GtkListStore *store;
GtkTreeIter iter;
@@ -669,10 +653,10 @@
}
static GObject *
-get_widget (NMVpnPluginUiWidgetInterface *iface)
+get_widget (NMVpnEditor *iface)
{
- SshPluginUiWidget *self = SSH_PLUGIN_UI_WIDGET (iface);
- SshPluginUiWidgetPrivate *priv = SSH_PLUGIN_UI_WIDGET_GET_PRIVATE (self);
+ SshEditor *self = SSH_EDITOR (iface);
+ SshEditorPrivate *priv = SSH_EDITOR_GET_PRIVATE (self);
return G_OBJECT (priv->widget);
}
@@ -680,7 +664,7 @@
static void
hash_copy_advanced (gpointer key, gpointer data, gpointer user_data)
{
- NMSettingVPN *s_vpn = NM_SETTING_VPN (user_data);
+ NMSettingVpn *s_vpn = NM_SETTING_VPN (user_data);
const char *value = (const char *) data;
g_return_if_fail (value && strlen (value));
@@ -690,7 +674,7 @@
static gboolean auth_widget_update_connection (
GtkBuilder *builder,
- NMSettingVPN *s_vpn)
+ NMSettingVpn *s_vpn)
{
/* This function populates s_vpn with the auth properties */
GtkWidget *widget;
@@ -761,13 +745,13 @@
}
static gboolean
-update_connection (NMVpnPluginUiWidgetInterface *iface,
+update_connection (NMVpnEditor *iface,
NMConnection *connection,
GError **error)
{
- SshPluginUiWidget *self = SSH_PLUGIN_UI_WIDGET (iface);
- SshPluginUiWidgetPrivate *priv = SSH_PLUGIN_UI_WIDGET_GET_PRIVATE (self);
- NMSettingVPN *s_vpn;
+ SshEditor *self = SSH_EDITOR (iface);
+ SshEditorPrivate *priv = SSH_EDITOR_GET_PRIVATE (self);
+ NMSettingVpn *s_vpn;
GtkWidget *widget;
const char *str;
gboolean valid = FALSE;
@@ -847,25 +831,25 @@
*is_new = FALSE;
}
-static NMVpnPluginUiWidgetInterface *
-nm_vpn_plugin_ui_widget_interface_new (NMConnection *connection, GError **error)
+static NMVpnEditor *
+nm_vpn_editor_interface_new (NMConnection *connection, GError **error)
{
- NMVpnPluginUiWidgetInterface *object;
- SshPluginUiWidgetPrivate *priv;
+ NMVpnEditor *object;
+ SshEditorPrivate *priv;
char *ui_file;
gboolean new = TRUE;
- NMSettingVPN *s_vpn;
+ NMSettingVpn *s_vpn;
if (error)
g_return_val_if_fail (*error == NULL, NULL);
- object = NM_VPN_PLUGIN_UI_WIDGET_INTERFACE (g_object_new (SSH_TYPE_PLUGIN_UI_WIDGET, NULL));
+ object = g_object_new (SSH_TYPE_EDITOR, NULL);
if (!object) {
- g_set_error (error, SSH_PLUGIN_UI_ERROR, 0, "could not create ssh object");
+ g_set_error (error, SSH_EDITOR_PLUGIN_ERROR, 0, "could not create ssh object");
return NULL;
}
- priv = SSH_PLUGIN_UI_WIDGET_GET_PRIVATE (object);
+ priv = SSH_EDITOR_GET_PRIVATE (object);
ui_file = g_strdup_printf ("%s/%s", UIDIR, "nm-ssh-dialog.ui");
priv->builder = gtk_builder_new ();
@@ -876,7 +860,7 @@
g_warning ("Couldn't load builder file: %s",
error && *error ? (*error)->message : "(unknown)");
g_clear_error (error);
- g_set_error (error, SSH_PLUGIN_UI_ERROR, 0,
+ g_set_error (error, SSH_EDITOR_PLUGIN_ERROR, 0,
"could not load required resources from %s", ui_file);
g_free (ui_file);
g_object_unref (object);
@@ -887,7 +871,7 @@
priv->widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "ssh_main_vbox"));
if (!priv->widget) {
- g_set_error (error, SSH_PLUGIN_UI_ERROR, 0, "could not load UI widget");
+ g_set_error (error, SSH_EDITOR_PLUGIN_ERROR, 0, "could not load UI widget");
g_object_unref (object);
return NULL;
}
@@ -900,7 +884,7 @@
nm_setting_vpn_foreach_data_item (s_vpn, is_new_func, &new);
priv->new_connection = new;
- if (!init_plugin_ui (SSH_PLUGIN_UI_WIDGET (object), connection, error)) {
+ if (!init_editor_plugin (SSH_EDITOR (object), connection, error)) {
g_object_unref (object);
return NULL;
}
@@ -917,8 +901,8 @@
static void
dispose (GObject *object)
{
- SshPluginUiWidget *plugin = SSH_PLUGIN_UI_WIDGET (object);
- SshPluginUiWidgetPrivate *priv = SSH_PLUGIN_UI_WIDGET_GET_PRIVATE (plugin);
+ SshEditor *plugin = SSH_EDITOR (object);
+ SshEditorPrivate *priv = SSH_EDITOR_GET_PRIVATE (plugin);
if (priv->group)
g_object_unref (priv->group);
@@ -935,26 +919,26 @@
if (priv->advanced)
g_hash_table_destroy (priv->advanced);
- G_OBJECT_CLASS (ssh_plugin_ui_widget_parent_class)->dispose (object);
+ G_OBJECT_CLASS (ssh_editor_parent_class)->dispose (object);
}
static void
-ssh_plugin_ui_widget_class_init (SshPluginUiWidgetClass *req_class)
+ssh_editor_class_init (SshEditorClass *req_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (req_class);
- g_type_class_add_private (req_class, sizeof (SshPluginUiWidgetPrivate));
+ g_type_class_add_private (req_class, sizeof (SshEditorPrivate));
object_class->dispose = dispose;
}
static void
-ssh_plugin_ui_widget_init (SshPluginUiWidget *plugin)
+ssh_editor_init (SshEditor *plugin)
{
}
static void
-ssh_plugin_ui_widget_interface_init (NMVpnPluginUiWidgetInterface *iface_class)
+ssh_editor_interface_init (NMVpnEditorInterface *iface_class)
{
/* interface implementation */
iface_class->get_widget = get_widget;
@@ -962,11 +946,11 @@
}
static NMConnection *
-import (NMVpnPluginUiInterface *iface, const char *path, GError **error)
+import (NMVpnEditorPlugin *iface, const char *path, GError **error)
{
NMConnection *connection = NULL;
NMSettingConnection *s_con;
- NMSettingVPN *s_vpn;
+ NMSettingVpn *s_vpn;
char *contents = NULL;
char **lines = NULL;
char *ext;
@@ -975,16 +959,16 @@
ext = strrchr (path, '.');
if (!ext) {
g_set_error (error,
- SSH_PLUGIN_UI_ERROR,
- SSH_PLUGIN_UI_ERROR_FILE_NOT_SSH,
+ SSH_EDITOR_PLUGIN_ERROR,
+ SSH_EDITOR_PLUGIN_ERROR_FAILED,
"unknown OpenVPN file extension, should be .sh");
goto out;
}
if (strncmp (ext, ".sh", strlen(".sh"))) {
g_set_error (error,
- SSH_PLUGIN_UI_ERROR,
- SSH_PLUGIN_UI_ERROR_FILE_NOT_SSH,
+ SSH_EDITOR_PLUGIN_ERROR,
+ SSH_EDITOR_PLUGIN_ERROR_FAILED,
"unknown SSH file extension, should be .sh");
goto out;
}
@@ -1011,13 +995,13 @@
lines = g_strsplit_set (contents, "\r\n", 0);
if (g_strv_length (lines) <= 1) {
g_set_error (error,
- SSH_PLUGIN_UI_ERROR,
- SSH_PLUGIN_UI_ERROR_FILE_NOT_READABLE,
+ SSH_EDITOR_PLUGIN_ERROR,
+ SSH_EDITOR_PLUGIN_ERROR_FAILED,
"not a valid OpenVPN configuration file");
goto out;
}
- connection = nm_connection_new ();
+ connection = nm_simple_connection_new ();
s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ());
nm_connection_add_setting (connection, NM_SETTING (s_con));
@@ -1102,13 +1086,13 @@
}
static gboolean
-export (NMVpnPluginUiInterface *iface,
+export (NMVpnEditorPlugin *iface,
const char *path,
NMConnection *connection,
GError **error)
{
NMSettingConnection *s_con;
- NMSettingVPN *s_vpn;
+ NMSettingVpn *s_vpn;
FILE *f;
const char *value;
const char *auth_type = NULL;
@@ -1138,7 +1122,7 @@
s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
g_assert (s_con);
- s_vpn = (NMSettingVPN *) nm_connection_get_setting (connection, NM_TYPE_SETTING_VPN);
+ s_vpn = (NMSettingVpn *) nm_connection_get_setting (connection, NM_TYPE_SETTING_VPN);
f = fopen (path, "w");
if (!f) {
@@ -1333,7 +1317,7 @@
}
static char *
-get_suggested_name (NMVpnPluginUiInterface *iface, NMConnection *connection)
+get_suggested_filename (NMVpnEditorPlugin *iface, NMConnection *connection)
{
NMSettingConnection *s_con;
const char *id;
@@ -1350,15 +1334,15 @@
}
static guint32
-get_capabilities (NMVpnPluginUiInterface *iface)
+get_capabilities (NMVpnEditorPlugin *iface)
{
- return (NM_VPN_PLUGIN_UI_CAPABILITY_IMPORT | NM_VPN_PLUGIN_UI_CAPABILITY_EXPORT | NM_VPN_PLUGIN_UI_CAPABILITY_IPV6);
+ return (NM_VPN_EDITOR_PLUGIN_CAPABILITY_IMPORT | NM_VPN_EDITOR_PLUGIN_CAPABILITY_EXPORT | NM_VPN_EDITOR_PLUGIN_CAPABILITY_IPV6);
}
-static NMVpnPluginUiWidgetInterface *
-ui_factory (NMVpnPluginUiInterface *iface, NMConnection *connection, GError **error)
+static NMVpnEditor *
+get_editor (NMVpnEditorPlugin *iface, NMConnection *connection, GError **error)
{
- return nm_vpn_plugin_ui_widget_interface_new (connection, error);
+ return nm_vpn_editor_interface_new (connection, error);
}
static void
@@ -1366,13 +1350,13 @@
GValue *value, GParamSpec *pspec)
{
switch (prop_id) {
- case NM_VPN_PLUGIN_UI_INTERFACE_PROP_NAME:
+ case PROP_NAME:
g_value_set_string (value, SSH_PLUGIN_NAME);
break;
- case NM_VPN_PLUGIN_UI_INTERFACE_PROP_DESC:
+ case PROP_DESC:
g_value_set_string (value, SSH_PLUGIN_DESC);
break;
- case NM_VPN_PLUGIN_UI_INTERFACE_PROP_SERVICE:
+ case PROP_SERVICE:
g_value_set_string (value, SSH_PLUGIN_SERVICE);
break;
default:
@@ -1382,47 +1366,47 @@
}
static void
-ssh_plugin_ui_class_init (SshPluginUiClass *req_class)
+ssh_editor_plugin_class_init (SshEditorPluginClass *req_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (req_class);
object_class->get_property = get_property;
g_object_class_override_property (object_class,
- NM_VPN_PLUGIN_UI_INTERFACE_PROP_NAME,
- NM_VPN_PLUGIN_UI_INTERFACE_NAME);
+ PROP_NAME,
+ NM_VPN_EDITOR_PLUGIN_NAME);
g_object_class_override_property (object_class,
- NM_VPN_PLUGIN_UI_INTERFACE_PROP_DESC,
- NM_VPN_PLUGIN_UI_INTERFACE_DESC);
+ PROP_DESC,
+ NM_VPN_EDITOR_PLUGIN_DESCRIPTION);
g_object_class_override_property (object_class,
- NM_VPN_PLUGIN_UI_INTERFACE_PROP_SERVICE,
- NM_VPN_PLUGIN_UI_INTERFACE_SERVICE);
+ PROP_SERVICE,
+ NM_VPN_EDITOR_PLUGIN_SERVICE);
}
static void
-ssh_plugin_ui_init (SshPluginUi *plugin)
+ssh_editor_plugin_init (SshEditorPlugin *plugin)
{
}
static void
-ssh_plugin_ui_interface_init (NMVpnPluginUiInterface *iface_class)
+ssh_editor_plugin_interface_init (NMVpnEditorPluginInterface *iface_class)
{
/* interface implementation */
- iface_class->ui_factory = ui_factory;
+ iface_class->get_editor = get_editor;
iface_class->get_capabilities = get_capabilities;
iface_class->import_from_file = import;
iface_class->export_to_file = export;
- iface_class->get_suggested_name = get_suggested_name;
+ iface_class->get_suggested_filename = get_suggested_filename;
}
-G_MODULE_EXPORT NMVpnPluginUiInterface *
-nm_vpn_plugin_ui_factory (GError **error)
+G_MODULE_EXPORT NMVpnEditorPlugin *
+nm_vpn_editor_plugin_factory (GError **error)
{
if (error)
g_return_val_if_fail (*error == NULL, NULL);
- return NM_VPN_PLUGIN_UI_INTERFACE (g_object_new (SSH_TYPE_PLUGIN_UI, NULL));
+ return g_object_new (SSH_TYPE_EDITOR_PLUGIN, NULL);
}
diff -Nru network-manager-ssh-0.9.4/properties/nm-ssh.h network-manager-ssh-1.2.0/properties/nm-ssh.h
--- network-manager-ssh-0.9.4/properties/nm-ssh.h 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/properties/nm-ssh.h 2016-04-23 14:06:26.000000000 +0000
@@ -26,69 +26,52 @@
#include
-typedef enum
-{
- SSH_PLUGIN_UI_ERROR_UNKNOWN = 0,
- SSH_PLUGIN_UI_ERROR_INVALID_CONNECTION,
- SSH_PLUGIN_UI_ERROR_INVALID_PROPERTY,
- SSH_PLUGIN_UI_ERROR_MISSING_PROPERTY,
- SSH_PLUGIN_UI_ERROR_FILE_NOT_READABLE,
- SSH_PLUGIN_UI_ERROR_FILE_NOT_SSH
-} SshPluginUiError;
-
-#define SSH_TYPE_PLUGIN_UI_ERROR (ssh_plugin_ui_error_get_type ())
-GType ssh_plugin_ui_error_get_type (void);
-
-#define SSH_PLUGIN_UI_ERROR (ssh_plugin_ui_error_quark ())
-GQuark ssh_plugin_ui_error_quark (void);
-
-
-#define SSH_TYPE_PLUGIN_UI (ssh_plugin_ui_get_type ())
-#define SSH_PLUGIN_UI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SSH_TYPE_PLUGIN_UI, SshPluginUi))
-#define SSH_PLUGIN_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SSH_TYPE_PLUGIN_UI, SshPluginUiClass))
-#define SSH_IS_PLUGIN_UI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SSH_TYPE_PLUGIN_UI))
-#define SSH_IS_PLUGIN_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SSH_TYPE_PLUGIN_UI))
-#define SSH_PLUGIN_UI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SSH_TYPE_PLUGIN_UI, SshPluginUiClass))
+#define SSH_TYPE_EDITOR_PLUGIN (ssh_editor_plugin_get_type ())
+#define SSH_EDITOR_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SSH_TYPE_EDITOR_PLUGIN, SshEditorPlugin))
+#define SSH_EDITOR_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SSH_TYPE_EDITOR_PLUGIN, SshEditorPluginClass))
+#define SSH_IS_EDITOR_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SSH_TYPE_EDITOR_PLUGIN))
+#define SSH_IS_EDITOR_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SSH_TYPE_EDITOR_PLUGIN))
+#define SSH_EDITOR_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SSH_TYPE_EDITOR_PLUGIN, SshEditorPluginClass))
-typedef struct _SshPluginUi SshPluginUi;
-typedef struct _SshPluginUiClass SshPluginUiClass;
+typedef struct _SshEditorPlugin SshEditorPlugin;
+typedef struct _SshEditorPluginClass SshEditorPluginClass;
-struct _SshPluginUi {
+struct _SshEditorPlugin {
GObject parent;
};
-struct _SshPluginUiClass {
+struct _SshEditorPluginClass {
GObjectClass parent;
};
-GType ssh_plugin_ui_get_type (void);
+GType ssh_editor_plugin_get_type (void);
-#define SSH_TYPE_PLUGIN_UI_WIDGET (ssh_plugin_ui_widget_get_type ())
-#define SSH_PLUGIN_UI_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SSH_TYPE_PLUGIN_UI_WIDGET, SshPluginUiWidget))
-#define SSH_PLUGIN_UI_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SSH_TYPE_PLUGIN_UI_WIDGET, SshPluginUiWidgetClass))
-#define SSH_IS_PLUGIN_UI_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SSH_TYPE_PLUGIN_UI_WIDGET))
-#define SSH_IS_PLUGIN_UI_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SSH_TYPE_PLUGIN_UI_WIDGET))
-#define SSH_PLUGIN_UI_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SSH_TYPE_PLUGIN_UI_WIDGET, SshPluginUiWidgetClass))
+#define SSH_TYPE_EDITOR (ssh_editor_get_type ())
+#define SSH_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SSH_TYPE_EDITOR, SshEditor))
+#define SSH_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SSH_TYPE_EDITOR, SshEditorClass))
+#define SSH_IS_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SSH_TYPE_EDITOR))
+#define SSH_IS_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SSH_TYPE_EDITOR))
+#define SSH_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SSH_TYPE_EDITOR, SshEditorClass))
-typedef struct _SshPluginUiWidget SshPluginUiWidget;
-typedef struct _SshPluginUiWidgetClass SshPluginUiWidgetClass;
+typedef struct _SshEditor SshEditor;
+typedef struct _SshEditorClass SshEditorClass;
-struct _SshPluginUiWidget {
+struct _SshEditor {
GObject parent;
};
-struct _SshPluginUiWidgetClass {
+struct _SshEditorClass {
GObjectClass parent;
};
-GType ssh_plugin_ui_widget_get_type (void);
+GType ssh_editor_get_type (void);
typedef void (*ChangedCallback) (GtkWidget *widget, gpointer user_data);
void init_auth_widget (GtkBuilder *builder,
GtkSizeGroup *group,
- NMSettingVPN *s_vpn,
+ NMSettingVpn *s_vpn,
const char *contype,
const char *prefix,
ChangedCallback changed_cb,
diff -Nru network-manager-ssh-0.9.4/README.md network-manager-ssh-1.2.0/README.md
--- network-manager-ssh-0.9.4/README.md 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/README.md 2016-04-23 14:06:26.000000000 +0000
@@ -22,9 +22,9 @@
### Fedora/CentOS
-If you're using Fedora 18 or later, you can simply run:
+If you're using Fedora 22 or later, you can simply run:
```
-# yum install NetworkManager-ssh-gnome
+# dnf install NetworkManager-ssh-gnome
```
That will set you up with NetworkManager and the traditional GNOME interface. I am the current maintainer of the package for Fedora.
@@ -38,12 +38,13 @@
### Ubuntu/Debian
-Building a .deb should be straight forward with (Tested on Ubuntu 15.04):
+Building a .deb should be straight forward with:
```
+# apt-get install libnm-glib-dev libnm-glib-vpn-dev libnm-util-dev libnm-dev libnma-dev libgnome-keyring-dev dh-autoreconf libgtk-3-dev sshpass
$ autoreconf -fvi && ./configure && make deb
```
-Enjoy your new .deb.
+Enjoy your new .deb. (It should show up in the directory you `git clone`d from.)
I am still looking for someone to maintain this package for Ubuntu as it seems like there is a demand.
diff -Nru network-manager-ssh-0.9.4/src/Makefile.am network-manager-ssh-1.2.0/src/Makefile.am
--- network-manager-ssh-0.9.4/src/Makefile.am 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/src/Makefile.am 2016-04-23 14:06:26.000000000 +0000
@@ -1,11 +1,9 @@
AM_CPPFLAGS = \
- $(NM_CFLAGS) \
+ $(LIBNM_CFLAGS) \
$(GIO_CFLAGS) \
- -DG_DISABLE_DEPRECATED \
-DBINDIR=\"$(bindir)\" \
-DPREFIX=\""$(prefix)"\" \
-DSYSCONFDIR=\""$(sysconfdir)"\" \
- -DVERSION="\"$(VERSION)\"" \
-DLIBDIR=\""$(libdir)"\" \
-DLIBEXECDIR=\""$(libexecdir)"\" \
-DLOCALSTATEDIR=\""$(localstatedir)"\" \
@@ -17,9 +15,10 @@
nm_ssh_service_SOURCES = \
nm-ssh-service.c \
- nm-ssh-service.h
+ nm-ssh-service.h \
+ nm-ssh-service-defines.h
nm_ssh_service_LDADD = \
- $(NM_LIBS) $(GIO_LIBS)
+ $(LIBNM_LIBS) $(GIO_LIBS)
CLEANFILES = *~
diff -Nru network-manager-ssh-0.9.4/src/nm-ssh-service.c network-manager-ssh-1.2.0/src/nm-ssh-service.c
--- network-manager-ssh-0.9.4/src/nm-ssh-service.c 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/src/nm-ssh-service.c 2016-04-23 14:06:26.000000000 +0000
@@ -28,9 +28,6 @@
#include
#include
-#include
-#include
-#include
#include
#include
#include
@@ -50,8 +47,6 @@
#include
#include
-#include
-#include
#include "nm-ssh-service.h"
#include "nm-utils.h"
@@ -63,7 +58,7 @@
static gboolean debug = FALSE;
static GMainLoop *loop = NULL;
-G_DEFINE_TYPE (NMSshPlugin, nm_ssh_plugin, NM_TYPE_VPN_PLUGIN)
+G_DEFINE_TYPE (NMSshPlugin, nm_ssh_plugin, NM_TYPE_VPN_SERVICE_PLUGIN)
#define NM_SSH_PLUGIN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SSH_PLUGIN, NMSshPluginPrivate))
@@ -239,7 +234,7 @@
}
static gboolean
-nm_ssh_properties_validate (NMSettingVPN *s_vpn, GError **error)
+nm_ssh_properties_validate (NMSettingVpn *s_vpn, GError **error)
{
GError *validate_error = NULL;
ValidateInfo info = { &valid_properties[0], &validate_error, FALSE };
@@ -261,27 +256,12 @@
return TRUE;
}
-static GValue *
-uint_to_gvalue (guint32 num)
-{
- GValue *val;
-
- if (num == 0)
- return NULL;
-
- val = g_slice_new0 (GValue);
- g_value_init (val, G_TYPE_UINT);
- g_value_set_uint (val, num);
-
- return val;
-}
-
-static GValue *
-addr6_to_gvalue (const char *str)
+static GVariant *
+addr6_to_gvariant (const char *str)
{
struct in6_addr temp_addr;
- GValue *val;
- GByteArray *ba;
+ GVariantBuilder builder;
+ int i;
/* Empty */
if (!str || strlen (str) < 1)
@@ -290,30 +270,15 @@
if (inet_pton (AF_INET6, str, &temp_addr) <= 0)
return NULL;
- val = g_slice_new0 (GValue);
- g_value_init (val, DBUS_TYPE_G_UCHAR_ARRAY);
- ba = g_byte_array_new ();
- g_byte_array_append (ba, (guint8 *) &temp_addr, sizeof (temp_addr));
- g_value_take_boxed (val, ba);
- return val;
-}
-
-static GValue *
-bool_to_gvalue (gboolean b)
-{
- GValue *val;
-
- val = g_slice_new0 (GValue);
- g_value_init (val, G_TYPE_BOOLEAN);
- g_value_set_boolean (val, b);
- return val;
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("ay"));
+ for (i = 0; i < sizeof (temp_addr); i++)
+ g_variant_builder_add (&builder, "y", ((guint8 *) &temp_addr)[i]);
+ return g_variant_builder_end (&builder);
}
-static GValue *
-str_to_gvalue (const char *str, gboolean try_convert)
+static GVariant *
+str_to_gvariant (const char *str, gboolean try_convert)
{
- GValue *val;
-
/* Empty */
if (!str || strlen (str) < 1)
return NULL;
@@ -327,18 +292,13 @@
return NULL;
}
- val = g_slice_new0 (GValue);
- g_value_init (val, G_TYPE_STRING);
- g_value_set_string (val, str);
-
- return val;
+ return g_variant_new_string (str);
}
-static GValue *
-addr_to_gvalue (const char *str)
+static GVariant *
+addr4_to_gvariant (const char *str)
{
struct in_addr temp_addr;
- GValue *val;
/* Empty */
if (!str || strlen (str) < 1)
@@ -347,11 +307,7 @@
if (inet_pton (AF_INET, str, &temp_addr) <= 0)
return NULL;
- val = g_slice_new0 (GValue);
- g_value_init (val, G_TYPE_UINT);
- g_value_set_uint (val, temp_addr.s_addr);
-
- return val;
+ return g_variant_new_uint32 (temp_addr.s_addr);
}
static char *
@@ -424,24 +380,14 @@
{
NMSshPluginPrivate *priv = NM_SSH_PLUGIN_GET_PRIVATE (plugin);
NMSshPluginIOData *io_data = priv->io_data;
- DBusGConnection *connection;
- DBusGProxy *proxy;
- GHashTable *config, *ip4config, *ip6config;
- GValue *val;
- GError *err = NULL;
+ GVariantBuilder config, ip4config, ip6config;
+ GVariant *val;
char *device;
char *resolved_hostname;
- connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &err);
- if (!connection) {
- g_warning ("Could not get the system bus: %s", err->message);
- nm_vpn_plugin_set_state ((NMVPNPlugin*)plugin, NM_VPN_SERVICE_STATE_STOPPED);
- return FALSE;
- }
-
- config = g_hash_table_new (g_str_hash, g_str_equal);
- ip4config = g_hash_table_new (g_str_hash, g_str_equal);
- ip6config = g_hash_table_new (g_str_hash, g_str_equal);
+ g_variant_builder_init (&config, G_VARIANT_TYPE_VARDICT);
+ g_variant_builder_init (&ip4config, G_VARIANT_TYPE_VARDICT);
+ g_variant_builder_init (&ip6config, G_VARIANT_TYPE_VARDICT);
if (debug) {
g_message ("Local device: '%s%d'", io_data->dev_type, io_data->local_dev_number);
@@ -464,8 +410,8 @@
/* We might have to resolve that */
resolved_hostname = resolve_hostname (io_data->remote_gw);
if (resolved_hostname) {
- val = addr_to_gvalue (resolved_hostname);
- g_hash_table_insert (config, NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY, val);
+ val = addr4_to_gvariant (resolved_hostname);
+ g_variant_builder_add (&config, "{sv}", NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY, val);
g_free (resolved_hostname);
} else {
g_warning ("Could not resolve remote_gw.");
@@ -479,9 +425,9 @@
{
device =
(gpointer) g_strdup_printf ("%s%d", io_data->dev_type, io_data->local_dev_number);
- val = str_to_gvalue (device, FALSE);
+ val = str_to_gvariant (device, FALSE);
g_free(device);
- g_hash_table_insert (config, NM_VPN_PLUGIN_CONFIG_TUNDEV, val);
+ g_variant_builder_add (&config, "{sv}", NM_VPN_PLUGIN_CONFIG_TUNDEV, val);
}
else
g_warning ("local_dev_number unset.");
@@ -489,8 +435,8 @@
/* mtu */
if (io_data->mtu > 0)
{
- val = str_to_gvalue (g_strdup_printf("%d", io_data->mtu), FALSE);
- g_hash_table_insert (config, NM_VPN_PLUGIN_CONFIG_MTU, val);
+ val = str_to_gvariant (g_strdup_printf("%d", io_data->mtu), FALSE);
+ g_variant_builder_add (&config, "{sv}", NM_VPN_PLUGIN_CONFIG_MTU, val);
}
else
g_warning ("local_dev_number unset.");
@@ -500,18 +446,18 @@
/* ---------------------------------------------------- */
/* IPv4 specific (local_addr, remote_addr, netmask) */
- g_hash_table_insert (config, NM_VPN_PLUGIN_CONFIG_HAS_IP4, bool_to_gvalue (TRUE));
+ g_variant_builder_add (&config, "{sv}", NM_VPN_PLUGIN_CONFIG_HAS_IP4, g_variant_new_boolean (TRUE));
/* replace default route? */
if (io_data->no_default_route) {
- g_hash_table_insert (config, NM_VPN_PLUGIN_IP4_CONFIG_NEVER_DEFAULT, bool_to_gvalue (TRUE));
+ g_variant_builder_add (&config, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_NEVER_DEFAULT, g_variant_new_boolean (TRUE));
}
/* local_address */
if (io_data->local_addr)
{
- val = addr_to_gvalue (io_data->local_addr);
- g_hash_table_insert (ip4config, NM_VPN_PLUGIN_IP4_CONFIG_ADDRESS, val);
+ val = addr4_to_gvariant (io_data->local_addr);
+ g_variant_builder_add (&ip4config, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_ADDRESS, val);
}
else
g_warning ("local_addr unset.");
@@ -519,9 +465,9 @@
/* remote_addr */
if (io_data->remote_addr)
{
- val = addr_to_gvalue (io_data->remote_addr);
- g_hash_table_insert (ip4config, NM_VPN_PLUGIN_IP4_CONFIG_INT_GATEWAY, val);
- g_hash_table_insert (ip4config, NM_VPN_PLUGIN_IP4_CONFIG_PTP, val);
+ val = addr4_to_gvariant (io_data->remote_addr);
+ g_variant_builder_add (&ip4config, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_INT_GATEWAY, val);
+ g_variant_builder_add (&ip4config, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_PTP, val);
}
else
g_warning ("remote_addr unset.");
@@ -529,10 +475,11 @@
/* netmask */
if (io_data->netmask && g_str_has_prefix (io_data->netmask, "255.")) {
guint32 addr;
- val = addr_to_gvalue(io_data->netmask);
- addr = g_value_get_uint (val);
- g_value_set_uint (val, nm_utils_ip4_netmask_to_prefix (addr));
- g_hash_table_insert (ip4config, NM_VPN_PLUGIN_IP4_CONFIG_PREFIX, val);
+ val = addr4_to_gvariant(io_data->netmask);
+ addr = g_variant_get_uint32 (val);
+ g_variant_unref (val);
+ val = g_variant_new_uint32 (nm_utils_ip4_netmask_to_prefix (addr));
+ g_variant_builder_add (&ip4config, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_PREFIX, val);
} else
g_warning ("netmask unset.");
@@ -542,18 +489,18 @@
/* IPv6 specific (local_addr_6, remote_addr_6, netmask_6) */
if (io_data->ipv6) {
- g_hash_table_insert (config, NM_VPN_PLUGIN_CONFIG_HAS_IP6, bool_to_gvalue (TRUE));
+ g_variant_builder_add (&config, "{sv}", NM_VPN_PLUGIN_CONFIG_HAS_IP6, g_variant_new_boolean (TRUE));
/* replace default route? */
if (io_data->no_default_route) {
- g_hash_table_insert (config, NM_VPN_PLUGIN_IP6_CONFIG_NEVER_DEFAULT, bool_to_gvalue (TRUE));
+ g_variant_builder_add (&config, "{sv}", NM_VPN_PLUGIN_IP6_CONFIG_NEVER_DEFAULT, g_variant_new_boolean (TRUE));
}
/* local_addr_6 */
if (io_data->local_addr_6)
{
- val = addr6_to_gvalue (io_data->local_addr_6);
- g_hash_table_insert (ip6config, NM_VPN_PLUGIN_IP6_CONFIG_ADDRESS, val);
+ val = addr6_to_gvariant (io_data->local_addr_6);
+ g_variant_builder_add (&ip6config, "{sv}", NM_VPN_PLUGIN_IP6_CONFIG_ADDRESS, val);
}
else
g_warning ("local_addr_6 unset.");
@@ -561,17 +508,17 @@
/* remote_addr_6 */
if (io_data->remote_addr_6)
{
- val = addr6_to_gvalue (io_data->remote_addr_6);
- g_hash_table_insert (ip6config, NM_VPN_PLUGIN_IP6_CONFIG_INT_GATEWAY, val);
- g_hash_table_insert (ip6config, NM_VPN_PLUGIN_IP6_CONFIG_PTP, val);
+ val = addr6_to_gvariant (io_data->remote_addr_6);
+ g_variant_builder_add (&ip6config, "{sv}", NM_VPN_PLUGIN_IP6_CONFIG_INT_GATEWAY, val);
+ g_variant_builder_add (&ip6config, "{sv}", NM_VPN_PLUGIN_IP6_CONFIG_PTP, val);
}
else
g_warning ("remote_addr_6 unset.");
/* netmask_6 */
if (io_data->netmask_6) {
- val = uint_to_gvalue (strtol (io_data->netmask_6, NULL, 10));
- g_hash_table_insert (ip6config, NM_VPN_PLUGIN_IP6_CONFIG_PREFIX, val);
+ val = g_variant_new_uint32 (strtol (io_data->netmask_6, NULL, 10));
+ g_variant_builder_add (&ip6config, "{sv}", NM_VPN_PLUGIN_IP6_CONFIG_PREFIX, val);
} else
g_warning ("netmask_6 unset.");
}
@@ -580,40 +527,19 @@
/* ---------------------------------------------------- */
- proxy = dbus_g_proxy_new_for_name (
- connection,
- NM_DBUS_SERVICE_SSH,
- NM_VPN_DBUS_PLUGIN_PATH,
- NM_VPN_DBUS_PLUGIN_INTERFACE);
/* Send general config */
- dbus_g_proxy_call_no_reply (
- proxy, "SetConfig",
- dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE),
- config,
- G_TYPE_INVALID,
- G_TYPE_INVALID);
+ nm_vpn_service_plugin_set_config ((NMVpnServicePlugin*) plugin,
+ g_variant_builder_end (&config));
/* Send IPv6 config */
- if (io_data->ipv6) {
- dbus_g_proxy_call_no_reply (
- proxy, "SetIp6Config",
- dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE),
- ip6config,
- G_TYPE_INVALID,
- G_TYPE_INVALID);
- }
+ if (io_data->ipv6)
+ nm_vpn_service_plugin_set_ip6_config ((NMVpnServicePlugin*) plugin,
+ g_variant_builder_end (&ip6config));
/* Send IPv4 config */
- dbus_g_proxy_call_no_reply (
- proxy, "SetIp4Config",
- dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE),
- ip4config,
- G_TYPE_INVALID,
- G_TYPE_INVALID);
-
-
- g_object_unref (proxy);
+ nm_vpn_service_plugin_set_ip4_config ((NMVpnServicePlugin*) plugin,
+ g_variant_builder_end (&ip4config));
return TRUE;
}
@@ -691,7 +617,8 @@
static gboolean
nm_ssh_stdout_cb (GIOChannel *source, GIOCondition condition, gpointer user_data)
{
- NMVPNPlugin *plugin = NM_VPN_PLUGIN (user_data);
+ NMVpnServicePlugin *plugin = NM_VPN_SERVICE_PLUGIN (user_data);
+ NMSshPluginPrivate *priv = NM_SSH_PLUGIN_GET_PRIVATE (plugin);
char *str = NULL;
if (!(condition & G_IO_IN))
@@ -715,12 +642,12 @@
} else if (g_str_has_prefix (str, "Tunnel device open failed.")) {
/* Opening of local tun device failed... :( */
g_warning("Tunnel device open failed.");
- nm_vpn_plugin_set_state (plugin, NM_VPN_SERVICE_STATE_STOPPED);
+ nm_vpn_service_plugin_failure (plugin, NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED);
} else if (g_str_has_prefix (str, "debug1: Sending command:")) {
/* If we got to sending the command, it means that things are
* established, we should start the timer to get the local
* interface up... */
- if (NM_VPN_SERVICE_STATE_STOPPED != nm_vpn_plugin_get_state (plugin))
+ if (priv->pid)
nm_ssh_schedule_ifconfig_timer ((NMSshPlugin*)plugin);
else if(debug)
g_message("Not starting local timer because plugin is in STOPPED state");
@@ -728,16 +655,16 @@
/* Opening of remote tun device failed... :( */
g_warning("Tunnel device open failed on remote server.");
g_warning("Make sure you have privileges to open tun/tap devices and that your SSH server is configured with 'PermitTunnel=yes'");
- nm_vpn_plugin_set_state (plugin, NM_VPN_SERVICE_STATE_STOPPED);
+ nm_vpn_service_plugin_failure (plugin, NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED);
} else if (g_str_has_prefix (str, "debug1: Remote: Failed to open the tunnel device.")) {
/* Opening of remote tun device failed... device busy? */
g_warning("Tunnel device open failed on remote server.");
g_warning("Is this device free on the remote host?");
- nm_vpn_plugin_set_state (plugin, NM_VPN_SERVICE_STATE_STOPPED);
+ nm_vpn_service_plugin_failure (plugin, NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED);
} else if (strncmp (str, "The authenticity of host", 24) == 0) {
/* User will have to accept this new host with its fingerprint */
g_warning("It is not a known host, continue connecting?");
- nm_vpn_plugin_set_state (plugin, NM_VPN_SERVICE_STATE_STOPPED);
+ nm_vpn_service_plugin_failure (plugin, NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED);
}
g_message("%s", str);
@@ -768,9 +695,9 @@
static void
ssh_watch_cb (GPid pid, gint status, gpointer user_data)
{
- NMVPNPlugin *plugin = NM_VPN_PLUGIN (user_data);
+ NMVpnServicePlugin *plugin = NM_VPN_SERVICE_PLUGIN (user_data);
NMSshPluginPrivate *priv = NM_SSH_PLUGIN_GET_PRIVATE (plugin);
- NMVPNPluginFailure failure = NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED;
+ NMVpnPluginFailure failure = NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED;
guint error = 0;
gboolean good_exit = FALSE;
@@ -835,10 +762,10 @@
g_source_remove(priv->io_data->socket_channel_stderr_eventid);
close (g_io_channel_unix_get_fd(priv->io_data->ssh_stderr_channel));
- if (!good_exit)
- nm_vpn_plugin_failure (plugin, failure);
-
- nm_vpn_plugin_set_state (plugin, NM_VPN_SERVICE_STATE_STOPPED);
+ if (good_exit)
+ nm_vpn_service_plugin_disconnect (plugin, NULL);
+ else
+ nm_vpn_service_plugin_failure (plugin, failure);
}
static const char *
@@ -968,7 +895,7 @@
static gboolean
nm_ssh_start_ssh_binary (NMSshPlugin *plugin,
- NMSettingVPN *s_vpn,
+ NMSettingVpn *s_vpn,
const char *default_username,
GError **error)
{
@@ -1180,7 +1107,7 @@
if (priv->io_data->local_dev_number == -1)
{
g_warning("Could not assign a free tun/tap device.");
- nm_vpn_plugin_set_state ((NMVPNPlugin*)plugin, NM_VPN_SERVICE_STATE_STOPPED);
+ nm_vpn_service_plugin_failure (NM_VPN_SERVICE_PLUGIN (plugin), NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED);
return FALSE;
}
@@ -1506,18 +1433,18 @@
}
static gboolean
-real_connect (NMVPNPlugin *plugin,
+real_connect (NMVpnServicePlugin *plugin,
NMConnection *connection,
GError **error)
{
- NMSettingVPN *s_vpn;
+ NMSettingVpn *s_vpn;
const char *user_name;
s_vpn = NM_SETTING_VPN (nm_connection_get_setting (connection, NM_TYPE_SETTING_VPN));
if (!s_vpn) {
g_set_error (error,
NM_VPN_PLUGIN_ERROR,
- NM_VPN_PLUGIN_ERROR_CONNECTION_INVALID,
+ NM_VPN_PLUGIN_ERROR_INVALID_CONNECTION,
"%s",
_("Could not process the request because the VPN connection settings were invalid."));
return FALSE;
@@ -1537,17 +1464,17 @@
}
static gboolean
-real_need_secrets (NMVPNPlugin *plugin,
+real_need_secrets (NMVpnServicePlugin *plugin,
NMConnection *connection,
- char **setting_name,
+ const char **setting_name,
GError **error)
{
- NMSettingVPN *s_vpn;
+ NMSettingVpn *s_vpn;
gboolean need_secrets = FALSE;
const char *auth_type = NULL;
NMSettingSecretFlags flags = NM_SETTING_SECRET_FLAG_NONE;
- g_return_val_if_fail (NM_IS_VPN_PLUGIN (plugin), FALSE);
+ g_return_val_if_fail (NM_IS_VPN_SERVICE_PLUGIN (plugin), FALSE);
g_return_val_if_fail (NM_IS_CONNECTION (connection), FALSE);
if (debug) {
@@ -1559,7 +1486,7 @@
if (!s_vpn) {
g_set_error (error,
NM_VPN_PLUGIN_ERROR,
- NM_VPN_PLUGIN_ERROR_CONNECTION_INVALID,
+ NM_VPN_PLUGIN_ERROR_INVALID_CONNECTION,
"%s",
_("Could not process the request because the VPN connection settings were invalid."));
return FALSE;
@@ -1620,7 +1547,7 @@
}
static gboolean
-real_disconnect (NMVPNPlugin *plugin,
+real_disconnect (NMVpnServicePlugin *plugin,
GError **err)
{
NMSshPluginPrivate *priv = NM_SSH_PLUGIN_GET_PRIVATE (plugin);
@@ -1647,7 +1574,7 @@
nm_ssh_plugin_class_init (NMSshPluginClass *plugin_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (plugin_class);
- NMVPNPluginClass *parent_class = NM_VPN_PLUGIN_CLASS (plugin_class);
+ NMVpnServicePluginClass *parent_class = NM_VPN_SERVICE_PLUGIN_CLASS (plugin_class);
g_type_class_add_private (object_class, sizeof (NMSshPluginPrivate));
@@ -1659,7 +1586,7 @@
static void
plugin_state_changed (NMSshPlugin *plugin,
- NMVPNServiceState state,
+ NMVpnServiceState state,
gpointer user_data)
{
switch (state) {
@@ -1679,7 +1606,7 @@
NMSshPlugin *plugin;
plugin = (NMSshPlugin *) g_object_new (NM_TYPE_SSH_PLUGIN,
- NM_VPN_PLUGIN_DBUS_SERVICE_NAME,
+ NM_VPN_SERVICE_PLUGIN_DBUS_SERVICE_NAME,
NM_DBUS_SERVICE_SSH,
NULL);
if (plugin)
@@ -1710,7 +1637,7 @@
}
static void
-quit_mainloop (NMVPNPlugin *plugin, gpointer user_data)
+quit_mainloop (NMVpnServicePlugin *plugin, gpointer user_data)
{
g_main_loop_quit ((GMainLoop *) user_data);
}
diff -Nru network-manager-ssh-0.9.4/src/nm-ssh-service-defines.h network-manager-ssh-1.2.0/src/nm-ssh-service-defines.h
--- network-manager-ssh-0.9.4/src/nm-ssh-service-defines.h 1970-01-01 00:00:00.000000000 +0000
+++ network-manager-ssh-1.2.0/src/nm-ssh-service-defines.h 2016-04-23 14:06:26.000000000 +0000
@@ -0,0 +1,63 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* nm-ssh-service - ssh integration with NetworkManager
+ *
+ * Copyright (C) 2013 Dan Fruehauf
+ *
+ * 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.
+ *
+ */
+
+#ifndef NM_SSH_SERVICE_DEFINES_H
+#define NM_SSH_SERVICE_DEFINES_H
+
+#define NM_DBUS_SERVICE_SSH "org.freedesktop.NetworkManager.ssh"
+#define NM_DBUS_INTERFACE_SSH "org.freedesktop.NetworkManager.ssh"
+#define NM_DBUS_PATH_SSH "/org/freedesktop/NetworkManager/ssh"
+
+#define YES "yes"
+#define NO "no"
+#define IS_YES(x) (!strncmp (x, YES, strlen(YES)))
+
+#define NM_SSH_KEY_REMOTE "remote"
+#define NM_SSH_KEY_REMOTE_IP "remote-ip"
+#define NM_SSH_KEY_LOCAL_IP "local-ip"
+#define NM_SSH_KEY_NETMASK "netmask"
+#define NM_SSH_KEY_PORT "port"
+#define NM_SSH_KEY_TUNNEL_MTU "tunnel-mtu"
+#define NM_SSH_KEY_EXTRA_OPTS "extra-opts"
+#define NM_SSH_KEY_REMOTE_DEV "remote-dev"
+#define NM_SSH_KEY_SSH_AUTH_SOCK "ssh-auth-sock"
+#define NM_SSH_KEY_TAP_DEV "tap-dev"
+#define NM_SSH_KEY_REMOTE_USERNAME "remote-username"
+#define NM_SSH_KEY_NO_DEFAULT_ROUTE "no-default-route"
+#define NM_SSH_KEY_IP_6 "ip-6"
+#define NM_SSH_KEY_REMOTE_IP_6 "remote-ip-6"
+#define NM_SSH_KEY_LOCAL_IP_6 "local-ip-6"
+#define NM_SSH_KEY_NETMASK_6 "netmask-6"
+#define NM_SSH_KEY_AUTH_TYPE "auth-type"
+#define NM_SSH_KEY_KEY_FILE "key-file"
+#define NM_SSH_KEY_PASSWORD "password"
+
+#define NM_SSH_DEFAULT_PORT 22
+#define NM_SSH_DEFAULT_MTU 1500
+#define NM_SSH_DEFAULT_REMOTE_DEV 100
+#define NM_SSH_DEFAULT_EXTRA_OPTS "-o ServerAliveInterval=10 -o TCPKeepAlive=yes"
+#define NM_SSH_DEFAULT_REMOTE_USERNAME "root"
+
+#define NM_SSH_AUTH_TYPE_SSH_AGENT "ssh-agent"
+#define NM_SSH_AUTH_TYPE_PASSWORD "password"
+#define NM_SSH_AUTH_TYPE_KEY "key"
+
+#endif /* NM_SSH_SERVICE_DEFINES_H */
diff -Nru network-manager-ssh-0.9.4/src/nm-ssh-service.h network-manager-ssh-1.2.0/src/nm-ssh-service.h
--- network-manager-ssh-0.9.4/src/nm-ssh-service.h 2015-07-13 12:31:26.000000000 +0000
+++ network-manager-ssh-1.2.0/src/nm-ssh-service.h 2016-04-23 14:06:26.000000000 +0000
@@ -24,7 +24,9 @@
#include
#include
-#include
+#include
+
+#include "nm-ssh-service-defines.h"
#define NM_TYPE_SSH_PLUGIN (nm_ssh_plugin_get_type ())
#define NM_SSH_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SSH_PLUGIN, NMSshPlugin))
@@ -33,64 +35,12 @@
#define NM_IS_SSH_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NM_TYPE_SSH_PLUGIN))
#define NM_SSH_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_SSH_PLUGIN, NMSshPluginClass))
-#define NM_DBUS_SERVICE_SSH "org.freedesktop.NetworkManager.ssh"
-#define NM_DBUS_INTERFACE_SSH "org.freedesktop.NetworkManager.ssh"
-#define NM_DBUS_PATH_SSH "/org/freedesktop/NetworkManager/ssh"
-
-#define YES "yes"
-#define NO "no"
-#define IS_YES(x) (!strncmp (x, YES, strlen(YES)))
-
-#define NM_SSH_KEY_REMOTE "remote"
-#define NM_SSH_KEY_REMOTE_IP "remote-ip"
-#define NM_SSH_KEY_LOCAL_IP "local-ip"
-#define NM_SSH_KEY_NETMASK "netmask"
-#define NM_SSH_KEY_PORT "port"
-#define NM_SSH_KEY_TUNNEL_MTU "tunnel-mtu"
-#define NM_SSH_KEY_EXTRA_OPTS "extra-opts"
-#define NM_SSH_KEY_REMOTE_DEV "remote-dev"
-#define NM_SSH_KEY_SSH_AUTH_SOCK "ssh-auth-sock"
-#define NM_SSH_KEY_TAP_DEV "tap-dev"
-#define NM_SSH_KEY_REMOTE_USERNAME "remote-username"
-#define NM_SSH_KEY_NO_DEFAULT_ROUTE "no-default-route"
-#define NM_SSH_KEY_IP_6 "ip-6"
-#define NM_SSH_KEY_REMOTE_IP_6 "remote-ip-6"
-#define NM_SSH_KEY_LOCAL_IP_6 "local-ip-6"
-#define NM_SSH_KEY_NETMASK_6 "netmask-6"
-#define NM_SSH_KEY_AUTH_TYPE "auth-type"
-#define NM_SSH_KEY_KEY_FILE "key-file"
-#define NM_SSH_KEY_PASSWORD "password"
-
-#define NM_SSH_DEFAULT_PORT 22
-#define NM_SSH_DEFAULT_MTU 1500
-#define NM_SSH_DEFAULT_REMOTE_DEV 100
-#define NM_SSH_DEFAULT_EXTRA_OPTS "-o ServerAliveInterval=10 -o TCPKeepAlive=yes"
-#define NM_SSH_DEFAULT_REMOTE_USERNAME "root"
-
-#define NM_SSH_AUTH_TYPE_SSH_AGENT "ssh-agent"
-#define NM_SSH_AUTH_TYPE_PASSWORD "password"
-#define NM_SSH_AUTH_TYPE_KEY "key"
-
-/* Backward compatibility with NetworkManager < 0.9.6 when no IPv6 is supported */
-#if !defined(NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY)
-# define NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY
-#endif
-
-#if !defined(NM_VPN_PLUGIN_CONFIG_TUNDEV)
-# define NM_VPN_PLUGIN_CONFIG_TUNDEV NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV
-#endif
-
-#if !defined(NM_VPN_PLUGIN_CONFIG_MTU)
-# define NM_VPN_PLUGIN_CONFIG_MTU NM_VPN_PLUGIN_IP4_CONFIG_MTU
-#endif
-/* End backward compatibility */
-
typedef struct {
- NMVPNPlugin parent;
+ NMVpnServicePlugin parent;
} NMSshPlugin;
typedef struct {
- NMVPNPluginClass parent;
+ NMVpnServicePluginClass parent;
} NMSshPluginClass;
GType nm_ssh_plugin_get_type (void);