summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2014-10-28 16:05:16 -0500
committerDan Williams <dcbw@redhat.com>2014-11-04 14:36:21 -0600
commit9ee6633373d8ea750963860381ecc15c7521e933 (patch)
tree62aaa769c07a1602e195e1d9c4acee727647b259
parent353909c0ff624ed50c3c716352643d25fd052bd8 (diff)
downloadNetworkManager-dcbw/libnm-fixes.tar.gz
fixup! libnm: queue added/removed signals and suppress uninitialized notificationsdcbw/libnm-fixes
-rw-r--r--libnm/nm-object.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/libnm/nm-object.c b/libnm/nm-object.c
index 39975594d4..2023a74fa0 100644
--- a/libnm/nm-object.c
+++ b/libnm/nm-object.c
@@ -190,6 +190,7 @@ deferred_notify_cb (gpointer data)
{
NMObject *object = NM_OBJECT (data);
NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object);
+ NMObjectClass *object_class = NM_OBJECT_GET_CLASS (object);
GSList *props, *iter;
priv->notify_id = 0;
@@ -229,8 +230,11 @@ deferred_notify_cb (gpointer data)
case NOTIFY_SIGNAL_PENDING_REMOVED:
ret = g_snprintf (buf, sizeof (buf), "%s-removed", item->signal_prefix);
break;
- case NOTIFY_SIGNAL_PENDING_NONE:
case NOTIFY_SIGNAL_PENDING_ADDED_REMOVED:
+ if (object_class->object_creation_failed)
+ object_class->object_creation_failed (object, nm_object_get_path (item->changed));
+ break;
+ case NOTIFY_SIGNAL_PENDING_NONE:
default:
break;
}
@@ -322,9 +326,11 @@ _nm_object_queue_notify_full (NMObject *object,
item = g_slice_new0 (NotifyItem);
item->property = property;
- item->signal_prefix = signal_prefix;
- item->pending = added ? NOTIFY_SIGNAL_PENDING_ADDED : NOTIFY_SIGNAL_PENDING_REMOVED;
- item->changed = changed ? g_object_ref (changed) : NULL;
+ if (signal_prefix) {
+ item->signal_prefix = signal_prefix;
+ item->pending = added ? NOTIFY_SIGNAL_PENDING_ADDED : NOTIFY_SIGNAL_PENDING_REMOVED;
+ item->changed = changed ? g_object_ref (changed) : NULL;
+ }
priv->notify_items = g_slist_prepend (priv->notify_items, item);
}