[network-manager-applet/nma-0-9-8] Use the paths specified in the VPN .name files
- From: Michael Biebl <mbiebl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-applet/nma-0-9-8] Use the paths specified in the VPN .name files
- Date: Tue, 1 Apr 2014 19:43:27 +0000 (UTC)
commit b9a852249a9e22dff32d729976bf389fb864ac92
Author: Michael Biebl <biebl debian org>
Date: Tue Apr 1 20:10:16 2014 +0200
Use the paths specified in the VPN .name files
Since LIBDIR of nm-applet and the VPN plugins aren't necessarily the
same, use the paths as specified by the VPN plugins and only
reconstruct the path if it is not absolute or we fail to load the plugin
src/applet-vpn-request.c | 2 +-
src/connection-editor/vpn-helpers.c | 29 +++++++++++++++++------------
2 files changed, 18 insertions(+), 13 deletions(-)
---
diff --git a/src/applet-vpn-request.c b/src/applet-vpn-request.c
index caf1626..d6b2be7 100644
--- a/src/applet-vpn-request.c
+++ b/src/applet-vpn-request.c
@@ -215,7 +215,7 @@ find_auth_dialog_binary (const char *service, GError **error)
NM_SECRET_AGENT_ERROR_INTERNAL_ERROR,
"Could not find the authentication dialog for VPN connection type '%s'",
service);
- } else {
+ } else if (!g_path_is_absolute (prog)) {
char *prog_basename;
/* Remove any path component, then reconstruct path to the auth
diff --git a/src/connection-editor/vpn-helpers.c b/src/connection-editor/vpn-helpers.c
index 3bef7f2..c8a3f11 100644
--- a/src/connection-editor/vpn-helpers.c
+++ b/src/connection-editor/vpn-helpers.c
@@ -75,7 +75,7 @@ vpn_get_plugins (GError **error)
char *path = NULL, *service = NULL;
char *so_path = NULL, *so_name = NULL;
GKeyFile *keyfile = NULL;
- GModule *module;
+ GModule *module = NULL;
NMVpnPluginUiFactory factory = NULL;
if (!g_str_has_suffix (f, ".name"))
@@ -95,19 +95,24 @@ vpn_get_plugins (GError **error)
if (!so_path)
goto next;
- /* Remove any path and extension components, then reconstruct path
- * to the SO in LIBDIR
- */
- so_name = g_path_get_basename (so_path);
- g_free (so_path);
- so_path = g_strdup_printf ("%s/NetworkManager/%s", LIBDIR, so_name);
- g_free (so_name);
+ if (g_path_is_absolute (so_path))
+ module = g_module_open (so_path, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL);
- module = g_module_open (so_path, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL);
if (!module) {
- g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, "Cannot load the VPN plugin which
provides the "
- "service '%s'.", service);
- goto next;
+ /* Remove any path and extension components, then reconstruct path
+ * to the SO in LIBDIR
+ */
+ so_name = g_path_get_basename (so_path);
+ g_free (so_path);
+ so_path = g_strdup_printf ("%s/NetworkManager/%s", LIBDIR, so_name);
+ g_free (so_name);
+
+ module = g_module_open (so_path, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL);
+ if (!module) {
+ g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC, "Cannot load the VPN plugin
which provides the "
+ "service '%s'.", service);
+ goto next;
+ }
}
if (g_module_symbol (module, "nm_vpn_plugin_ui_factory", (gpointer) &factory)) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]