diff options
author | Thomas Haller <thaller@redhat.com> | 2021-02-15 09:44:15 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2021-02-15 09:44:15 +0100 |
commit | d8214144d2afd7cd627330672d25e2933e17e38d (patch) | |
tree | 829aba8848fa1b4e2efcf837824f50d5487a1fe2 | |
parent | 5ccb8ce17a161fa7e926a1644a4c1aadbf74c002 (diff) | |
parent | e1e9abdf041b4cc95fb1936b75ced7669f3d7867 (diff) | |
download | NetworkManager-d8214144d2afd7cd627330672d25e2933e17e38d.tar.gz |
libnm: merge branch 'th/nmclient-fix'
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=982613
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/662
-rw-r--r-- | libnm/nm-client.c | 15 | ||||
-rw-r--r-- | libnm/nm-libnm-utils.c | 9 |
2 files changed, 18 insertions, 6 deletions
diff --git a/libnm/nm-client.c b/libnm/nm-client.c index 2c7751965a..92ad5ef2b4 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,9 +2950,12 @@ _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); diff --git a/libnm/nm-libnm-utils.c b/libnm/nm-libnm-utils.c index 1fb6a47c3d..1000e04d1a 100644 --- a/libnm/nm-libnm-utils.c +++ b/libnm/nm-libnm-utils.c @@ -46,6 +46,7 @@ _nml_dbus_log(NMLDBusLogLevel level, gboolean use_stdout, const char *fmt, ...) va_list args; const char * prefix = ""; gint64 ts; + pid_t pid; /* we only call _nml_dbus_log() after nml_dbus_log_enabled(), which already does * an atomic access to the variable. Since the value is only initialized once and @@ -89,14 +90,18 @@ _nml_dbus_log(NMLDBusLogLevel level, gboolean use_stdout, const char *fmt, ...) ts = nm_utils_clock_gettime_nsec(CLOCK_BOOTTIME); + pid = getpid(); + if (use_stdout) { - g_print("libnm-dbus: %s[%" G_GINT64_FORMAT ".%05" G_GINT64_FORMAT "] %s\n", + g_print("libnm-dbus[%lld]: %s[%" G_GINT64_FORMAT ".%05" G_GINT64_FORMAT "] %s\n", + (long long) pid, prefix, ts / NM_UTILS_NSEC_PER_SEC, (ts / (NM_UTILS_NSEC_PER_SEC / 10000)) % 10000, msg); } else { - g_printerr("libnm-dbus: %s[%" G_GINT64_FORMAT ".%05" G_GINT64_FORMAT "] %s\n", + g_printerr("libnm-dbus[%lld]: %s[%" G_GINT64_FORMAT ".%05" G_GINT64_FORMAT "] %s\n", + (long long) pid, prefix, ts / NM_UTILS_NSEC_PER_SEC, (ts / (NM_UTILS_NSEC_PER_SEC / 10000)) % 10000, |