summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2017-08-24 18:43:55 +0200
committerLubomir Rintel <lkundrak@v3.sk>2017-08-24 18:44:39 +0200
commitae606022d62ddbe20e0855cd65e716d50d04aabc (patch)
tree22c0523ae704a3bb60b16075ce7f0e94d4d82b77
parent33b3d6b71703b20405cbff6de076dcd5aa8a7bd8 (diff)
downloadNetworkManager-lr/ovs-1.tar.gz
fixup! devices: add support for openvswitch deviceslr/ovs-1
-rw-r--r--src/devices/openvswitch/nm-openvswitch-factory.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/devices/openvswitch/nm-openvswitch-factory.c b/src/devices/openvswitch/nm-openvswitch-factory.c
index af08928f71..f1da168e09 100644
--- a/src/devices/openvswitch/nm-openvswitch-factory.c
+++ b/src/devices/openvswitch/nm-openvswitch-factory.c
@@ -523,6 +523,8 @@ ovsdb_got_msg (NMOpenvswitchFactory *self, json_t *msg)
OvsdbMethodCall *call = NULL;
json_error_t json_error = { 0, };
json_t *params = NULL;
+ OvsdbMethodCallback callback;
+ gpointer user_data;
json_id = json_object_get (msg, "id");
if (json_is_number (json_id)) {
@@ -542,8 +544,10 @@ ovsdb_got_msg (NMOpenvswitchFactory *self, json_t *msg)
}
/* Cool, we found a corresponsing call. Finish it. */
- call->callback (self, msg, NULL, call->user_data);
+ callback = call->callback;
+ user_data = call->user_data;
g_array_remove_index (priv->calls, 0);
+ callback (self, msg, NULL, user_data);
/* Now we're free to serialize and send the next command, if any. */
ovsdb_next_command (self);
@@ -701,6 +705,8 @@ ovsdb_disconnect (NMOpenvswitchFactory *self)
{
NMOpenvswitchFactoryPrivate *priv = NM_OPENVSWITCH_FACTORY_GET_PRIVATE (self);
OvsdbMethodCall *call;
+ OvsdbMethodCallback callback;
+ gpointer user_data;
GError *error;
_LOGD ("disconnecting from ovsdb");
@@ -709,8 +715,11 @@ ovsdb_disconnect (NMOpenvswitchFactory *self)
error = NULL;
call = &g_array_index (priv->calls, OvsdbMethodCall, priv->calls->len - 1);
g_set_error_literal (&error, G_IO_ERROR, G_IO_ERROR_CANCELLED, "Cancelled");
- call->callback (self, NULL, error, call->user_data);
+
+ callback = call->callback;
+ user_data = call->user_data;
g_array_remove_index (priv->calls, priv->calls->len - 1);
+ callback (self, NULL, error, user_data);
}
g_string_truncate (priv->input, 0);