about summary refs log tree commit diff
path: root/libnm/nm-client.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2021-02-18 18:54:58 +0100
committerMichael Biebl <biebl@debian.org>2021-02-18 18:54:58 +0100
commiteca19fa2272137cfd38135376f8cbf6d0a2f2187 (patch)
tree36d3cdb47cd2b3b367dced642667479007ffaf62 /libnm/nm-client.c
parent16df93361dd8829fa730e08ce96650b499a59f70 (diff)
parent3a56bce6c0ea7ba0fe269520547740783b342e0d (diff)
Update upstream source from tag 'upstream/1.30.0'
Update to upstream version '1.30.0'
with Debian dir e4e3c5986af4d47930d9e35ac7d8bc6c70bd1dd9
Diffstat (limited to 'libnm/nm-client.c')
-rw-r--r--libnm/nm-client.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/libnm/nm-client.c b/libnm/nm-client.c
index 2c775196..f1b25970 100644
--- a/libnm/nm-client.c
+++ b/libnm/nm-client.c
@@ -2930,11 +2930,15 @@ _dbus_handle_properties_changed(NMClient *      self,
         gs_free char *ss = NULL;
 
         NML_NMCLIENT_LOG_T(self,
-                           "[%s]: %s: properties changed for interface %s { %s }",
+                           "[%s]: %s: properties changed for interface %s %s%s%s",
                            object_path,
                            log_context,
                            interface_name,
-                           (ss = g_variant_print(changed_properties, TRUE)));
+                           NM_PRINT_FMT_QUOTED(changed_properties,
+                                               "{ ",
+                                               (ss = g_variant_print(changed_properties, TRUE)),
+                                               " }",
+                                               "(no changed properties)"));
     }
 
     if (inout_dbobj) {
@@ -2946,12 +2950,16 @@ _dbus_handle_properties_changed(NMClient *      self,
         dbobj     = _dbobjs_dbobj_get_r(self, dbus_path);
     }
 
-    if (dbobj)
+    if (dbobj) {
+        nm_assert(dbobj->obj_state >= NML_DBUS_OBJ_STATE_WATCHED_ONLY);
         db_iface_data = nml_dbus_object_iface_data_get(dbobj, interface_name, allow_add_iface);
-    else if (allow_add_iface) {
+        if (db_iface_data && dbobj->obj_state == NML_DBUS_OBJ_STATE_WATCHED_ONLY)
+            nml_dbus_object_set_obj_state(dbobj, NML_DBUS_OBJ_STATE_ON_DBUS, self);
+    } else if (allow_add_iface) {
         dbobj = _dbobjs_dbobj_create(self, g_steal_pointer(&dbus_path));
         nml_dbus_object_set_obj_state(dbobj, NML_DBUS_OBJ_STATE_ON_DBUS, self);
         db_iface_data = nml_dbus_object_iface_data_get(dbobj, interface_name, TRUE);
+        nm_assert(db_iface_data);
     }
 
     NM_SET_OUT(inout_dbobj, dbobj);