[network-manager-openswan/lr/multiple-vpn] fixup! service: process the configuration in the service, not the helper
- From: Thomas Haller <thaller src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-openswan/lr/multiple-vpn] fixup! service: process the configuration in the service, not the helper
- Date: Tue, 3 Nov 2015 13:25:55 +0000 (UTC)
commit 1a490e7fae598479cd110a6304e36449fc5333ca
Author: Thomas Haller <thaller redhat com>
Date: Tue Nov 3 13:28:53 2015 +0100
fixup! service: process the configuration in the service, not the helper
Ensure that all environment variables are set as expected.
src/nm-openswan-service.c | 43 ++++++++++++++++++++++++++++++++++---------
1 files changed, 34 insertions(+), 9 deletions(-)
---
diff --git a/src/nm-openswan-service.c b/src/nm-openswan-service.c
index b7b49ce..649eef8 100644
--- a/src/nm-openswan-service.c
+++ b/src/nm-openswan-service.c
@@ -1130,6 +1130,37 @@ lookup_string (GVariant *dict, const gchar *key)
return value;
}
+static GVariant *
+route_to_gvariant (GVariant *env)
+{
+ GVariantBuilder builder;
+
+ if (!lookup_string (env, "PLUTO_PEER_CLIENT"))
+ return NULL;
+
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("au"));
+
+#define _try_add(builder, variant) \
+ G_STMT_START { \
+ GVariant *_v = (variant); \
+ \
+ if (!_v) \
+ goto fail; \
+ g_variant_builder_add_value ((builder), _v); \
+ } G_STMT_END
+ _try_add (&builder, addr4_to_gvariant (lookup_string (env, "PLUTO_PEER_CLIENT_NET")));
+ _try_add (&builder, netmask4_to_gvariant (lookup_string (env, "PLUTO_PEER_CLIENT_MASK")));
+ _try_add (&builder, addr4_to_gvariant (lookup_string (env, "PLUTO_NEXT_HOP")));
+ _try_add (&builder, g_variant_new_uint32 (0));
+ _try_add (&builder, addr4_to_gvariant (lookup_string (env, "PLUTO_MY_SOURCEIP")));
+#undef _try_add
+
+ return g_variant_builder_end (&builder);
+fail:
+ g_variant_builder_clear (&builder);
+ return NULL;
+}
+
static gboolean
handle_callback (NMDBusOpenswanHelper *object,
GDBusMethodInvocation *invocation,
@@ -1222,15 +1253,9 @@ handle_callback (NMDBusOpenswanHelper *object,
/* This route */
/* TODO: We just cumulate the routes on up-client. We probably should add and remove them
* on route-client and unroute-client verbs. */
- if (lookup_string (env, "PLUTO_PEER_CLIENT")) {
- g_variant_builder_init (&builder, G_VARIANT_TYPE ("au"));
- g_variant_builder_add_value (&builder, addr4_to_gvariant (lookup_string (env,
"PLUTO_PEER_CLIENT_NET")));
- g_variant_builder_add_value (&builder, netmask4_to_gvariant (lookup_string (env,
"PLUTO_PEER_CLIENT_MASK")));
- g_variant_builder_add_value (&builder, addr4_to_gvariant (lookup_string (env,
"PLUTO_NEXT_HOP")));
- g_variant_builder_add_value (&builder, g_variant_new_uint32 (0));
- g_variant_builder_add_value (&builder, addr4_to_gvariant (lookup_string (env,
"PLUTO_MY_SOURCEIP")));
- priv->routes = g_slist_append (priv->routes, g_variant_ref_sink (g_variant_builder_end
(&builder)));
- }
+ val = route_to_gvariant (env);
+ if (val)
+ priv->routes = g_slist_append (priv->routes, g_variant_ref_sink (val));
/* Routes */
g_variant_builder_init (&builder, G_VARIANT_TYPE ("aau"));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]