Blame SOURCES/0025-improve-logging-assume-rh1452062.patch

fc9aca
From bc8c001312ba87cb4069b5a1785bb8fef607f079 Mon Sep 17 00:00:00 2001
fc9aca
From: Thomas Haller <thaller@redhat.com>
fc9aca
Date: Wed, 7 Jun 2017 12:18:21 +0200
fc9aca
Subject: [PATCH 01/10] device: rework device's _NMLOG() logging macro
fc9aca
fc9aca
- if the interface-name is NULL, print [null], to distinguish
fc9aca
  it from (ifname).
fc9aca
- evaluate the ifname only once.
fc9aca
fc9aca
(cherry picked from commit f10b95880666fe611fb2d0c27d49bfe3988ec9ec)
fc9aca
(cherry picked from commit 60ce882419201f75ac762e559854c85926263fe1)
fc9aca
---
fc9aca
 src/devices/nm-device-logging.h | 22 ++++++++++++++++------
fc9aca
 1 file changed, 16 insertions(+), 6 deletions(-)
fc9aca
fc9aca
diff --git a/src/devices/nm-device-logging.h b/src/devices/nm-device-logging.h
fc9aca
index 419a4a5..5f95a91 100644
fc9aca
--- a/src/devices/nm-device-logging.h
fc9aca
+++ b/src/devices/nm-device-logging.h
fc9aca
@@ -34,11 +34,21 @@ _nm_device_log_self_to_device (t *self) \
fc9aca
 #undef  _NMLOG_ENABLED
fc9aca
 #define _NMLOG_ENABLED(level, domain) ( nm_logging_enabled ((level), (domain)) )
fc9aca
 #define _NMLOG(level, domain, ...) \
fc9aca
-    nm_log_obj ((level), (domain), \
fc9aca
-                (self) ? nm_device_get_iface (_nm_device_log_self_to_device (self)) : NULL, \
fc9aca
-                NULL, (self), "device", \
fc9aca
-                "(%s): " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
fc9aca
-                (self) ? (nm_device_get_iface (_nm_device_log_self_to_device (self)) ?: "(null)") : "(none)" \
fc9aca
-                _NM_UTILS_MACRO_REST(__VA_ARGS__))
fc9aca
+	G_STMT_START { \
fc9aca
+		const NMLogLevel _level = (level); \
fc9aca
+		const NMLogDomain _domain = (domain); \
fc9aca
+		\
fc9aca
+		if (nm_logging_enabled (_level, _domain)) { \
fc9aca
+			typeof (*self) *const _self = (self); \
fc9aca
+			const char *const _ifname = _self ? nm_device_get_iface (_nm_device_log_self_to_device (_self)) : NULL; \
fc9aca
+			\
fc9aca
+			nm_log_obj (_level, _domain, \
fc9aca
+			            _ifname, NULL, \
fc9aca
+			            _self, "device", \
fc9aca
+			            "%s%s%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
fc9aca
+			            NM_PRINT_FMT_QUOTED (_ifname, "(", _ifname, ")", "[null]") \
fc9aca
+			            _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
fc9aca
+		} \
fc9aca
+	} G_STMT_END
fc9aca
 
fc9aca
 #endif /* __NETWORKMANAGER_DEVICE_LOGGING_H__ */
fc9aca
-- 
fc9aca
2.9.4
fc9aca
fc9aca
fc9aca
From 5449347dcb049ed7f7d5a9ee022dcf2b2d676412 Mon Sep 17 00:00:00 2001
fc9aca
From: Thomas Haller <thaller@redhat.com>
fc9aca
Date: Wed, 7 Jun 2017 17:22:16 +0200
fc9aca
Subject: [PATCH 02/10] device: expose nm_device_state_to_str() function for
fc9aca
 NMDeviceState
fc9aca
fc9aca
(cherry picked from commit 4b15df26561d5cf3890c9f8e1ec0266547d1cb7a)
fc9aca
(cherry picked from commit e0b7a44062ac870dc884021704f915b21caeaa52)
fc9aca
---
fc9aca
 src/devices/nm-device.c | 28 ++++++++++++++--------------
fc9aca
 src/devices/nm-device.h |  3 +++
fc9aca
 2 files changed, 17 insertions(+), 14 deletions(-)
fc9aca
fc9aca
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
fc9aca
index 404dcf7..fdf88c9 100644
fc9aca
--- a/src/devices/nm-device.c
fc9aca
+++ b/src/devices/nm-device.c
fc9aca
@@ -557,8 +557,8 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (queued_state_to_string, NMDeviceState,
fc9aca
 	NM_UTILS_LOOKUP_STR_ITEM (NM_DEVICE_STATE_FAILED,       NM_PENDING_ACTIONPREFIX_QUEUED_STATE_CHANGE "failed"),
fc9aca
 );
fc9aca
 
fc9aca
-static const char *
fc9aca
-state_to_string (NMDeviceState state)
fc9aca
+const char *
fc9aca
+nm_device_state_to_str (NMDeviceState state)
fc9aca
 {
fc9aca
 	return queued_state_to_string (state) + NM_STRLEN (NM_PENDING_ACTIONPREFIX_QUEUED_STATE_CHANGE);
fc9aca
 }
fc9aca
@@ -3423,9 +3423,9 @@ slave_state_changed (NMDevice *slave,
fc9aca
 	_LOGD (LOGD_DEVICE, "slave %s state change %d (%s) -> %d (%s)",
fc9aca
 	       nm_device_get_iface (slave),
fc9aca
 	       slave_old_state,
fc9aca
-	       state_to_string (slave_old_state),
fc9aca
+	       nm_device_state_to_str (slave_old_state),
fc9aca
 	       slave_new_state,
fc9aca
-	       state_to_string (slave_new_state));
fc9aca
+	       nm_device_state_to_str (slave_new_state));
fc9aca
 
fc9aca
 	/* Don't try to enslave slaves until the master is ready */
fc9aca
 	if (priv->state < NM_DEVICE_STATE_CONFIG)
fc9aca
@@ -4434,7 +4434,7 @@ recheck_available (gpointer user_data)
fc9aca
 		_LOGD (LOGD_DEVICE, "is %savailable, %s %s",
fc9aca
 		       now_available ? "" : "not ",
fc9aca
 		       new_state == NM_DEVICE_STATE_UNAVAILABLE ? "no change required for" : "will transition to",
fc9aca
-		       state_to_string (new_state == NM_DEVICE_STATE_UNAVAILABLE ? state : new_state));
fc9aca
+		       nm_device_state_to_str (new_state == NM_DEVICE_STATE_UNAVAILABLE ? state : new_state));
fc9aca
 
fc9aca
 		priv->recheck_available.available_reason = NM_DEVICE_STATE_REASON_NONE;
fc9aca
 		priv->recheck_available.unavailable_reason = NM_DEVICE_STATE_REASON_NONE;
fc9aca
@@ -12536,8 +12536,8 @@ _set_state_full (NMDevice *self,
fc9aca
 	    && (   state != NM_DEVICE_STATE_UNAVAILABLE
fc9aca
 	        || !priv->firmware_missing)) {
fc9aca
 		_LOGD (LOGD_DEVICE, "state change: %s -> %s (reason '%s') [%d %d %d]%s",
fc9aca
-		       state_to_string (old_state),
fc9aca
-		       state_to_string (state),
fc9aca
+		       nm_device_state_to_str (old_state),
fc9aca
+		       nm_device_state_to_str (state),
fc9aca
 		       reason_to_string (reason),
fc9aca
 		       old_state,
fc9aca
 		       state,
fc9aca
@@ -12547,8 +12547,8 @@ _set_state_full (NMDevice *self,
fc9aca
 	}
fc9aca
 
fc9aca
 	_LOGI (LOGD_DEVICE, "state change: %s -> %s (reason '%s') [%d %d %d]",
fc9aca
-	       state_to_string (old_state),
fc9aca
-	       state_to_string (state),
fc9aca
+	       nm_device_state_to_str (old_state),
fc9aca
+	       nm_device_state_to_str (state),
fc9aca
 	       reason_to_string (reason),
fc9aca
 	       old_state,
fc9aca
 	       state,
fc9aca
@@ -12872,7 +12872,7 @@ queued_state_set (gpointer user_data)
fc9aca
 	nm_assert (priv->queued_state.id);
fc9aca
 
fc9aca
 	_LOGD (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s",
fc9aca
-	       state_to_string (priv->queued_state.state),
fc9aca
+	       nm_device_state_to_str (priv->queued_state.state),
fc9aca
 	       reason_to_string (priv->queued_state.reason),
fc9aca
 	       priv->queued_state.id,
fc9aca
 	       "change state");
fc9aca
@@ -12903,7 +12903,7 @@ nm_device_queue_state (NMDevice *self,
fc9aca
 
fc9aca
 	if (priv->queued_state.id && priv->queued_state.state == state) {
fc9aca
 		_LOGD (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s%s%s%s",
fc9aca
-		       state_to_string (priv->queued_state.state),
fc9aca
+		       nm_device_state_to_str (priv->queued_state.state),
fc9aca
 		       reason_to_string (priv->queued_state.reason),
fc9aca
 		       priv->queued_state.id,
fc9aca
 		       "ignore queuing same state change",
fc9aca
@@ -12919,7 +12919,7 @@ nm_device_queue_state (NMDevice *self,
fc9aca
 	/* We should only ever have one delayed state transition at a time */
fc9aca
 	if (priv->queued_state.id) {
fc9aca
 		_LOGW (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s",
fc9aca
-		       state_to_string (priv->queued_state.state),
fc9aca
+		       nm_device_state_to_str (priv->queued_state.state),
fc9aca
 		       reason_to_string (priv->queued_state.reason),
fc9aca
 		       priv->queued_state.id,
fc9aca
 		       "replace previously queued state change");
fc9aca
@@ -12932,7 +12932,7 @@ nm_device_queue_state (NMDevice *self,
fc9aca
 	priv->queued_state.id = g_idle_add (queued_state_set, self);
fc9aca
 
fc9aca
 	_LOGD (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s",
fc9aca
-	       state_to_string (state),
fc9aca
+	       nm_device_state_to_str (state),
fc9aca
 	       reason_to_string (reason),
fc9aca
 	       priv->queued_state.id,
fc9aca
 	       "queue state change");
fc9aca
@@ -12947,7 +12947,7 @@ queued_state_clear (NMDevice *self)
fc9aca
 		return;
fc9aca
 
fc9aca
 	_LOGD (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s",
fc9aca
-	       state_to_string (priv->queued_state.state),
fc9aca
+	       nm_device_state_to_str (priv->queued_state.state),
fc9aca
 	       reason_to_string (priv->queued_state.reason),
fc9aca
 	       priv->queued_state.id,
fc9aca
 	       "clear queued state change");
fc9aca
diff --git a/src/devices/nm-device.h b/src/devices/nm-device.h
fc9aca
index 01e3938..edbb0aa 100644
fc9aca
--- a/src/devices/nm-device.h
fc9aca
+++ b/src/devices/nm-device.h
fc9aca
@@ -722,4 +722,7 @@ void nm_device_check_connectivity (NMDevice *self,
fc9aca
                                    gpointer user_data);
fc9aca
 NMConnectivityState nm_device_get_connectivity_state (NMDevice *self);
fc9aca
 
fc9aca
+
fc9aca
+const char *nm_device_state_to_str (NMDeviceState state);
fc9aca
+
fc9aca
 #endif /* __NETWORKMANAGER_DEVICE_H__ */
fc9aca
-- 
fc9aca
2.9.4
fc9aca
fc9aca
fc9aca
From c1fdd7063b9be81cbac1e256c0cca7ee8c6b4486 Mon Sep 17 00:00:00 2001
fc9aca
From: Thomas Haller <thaller@redhat.com>
fc9aca
Date: Wed, 7 Jun 2017 12:47:27 +0200
fc9aca
Subject: [PATCH 03/10] logging: add LOG3 macros
fc9aca
fc9aca
(cherry picked from commit 2ae891b5923afc2d4f2853f213d26538092b1c39)
fc9aca
(cherry picked from commit c5812a5fb9bee418e2d2c4f4ef4225d5cde86e87)
fc9aca
---
fc9aca
 src/nm-logging.h | 31 +++++++++++++++++++++++++++++++
fc9aca
 1 file changed, 31 insertions(+)
fc9aca
fc9aca
diff --git a/src/nm-logging.h b/src/nm-logging.h
fc9aca
index ff1fac7..91a4141 100644
fc9aca
--- a/src/nm-logging.h
fc9aca
+++ b/src/nm-logging.h
fc9aca
@@ -306,6 +306,37 @@ gboolean nm_logging_syslog_enabled (void);
fc9aca
 #define _LOG2t_err(errsv, ...) G_STMT_START { if (FALSE) { _NMLOG2_err (errsv, LOGL_TRACE, __VA_ARGS__); } } G_STMT_END
fc9aca
 #endif
fc9aca
 
fc9aca
+#define _NMLOG3_ENABLED(level) ( nm_logging_enabled ((level), (_NMLOG3_DOMAIN)) )
fc9aca
+
fc9aca
+#define _LOG3T(...)          _NMLOG3 (LOGL_TRACE, __VA_ARGS__)
fc9aca
+#define _LOG3D(...)          _NMLOG3 (LOGL_DEBUG, __VA_ARGS__)
fc9aca
+#define _LOG3I(...)          _NMLOG3 (LOGL_INFO , __VA_ARGS__)
fc9aca
+#define _LOG3W(...)          _NMLOG3 (LOGL_WARN , __VA_ARGS__)
fc9aca
+#define _LOG3E(...)          _NMLOG3 (LOGL_ERR  , __VA_ARGS__)
fc9aca
+
fc9aca
+#define _LOG3T_ENABLED(...)  _NMLOG3_ENABLED (LOGL_TRACE, ##__VA_ARGS__)
fc9aca
+#define _LOG3D_ENABLED(...)  _NMLOG3_ENABLED (LOGL_DEBUG, ##__VA_ARGS__)
fc9aca
+#define _LOG3I_ENABLED(...)  _NMLOG3_ENABLED (LOGL_INFO , ##__VA_ARGS__)
fc9aca
+#define _LOG3W_ENABLED(...)  _NMLOG3_ENABLED (LOGL_WARN , ##__VA_ARGS__)
fc9aca
+#define _LOG3E_ENABLED(...)  _NMLOG3_ENABLED (LOGL_ERR  , ##__VA_ARGS__)
fc9aca
+
fc9aca
+#define _LOG3T_err(errsv, ...) _NMLOG3_err (errsv, LOGL_TRACE, __VA_ARGS__)
fc9aca
+#define _LOG3D_err(errsv, ...) _NMLOG3_err (errsv, LOGL_DEBUG, __VA_ARGS__)
fc9aca
+#define _LOG3I_err(errsv, ...) _NMLOG3_err (errsv, LOGL_INFO , __VA_ARGS__)
fc9aca
+#define _LOG3W_err(errsv, ...) _NMLOG3_err (errsv, LOGL_WARN , __VA_ARGS__)
fc9aca
+#define _LOG3E_err(errsv, ...) _NMLOG3_err (errsv, LOGL_ERR  , __VA_ARGS__)
fc9aca
+
fc9aca
+#ifdef NM_MORE_LOGGING
fc9aca
+#define _LOG3t_ENABLED(...)    _NMLOG3_ENABLED (LOGL_TRACE, ##__VA_ARGS__)
fc9aca
+#define _LOG3t(...)            _NMLOG3 (LOGL_TRACE, __VA_ARGS__)
fc9aca
+#define _LOG3t_err(errsv, ...) _NMLOG3_err (errsv, LOGL_TRACE, __VA_ARGS__)
fc9aca
+#else
fc9aca
+/* still call the logging macros to get compile time checks, but they will be optimized out. */
fc9aca
+#define _LOG3t_ENABLED(...)    ( FALSE && (_NMLOG3_ENABLED (LOGL_TRACE, ##__VA_ARGS__)) )
fc9aca
+#define _LOG3t(...)            G_STMT_START { if (FALSE) { _NMLOG3 (LOGL_TRACE, __VA_ARGS__); } } G_STMT_END
fc9aca
+#define _LOG3t_err(errsv, ...) G_STMT_START { if (FALSE) { _NMLOG3_err (errsv, LOGL_TRACE, __VA_ARGS__); } } G_STMT_END
fc9aca
+#endif
fc9aca
+
fc9aca
 extern void (*_nm_logging_clear_platform_logging_cache) (void);
fc9aca
 
fc9aca
 /*****************************************************************************/
fc9aca
-- 
fc9aca
2.9.4
fc9aca
fc9aca
fc9aca
From 34397427cc2b8351f7068c911d085f946ed420bd Mon Sep 17 00:00:00 2001
fc9aca
From: Thomas Haller <thaller@redhat.com>
fc9aca
Date: Wed, 7 Jun 2017 12:46:10 +0200
fc9aca
Subject: [PATCH 04/10] manager: add logging macro _NMLOG2() for logging device
fc9aca
 messages
fc9aca
fc9aca
It unifies the way how we print the logging prefix, but also it
fc9aca
passes the ifname down for structured logging.
fc9aca
fc9aca
(cherry picked from commit 1f6078bcf5af88095d42ea2a2be002578cd3e76e)
fc9aca
(cherry picked from commit 22bf75162d96a2f6aa7084ba05d4eed21e9ca5e6)
fc9aca
---
fc9aca
 src/devices/nm-device-logging.h |  2 +-
fc9aca
 src/devices/nm-device.h         |  9 ++++
fc9aca
 src/nm-manager.c                | 97 ++++++++++++++++++++++-------------------
fc9aca
 3 files changed, 63 insertions(+), 45 deletions(-)
fc9aca
fc9aca
diff --git a/src/devices/nm-device-logging.h b/src/devices/nm-device-logging.h
fc9aca
index 5f95a91..f0c7e59 100644
fc9aca
--- a/src/devices/nm-device-logging.h
fc9aca
+++ b/src/devices/nm-device-logging.h
fc9aca
@@ -40,7 +40,7 @@ _nm_device_log_self_to_device (t *self) \
fc9aca
 		\
fc9aca
 		if (nm_logging_enabled (_level, _domain)) { \
fc9aca
 			typeof (*self) *const _self = (self); \
fc9aca
-			const char *const _ifname = _self ? nm_device_get_iface (_nm_device_log_self_to_device (_self)) : NULL; \
fc9aca
+			const char *const _ifname = _nm_device_get_iface (_nm_device_log_self_to_device (_self)); \
fc9aca
 			\
fc9aca
 			nm_log_obj (_level, _domain, \
fc9aca
 			            _ifname, NULL, \
fc9aca
diff --git a/src/devices/nm-device.h b/src/devices/nm-device.h
fc9aca
index edbb0aa..7229fb9 100644
fc9aca
--- a/src/devices/nm-device.h
fc9aca
+++ b/src/devices/nm-device.h
fc9aca
@@ -421,6 +421,15 @@ NMPlatform *nm_device_get_platform (NMDevice *self);
fc9aca
 
fc9aca
 const char *    nm_device_get_udi               (NMDevice *dev);
fc9aca
 const char *    nm_device_get_iface             (NMDevice *dev);
fc9aca
+
fc9aca
+static inline const char *
fc9aca
+_nm_device_get_iface (NMDevice *device)
fc9aca
+{
fc9aca
+	/* like nm_device_get_iface(), but gracefully accept NULL without
fc9aca
+	 * asserting. */
fc9aca
+	return device ? nm_device_get_iface (device) : NULL;
fc9aca
+}
fc9aca
+
fc9aca
 int             nm_device_get_ifindex           (NMDevice *dev);
fc9aca
 gboolean        nm_device_is_software           (NMDevice *dev);
fc9aca
 gboolean        nm_device_is_real               (NMDevice *dev);
fc9aca
diff --git a/src/nm-manager.c b/src/nm-manager.c
fc9aca
index 9a7b123..098d00d 100644
fc9aca
--- a/src/nm-manager.c
fc9aca
+++ b/src/nm-manager.c
fc9aca
@@ -222,19 +222,41 @@ NM_DEFINE_SINGLETON_INSTANCE (NMManager);
fc9aca
 #define _NMLOG_PREFIX_NAME      "manager"
fc9aca
 #define _NMLOG(level, domain, ...) \
fc9aca
     G_STMT_START { \
fc9aca
-        const NMLogLevel __level = (level); \
fc9aca
-        const NMLogDomain __domain = (domain); \
fc9aca
+        const NMLogLevel _level = (level); \
fc9aca
+        const NMLogDomain _domain = (domain); \
fc9aca
         \
fc9aca
-        if (nm_logging_enabled (__level, __domain)) { \
fc9aca
-            const NMManager *const __self = (self); \
fc9aca
-            char __sbuf[32]; \
fc9aca
+        if (nm_logging_enabled (_level, _domain)) { \
fc9aca
+            const NMManager *const _self = (self); \
fc9aca
+            char _sbuf[32]; \
fc9aca
             \
fc9aca
-            _nm_log (__level, __domain, 0, NULL, NULL, \
fc9aca
+            _nm_log (_level, _domain, 0, NULL, NULL, \
fc9aca
                      "%s%s: " _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \
fc9aca
                      _NMLOG_PREFIX_NAME, \
fc9aca
-                     (__self && __self != singleton_instance) \
fc9aca
-                         ? nm_sprintf_buf (__sbuf, "[%p]", __self) \
fc9aca
-                         : "" \
fc9aca
+                     ((_self && _self != singleton_instance) \
fc9aca
+                         ? nm_sprintf_buf (_sbuf, "[%p]", _self) \
fc9aca
+                         : "") \
fc9aca
+                     _NM_UTILS_MACRO_REST (__VA_ARGS__)); \
fc9aca
+        } \
fc9aca
+    } G_STMT_END
fc9aca
+
fc9aca
+#define _NMLOG2(level, domain, device, ...) \
fc9aca
+    G_STMT_START { \
fc9aca
+        const NMLogLevel _level = (level); \
fc9aca
+        const NMLogDomain _domain = (domain); \
fc9aca
+        \
fc9aca
+        if (nm_logging_enabled (_level, _domain)) { \
fc9aca
+            const NMManager *const _self = (self); \
fc9aca
+            const char *const _ifname = _nm_device_get_iface (device); \
fc9aca
+            char _sbuf[32]; \
fc9aca
+            \
fc9aca
+            _nm_log (_level, _domain, 0, \
fc9aca
+                     _ifname, NULL, \
fc9aca
+                     "%s%s: %s%s%s" _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \
fc9aca
+                     _NMLOG_PREFIX_NAME, \
fc9aca
+                     ((_self && _self != singleton_instance) \
fc9aca
+                         ? nm_sprintf_buf (_sbuf, "[%p]", _self) \
fc9aca
+                         : ""), \
fc9aca
+                     NM_PRINT_FMT_QUOTED (_ifname, "(", _ifname, "): ", "") \
fc9aca
                      _NM_UTILS_MACRO_REST (__VA_ARGS__)); \
fc9aca
         } \
fc9aca
     } G_STMT_END
fc9aca
@@ -983,8 +1005,8 @@ remove_device (NMManager *self,
fc9aca
 	NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
fc9aca
 	gboolean unmanage = FALSE;
fc9aca
 
fc9aca
-	_LOGD (LOGD_DEVICE, "(%s): removing device (allow_unmanage %d, managed %d)",
fc9aca
-	       nm_device_get_iface (device), allow_unmanage, nm_device_get_managed (device, FALSE));
fc9aca
+	_LOG2D (LOGD_DEVICE, device, "removing device (allow_unmanage %d, managed %d)",
fc9aca
+	        allow_unmanage, nm_device_get_managed (device, FALSE));
fc9aca
 
fc9aca
 	if (allow_unmanage && nm_device_get_managed (device, FALSE)) {
fc9aca
 
fc9aca
@@ -1481,9 +1503,7 @@ manager_update_radio_enabled (NMManager *self,
fc9aca
 		NMDevice *device = NM_DEVICE (iter->data);
fc9aca
 
fc9aca
 		if (nm_device_get_rfkill_type (device) == rstate->rtype) {
fc9aca
-			_LOGD (LOGD_RFKILL, "(%s): setting radio %s",
fc9aca
-			       nm_device_get_iface (device),
fc9aca
-			       enabled ? "enabled" : "disabled");
fc9aca
+			_LOG2D (LOGD_RFKILL, device, "setting radio %s", enabled ? "enabled" : "disabled");
fc9aca
 			nm_device_set_enabled (device, enabled);
fc9aca
 		}
fc9aca
 	}
fc9aca
@@ -1724,13 +1744,13 @@ get_existing_connection (NMManager *self,
fc9aca
 		if (master_ifindex) {
fc9aca
 			master = nm_manager_get_device_by_ifindex (self, master_ifindex);
fc9aca
 			if (!master) {
fc9aca
-				_LOGD (LOGD_DEVICE, "(%s): cannot generate connection for slave before its master (%s/%d)",
fc9aca
-				       nm_device_get_iface (device), nm_platform_link_get_name (NM_PLATFORM_GET, master_ifindex), master_ifindex);
fc9aca
+				_LOG2D (LOGD_DEVICE, device, "cannot generate connection for slave before its master (%s/%d)",
fc9aca
+				       nm_platform_link_get_name (NM_PLATFORM_GET, master_ifindex), master_ifindex);
fc9aca
 				return NULL;
fc9aca
 			}
fc9aca
 			if (!nm_device_get_act_request (master)) {
fc9aca
-				_LOGD (LOGD_DEVICE, "(%s): cannot generate connection for slave before master %s activates",
fc9aca
-				       nm_device_get_iface (device), nm_device_get_iface (master));
fc9aca
+				_LOG2D (LOGD_DEVICE, device, "cannot generate connection for slave before master %s activates",
fc9aca
+				       nm_device_get_iface (master));
fc9aca
 				return NULL;
fc9aca
 			}
fc9aca
 		}
fc9aca
@@ -1811,20 +1831,18 @@ get_existing_connection (NMManager *self,
fc9aca
 	}
fc9aca
 
fc9aca
 	if (matched) {
fc9aca
-		_LOGI (LOGD_DEVICE, "(%s): found matching connection '%s' (%s)%s",
fc9aca
-		       nm_device_get_iface (device),
fc9aca
-		       nm_settings_connection_get_id (matched),
fc9aca
-		       nm_settings_connection_get_uuid (matched),
fc9aca
-		       assume_state_connection_uuid && nm_streq (assume_state_connection_uuid, nm_settings_connection_get_uuid (matched))
fc9aca
-		           ? " (indicated)" : " (guessed)");
fc9aca
+		_LOG2I (LOGD_DEVICE, device, "found matching connection '%s' (%s)%s",
fc9aca
+		        nm_settings_connection_get_id (matched),
fc9aca
+		        nm_settings_connection_get_uuid (matched),
fc9aca
+		        assume_state_connection_uuid && nm_streq (assume_state_connection_uuid, nm_settings_connection_get_uuid (matched))
fc9aca
+		            ? " (indicated)" : " (guessed)");
fc9aca
 		g_object_unref (connection);
fc9aca
 		nm_device_assume_state_reset (device);
fc9aca
 		return matched;
fc9aca
 	}
fc9aca
 
fc9aca
-	_LOGD (LOGD_DEVICE, "(%s): generated connection '%s'",
fc9aca
-	       nm_device_get_iface (device),
fc9aca
-	       nm_connection_get_id (connection));
fc9aca
+	_LOG2D (LOGD_DEVICE, device, "generated connection '%s'",
fc9aca
+	        nm_connection_get_id (connection));
fc9aca
 
fc9aca
 	nm_device_assume_state_reset (device);
fc9aca
 
fc9aca
@@ -1837,8 +1855,7 @@ get_existing_connection (NMManager *self,
fc9aca
 		if (out_generated)
fc9aca
 			*out_generated = TRUE;
fc9aca
 	} else {
fc9aca
-		_LOGW (LOGD_SETTINGS, "(%s) Couldn't save generated connection '%s': %s",
fc9aca
-		       nm_device_get_iface (device),
fc9aca
+		_LOG2W (LOGD_SETTINGS, device, "Couldn't save generated connection '%s': %s",
fc9aca
 		       nm_connection_get_id (connection),
fc9aca
 		       error->message);
fc9aca
 		g_clear_error (&error);
fc9aca
@@ -1873,13 +1890,11 @@ recheck_assume_connection (NMManager *self,
fc9aca
 
fc9aca
 	connection = get_existing_connection (self, device, &generated);
fc9aca
 	if (!connection) {
fc9aca
-		_LOGD (LOGD_DEVICE, "(%s): can't assume; no connection",
fc9aca
-		       nm_device_get_iface (device));
fc9aca
+		_LOG2D (LOGD_DEVICE, device, "can't assume; no connection");
fc9aca
 		return FALSE;
fc9aca
 	}
fc9aca
 
fc9aca
-	_LOGD (LOGD_DEVICE, "(%s): will attempt to assume connection",
fc9aca
-	       nm_device_get_iface (device));
fc9aca
+	_LOG2D (LOGD_DEVICE, device, "will attempt to assume connection");
fc9aca
 
fc9aca
 	nm_device_sys_iface_state_set (device,
fc9aca
 	                               generated
fc9aca
@@ -1926,9 +1941,7 @@ recheck_assume_connection (NMManager *self,
fc9aca
 			}
fc9aca
 
fc9aca
 			if (generated) {
fc9aca
-				_LOGD (LOGD_DEVICE, "(%s): connection assumption failed. Deleting generated connection",
fc9aca
-				       nm_device_get_iface (device));
fc9aca
-
fc9aca
+				_LOG2D (LOGD_DEVICE, device, "connection assumption failed. Deleting generated connection");
fc9aca
 				nm_settings_connection_delete (connection, NULL, NULL);
fc9aca
 			} else {
fc9aca
 				if (nm_device_sys_iface_state_get (device) == NM_DEVICE_SYS_IFACE_STATE_ASSUME)
fc9aca
@@ -2182,7 +2195,7 @@ add_device (NMManager *self, NMDevice *device, GError **error)
fc9aca
 	                               manager_sleeping (self));
fc9aca
 
fc9aca
 	dbus_path = nm_exported_object_export (NM_EXPORTED_OBJECT (device));
fc9aca
-	_LOGI (LOGD_DEVICE, "(%s): new %s device (%s)", iface, type_desc, dbus_path);
fc9aca
+	_LOG2I (LOGD_DEVICE, device, "new %s device (%s)", type_desc, dbus_path);
fc9aca
 
fc9aca
 	nm_settings_device_added (priv->settings, device);
fc9aca
 	g_signal_emit (self, signals[INTERNAL_DEVICE_ADDED], 0, device);
fc9aca
@@ -2221,8 +2234,7 @@ factory_device_added_cb (NMDeviceFactory *factory,
fc9aca
 		add_device (self, device, NULL);
fc9aca
 		_device_realize_finish (self, device, NULL);
fc9aca
 	} else {
fc9aca
-		_LOGW (LOGD_DEVICE, "(%s): failed to realize device: %s",
fc9aca
-		       nm_device_get_iface (device), error->message);
fc9aca
+		_LOG2W (LOGD_DEVICE, device, "failed to realize device: %s", error->message);
fc9aca
 		g_error_free (error);
fc9aca
 	}
fc9aca
 }
fc9aca
@@ -2414,9 +2426,7 @@ _platform_link_cb_idle (PlatformLinkCbData *data)
fc9aca
 				nm_device_sys_iface_state_set (device, NM_DEVICE_SYS_IFACE_STATE_REMOVED);
fc9aca
 				/* Our software devices stick around until their connection is removed */
fc9aca
 				if (!nm_device_unrealize (device, FALSE, &error)) {
fc9aca
-					_LOGW (LOGD_DEVICE, "(%s): failed to unrealize: %s",
fc9aca
-					       nm_device_get_iface (device),
fc9aca
-					       error->message);
fc9aca
+					_LOG2W (LOGD_DEVICE, device, "failed to unrealize: %s", error->message);
fc9aca
 					g_clear_error (&error);
fc9aca
 					remove_device (self, device, FALSE, TRUE);
fc9aca
 				}
fc9aca
@@ -5172,8 +5182,7 @@ handle_firmware_changed (gpointer user_data)
fc9aca
 
fc9aca
 		if (   nm_device_get_firmware_missing (candidate)
fc9aca
 		    && (state == NM_DEVICE_STATE_UNAVAILABLE)) {
fc9aca
-			_LOGI (LOGD_CORE, "(%s): firmware may now be available",
fc9aca
-			       nm_device_get_iface (candidate));
fc9aca
+			_LOG2I (LOGD_CORE, candidate, "firmware may now be available");
fc9aca
 
fc9aca
 			/* Re-set unavailable state to try bringing the device up again */
fc9aca
 			nm_device_state_changed (candidate,
fc9aca
-- 
fc9aca
2.9.4
fc9aca
fc9aca
fc9aca
From da914ee814f86d87eda5676fa7a1cbf5bcbf264e Mon Sep 17 00:00:00 2001
fc9aca
From: Thomas Haller <thaller@redhat.com>
fc9aca
Date: Wed, 7 Jun 2017 12:46:10 +0200
fc9aca
Subject: [PATCH 05/10] manager: add logging macro _NMLOG3() for logging
fc9aca
 connection messages
fc9aca
fc9aca
It unifies the way how we print the logging prefix, but also it
fc9aca
passes the con_uuid down for structured logging.
fc9aca
fc9aca
(cherry picked from commit 6962f14d4a74c192a81604b7de40a94d13530dc6)
fc9aca
(cherry picked from commit 36b99ccf5f430f0e70478e5bae314e7893850cde)
fc9aca
---
fc9aca
 libnm-core/nm-core-internal.h | 18 ++++++++++++++++
fc9aca
 src/nm-manager.c              | 50 +++++++++++++++++++++++++++++++------------
fc9aca
 2 files changed, 54 insertions(+), 14 deletions(-)
fc9aca
fc9aca
diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h
fc9aca
index ac292bf..91967ce 100644
fc9aca
--- a/libnm-core/nm-core-internal.h
fc9aca
+++ b/libnm-core/nm-core-internal.h
fc9aca
@@ -343,6 +343,24 @@ _nm_setting_bond_get_option_type (NMSettingBond *setting, const char *name);
fc9aca
 
fc9aca
 /*****************************************************************************/
fc9aca
 
fc9aca
+/* nm_connection_get_uuid() asserts against NULL, which is the right thing to
fc9aca
+ * do in order to catch bugs. However, sometimes that behavior is inconvenient.
fc9aca
+ * Just try or return NULL. */
fc9aca
+
fc9aca
+static inline const char *
fc9aca
+_nm_connection_get_id (NMConnection *connection)
fc9aca
+{
fc9aca
+	return connection ? nm_connection_get_id (connection) : NULL;
fc9aca
+}
fc9aca
+
fc9aca
+static inline const char *
fc9aca
+_nm_connection_get_uuid (NMConnection *connection)
fc9aca
+{
fc9aca
+	return connection ? nm_connection_get_uuid (connection) : NULL;
fc9aca
+}
fc9aca
+
fc9aca
+/*****************************************************************************/
fc9aca
+
fc9aca
 typedef enum {
fc9aca
 	NM_BOND_MODE_UNKNOWN = 0,
fc9aca
 	NM_BOND_MODE_ROUNDROBIN,
fc9aca
diff --git a/src/nm-manager.c b/src/nm-manager.c
fc9aca
index 098d00d..da94aac 100644
fc9aca
--- a/src/nm-manager.c
fc9aca
+++ b/src/nm-manager.c
fc9aca
@@ -261,6 +261,29 @@ NM_DEFINE_SINGLETON_INSTANCE (NMManager);
fc9aca
         } \
fc9aca
     } G_STMT_END
fc9aca
 
fc9aca
+#define _NMLOG3(level, domain, connection, ...) \
fc9aca
+    G_STMT_START { \
fc9aca
+        const NMLogLevel _level = (level); \
fc9aca
+        const NMLogDomain _domain = (domain); \
fc9aca
+        \
fc9aca
+        if (nm_logging_enabled (_level, _domain)) { \
fc9aca
+            const NMManager *const _self = (self); \
fc9aca
+            NMConnection *const _connection = (connection); \
fc9aca
+            const char *const _con_id = _nm_connection_get_id (_connection); \
fc9aca
+            char _sbuf[32]; \
fc9aca
+            \
fc9aca
+            _nm_log (_level, _domain, 0, \
fc9aca
+                     NULL, _nm_connection_get_uuid (_connection), \
fc9aca
+                     "%s%s: %s%s%s" _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \
fc9aca
+                     _NMLOG_PREFIX_NAME, \
fc9aca
+                     ((_self && _self != singleton_instance) \
fc9aca
+                         ? nm_sprintf_buf (_sbuf, "[%p]", _self) \
fc9aca
+                         : ""), \
fc9aca
+                     NM_PRINT_FMT_QUOTED (_con_id, "(", _con_id, ") ", "") \
fc9aca
+                     _NM_UTILS_MACRO_REST (__VA_ARGS__)); \
fc9aca
+        } \
fc9aca
+    } G_STMT_END
fc9aca
+
fc9aca
 /*****************************************************************************/
fc9aca
 
fc9aca
 static NM_CACHED_QUARK_FCN ("autoconnect-root", autoconnect_root_quark)
fc9aca
@@ -1260,8 +1283,8 @@ system_create_virtual_device (NMManager *self, NMConnection *connection)
fc9aca
 
fc9aca
 	iface = nm_manager_get_connection_iface (self, connection, &parent, &error);
fc9aca
 	if (!iface) {
fc9aca
-		_LOGD (LOGD_DEVICE, "(%s) can't get a name of a virtual device: %s",
fc9aca
-		       nm_connection_get_id (connection), error->message);
fc9aca
+		_LOG3D (LOGD_DEVICE, connection, "can't get a name of a virtual device: %s",
fc9aca
+		        error->message);
fc9aca
 		g_error_free (error);
fc9aca
 		return NULL;
fc9aca
 	}
fc9aca
@@ -1272,8 +1295,8 @@ system_create_virtual_device (NMManager *self, NMConnection *connection)
fc9aca
 
fc9aca
 		if (nm_device_check_connection_compatible (candidate, connection)) {
fc9aca
 			if (nm_device_is_real (candidate)) {
fc9aca
-				_LOGD (LOGD_DEVICE, "(%s) already created virtual interface name %s",
fc9aca
-				       nm_connection_get_id (connection), iface);
fc9aca
+				_LOG3D (LOGD_DEVICE, connection, "already created virtual interface name %s",
fc9aca
+				       iface);
fc9aca
 				return NULL;
fc9aca
 			}
fc9aca
 
fc9aca
@@ -1287,27 +1310,26 @@ system_create_virtual_device (NMManager *self, NMConnection *connection)
fc9aca
 
fc9aca
 		factory = nm_device_factory_manager_find_factory_for_connection (connection);
fc9aca
 		if (!factory) {
fc9aca
-			_LOGE (LOGD_DEVICE, "(%s:%s) NetworkManager plugin for '%s' unavailable",
fc9aca
-			       nm_connection_get_id (connection), iface,
fc9aca
+			_LOG3E (LOGD_DEVICE, connection, "(%s) NetworkManager plugin for '%s' unavailable",
fc9aca
+			       iface,
fc9aca
 			       nm_connection_get_connection_type (connection));
fc9aca
 			return NULL;
fc9aca
 		}
fc9aca
 
fc9aca
 		device = nm_device_factory_create_device (factory, iface, NULL, connection, NULL, &error);
fc9aca
 		if (!device) {
fc9aca
-			_LOGW (LOGD_DEVICE, "(%s) factory can't create the device: %s",
fc9aca
-			       nm_connection_get_id (connection), error->message);
fc9aca
+			_LOG3W (LOGD_DEVICE, connection, "factory can't create the device: %s",
fc9aca
+			        error->message);
fc9aca
 			g_error_free (error);
fc9aca
 			return NULL;
fc9aca
 		}
fc9aca
 
fc9aca
-		_LOGD (LOGD_DEVICE, "(%s) create virtual device %s",
fc9aca
-		       nm_connection_get_id (connection),
fc9aca
+		_LOG3D (LOGD_DEVICE, connection, "create virtual device %s",
fc9aca
 		       nm_device_get_iface (device));
fc9aca
 
fc9aca
 		if (!add_device (self, device, &error)) {
fc9aca
-			_LOGW (LOGD_DEVICE, "(%s) can't register the device with manager: %s",
fc9aca
-			       nm_connection_get_id (connection), error->message);
fc9aca
+			_LOG3W (LOGD_DEVICE, connection, "can't register the device with manager: %s",
fc9aca
+			        error->message);
fc9aca
 			g_error_free (error);
fc9aca
 			g_object_unref (device);
fc9aca
 			return NULL;
fc9aca
@@ -1335,8 +1357,8 @@ system_create_virtual_device (NMManager *self, NMConnection *connection)
fc9aca
 
fc9aca
 		/* Create any backing resources the device needs */
fc9aca
 		if (!nm_device_create_and_realize (device, connection, parent, &error)) {
fc9aca
-			_LOGW (LOGD_DEVICE, "(%s) couldn't create the device: %s",
fc9aca
-			       nm_connection_get_id (connection), error->message);
fc9aca
+			_LOG3W (LOGD_DEVICE, connection, "couldn't create the device: %s",
fc9aca
+			        error->message);
fc9aca
 			g_error_free (error);
fc9aca
 			remove_device (self, device, FALSE, TRUE);
fc9aca
 			return NULL;
fc9aca
-- 
fc9aca
2.9.4
fc9aca
fc9aca
fc9aca
From b4dc736b2b6c60324461e128b9f57364d127cc6a Mon Sep 17 00:00:00 2001
fc9aca
From: Thomas Haller <thaller@redhat.com>
fc9aca
Date: Wed, 7 Jun 2017 13:13:55 +0200
fc9aca
Subject: [PATCH 06/10] manager: add "rfkill" prefix to related logging
fc9aca
 messages
fc9aca
fc9aca
(cherry picked from commit dd53c879d2395de667fefb9bd8fc1125b85a7977)
fc9aca
(cherry picked from commit 01fd9df6e589ef623a069cb6c46230ba77ad6b0a)
fc9aca
---
fc9aca
 src/nm-manager.c | 22 +++++++++++-----------
fc9aca
 1 file changed, 11 insertions(+), 11 deletions(-)
fc9aca
fc9aca
diff --git a/src/nm-manager.c b/src/nm-manager.c
fc9aca
index da94aac..d7437e6 100644
fc9aca
--- a/src/nm-manager.c
fc9aca
+++ b/src/nm-manager.c
fc9aca
@@ -1525,7 +1525,7 @@ manager_update_radio_enabled (NMManager *self,
fc9aca
 		NMDevice *device = NM_DEVICE (iter->data);
fc9aca
 
fc9aca
 		if (nm_device_get_rfkill_type (device) == rstate->rtype) {
fc9aca
-			_LOG2D (LOGD_RFKILL, device, "setting radio %s", enabled ? "enabled" : "disabled");
fc9aca
+			_LOG2D (LOGD_RFKILL, device, "rfkill: setting radio %s", enabled ? "enabled" : "disabled");
fc9aca
 			nm_device_set_enabled (device, enabled);
fc9aca
 		}
fc9aca
 	}
fc9aca
@@ -1570,14 +1570,14 @@ manager_rfkill_update_one_type (NMManager *self,
fc9aca
 
fc9aca
 	/* Print out all states affecting device enablement */
fc9aca
 	if (rstate->desc) {
fc9aca
-		_LOGD (LOGD_RFKILL, "%s hw-enabled %d sw-enabled %d",
fc9aca
+		_LOGD (LOGD_RFKILL, "rfkill: %s hw-enabled %d sw-enabled %d",
fc9aca
 		       rstate->desc, rstate->hw_enabled, rstate->sw_enabled);
fc9aca
 	}
fc9aca
 
fc9aca
 	/* Log new killswitch state */
fc9aca
 	new_rfkilled = rstate->hw_enabled && rstate->sw_enabled;
fc9aca
 	if (old_rfkilled != new_rfkilled) {
fc9aca
-		_LOGI (LOGD_RFKILL, "%s now %s by radio killswitch",
fc9aca
+		_LOGI (LOGD_RFKILL, "rfkill: %s now %s by radio killswitch",
fc9aca
 		       rstate->desc,
fc9aca
 		       new_rfkilled ? "enabled" : "disabled");
fc9aca
 	}
fc9aca
@@ -4531,7 +4531,7 @@ do_sleep_wake (NMManager *self, gboolean sleeping_changed)
fc9aca
 				gboolean enabled = radio_enabled_for_rstate (rstate, TRUE);
fc9aca
 
fc9aca
 				if (rstate->desc) {
fc9aca
-					_LOGD (LOGD_RFKILL, "%s %s devices (hw_enabled %d, sw_enabled %d, user_enabled %d)",
fc9aca
+					_LOGD (LOGD_RFKILL, "rfkill: %s %s devices (hw_enabled %d, sw_enabled %d, user_enabled %d)",
fc9aca
 					       enabled ? "enabling" : "disabling",
fc9aca
 					       rstate->desc, rstate->hw_enabled, rstate->sw_enabled, rstate->user_enabled);
fc9aca
 				}
fc9aca
@@ -5128,7 +5128,7 @@ nm_manager_start (NMManager *self, GError **error)
fc9aca
 		update_rstate_from_rfkill (priv->rfkill_mgr, rstate);
fc9aca
 
fc9aca
 		if (rstate->desc) {
fc9aca
-			_LOGI (LOGD_RFKILL, "%s %s by radio killswitch; %s by state file",
fc9aca
+			_LOGI (LOGD_RFKILL, "rfkill: %s %s by radio killswitch; %s by state file",
fc9aca
 			       rstate->desc,
fc9aca
 			       (rstate->hw_enabled && rstate->sw_enabled) ? "enabled" : "disabled",
fc9aca
 			       rstate->user_enabled ? "enabled" : "disabled");
fc9aca
@@ -5836,12 +5836,12 @@ rfkill_change (NMManager *self, const char *desc, RfKillType rtype, gboolean ena
fc9aca
 	fd = open ("/dev/rfkill", O_RDWR | O_CLOEXEC);
fc9aca
 	if (fd < 0) {
fc9aca
 		if (errno == EACCES)
fc9aca
-			_LOGW (LOGD_RFKILL, "(%s): failed to open killswitch device", desc);
fc9aca
+			_LOGW (LOGD_RFKILL, "rfkill: (%s): failed to open killswitch device", desc);
fc9aca
 		return;
fc9aca
 	}
fc9aca
 
fc9aca
 	if (fcntl (fd, F_SETFL, O_NONBLOCK) < 0) {
fc9aca
-		_LOGW (LOGD_RFKILL, "(%s): failed to set killswitch device for "
fc9aca
+		_LOGW (LOGD_RFKILL, "rfkill: (%s): failed to set killswitch device for "
fc9aca
 		       "non-blocking operation", desc);
fc9aca
 		close (fd);
fc9aca
 		return;
fc9aca
@@ -5863,14 +5863,14 @@ rfkill_change (NMManager *self, const char *desc, RfKillType rtype, gboolean ena
fc9aca
 
fc9aca
 	len = write (fd, &event, sizeof (event));
fc9aca
 	if (len < 0) {
fc9aca
-		_LOGW (LOGD_RFKILL, "(%s): failed to change WiFi killswitch state: (%d) %s",
fc9aca
+		_LOGW (LOGD_RFKILL, "rfkill: (%s): failed to change WiFi killswitch state: (%d) %s",
fc9aca
 		       desc, errno, g_strerror (errno));
fc9aca
 	} else if (len == sizeof (event)) {
fc9aca
-		_LOGI (LOGD_RFKILL, "%s hardware radio set %s",
fc9aca
+		_LOGI (LOGD_RFKILL, "rfkill: %s hardware radio set %s",
fc9aca
 		       desc, enabled ? "enabled" : "disabled");
fc9aca
 	} else {
fc9aca
 		/* Failed to write full structure */
fc9aca
-		_LOGW (LOGD_RFKILL, "(%s): failed to change WiFi killswitch state", desc);
fc9aca
+		_LOGW (LOGD_RFKILL, "rfkill: (%s): failed to change WiFi killswitch state", desc);
fc9aca
 	}
fc9aca
 
fc9aca
 	close (fd);
fc9aca
@@ -5889,7 +5889,7 @@ manager_radio_user_toggled (NMManager *self,
fc9aca
 		return;
fc9aca
 
fc9aca
 	if (rstate->desc) {
fc9aca
-		_LOGD (LOGD_RFKILL, "(%s): setting radio %s by user",
fc9aca
+		_LOGD (LOGD_RFKILL, "rfkill: (%s): setting radio %s by user",
fc9aca
 		       rstate->desc,
fc9aca
 		       enabled ? "enabled" : "disabled");
fc9aca
 	}
fc9aca
-- 
fc9aca
2.9.4
fc9aca
fc9aca
fc9aca
From cf805b925c93cae145e354afd0cc05844ec3cd62 Mon Sep 17 00:00:00 2001
fc9aca
From: Thomas Haller <thaller@redhat.com>
fc9aca
Date: Wed, 7 Jun 2017 13:30:08 +0200
fc9aca
Subject: [PATCH 07/10] manager: add more logging to
fc9aca
 recheck_assume_connection()
fc9aca
fc9aca
and give all lines a logging prefix.
fc9aca
fc9aca
(cherry picked from commit 94534e032788e69690c2affcd09d1f306ffa3840)
fc9aca
(cherry picked from commit 7e2d64a8b23e4606f15fc66ebf953d5effb16ac3)
fc9aca
---
fc9aca
 src/nm-manager.c | 13 +++++++++----
fc9aca
 1 file changed, 9 insertions(+), 4 deletions(-)
fc9aca
fc9aca
diff --git a/src/nm-manager.c b/src/nm-manager.c
fc9aca
index d7437e6..3c190eb 100644
fc9aca
--- a/src/nm-manager.c
fc9aca
+++ b/src/nm-manager.c
fc9aca
@@ -1901,22 +1901,27 @@ recheck_assume_connection (NMManager *self,
fc9aca
 
fc9aca
 	if (!nm_device_get_managed (device, FALSE)) {
fc9aca
 		nm_device_assume_state_reset (device);
fc9aca
+		_LOG2D (LOGD_DEVICE, device, "assume: don't assume because %s", "not managed");
fc9aca
 		return FALSE;
fc9aca
 	}
fc9aca
 
fc9aca
 	state = nm_device_get_state (device);
fc9aca
 	if (state > NM_DEVICE_STATE_DISCONNECTED) {
fc9aca
 		nm_device_assume_state_reset (device);
fc9aca
+		_LOG2D (LOGD_DEVICE, device, "assume: don't assume due to device state %s",
fc9aca
+		        nm_device_state_to_str (state));
fc9aca
 		return FALSE;
fc9aca
 	}
fc9aca
 
fc9aca
 	connection = get_existing_connection (self, device, &generated);
fc9aca
 	if (!connection) {
fc9aca
-		_LOG2D (LOGD_DEVICE, device, "can't assume; no connection");
fc9aca
+		_LOG2D (LOGD_DEVICE, device, "assume: don't assume because %s", "no connection was generated");
fc9aca
 		return FALSE;
fc9aca
 	}
fc9aca
 
fc9aca
-	_LOG2D (LOGD_DEVICE, device, "will attempt to assume connection");
fc9aca
+	_LOG2D (LOGD_DEVICE, device, "assume: will attempt to assume %sconnection %s",
fc9aca
+	        generated ? "generated " : "",
fc9aca
+	        nm_connection_get_uuid (NM_CONNECTION (connection)));
fc9aca
 
fc9aca
 	nm_device_sys_iface_state_set (device,
fc9aca
 	                               generated
fc9aca
@@ -1951,7 +1956,7 @@ recheck_assume_connection (NMManager *self,
fc9aca
 		                                 &error);
fc9aca
 
fc9aca
 		if (!active) {
fc9aca
-			_LOGW (LOGD_DEVICE, "assumed connection %s failed to activate: %s",
fc9aca
+			_LOGW (LOGD_DEVICE, "assume: assumed connection %s failed to activate: %s",
fc9aca
 			       nm_connection_get_path (NM_CONNECTION (connection)),
fc9aca
 			       error->message);
fc9aca
 			g_error_free (error);
fc9aca
@@ -1963,7 +1968,7 @@ recheck_assume_connection (NMManager *self,
fc9aca
 			}
fc9aca
 
fc9aca
 			if (generated) {
fc9aca
-				_LOG2D (LOGD_DEVICE, device, "connection assumption failed. Deleting generated connection");
fc9aca
+				_LOG2D (LOGD_DEVICE, device, "assume: deleting generated connection after assuming failed");
fc9aca
 				nm_settings_connection_delete (connection, NULL, NULL);
fc9aca
 			} else {
fc9aca
 				if (nm_device_sys_iface_state_get (device) == NM_DEVICE_SYS_IFACE_STATE_ASSUME)
fc9aca
-- 
fc9aca
2.9.4
fc9aca
fc9aca
fc9aca
From 7efa2f15760e2ae7e550ad11f0bb49e66748334b Mon Sep 17 00:00:00 2001
fc9aca
From: Thomas Haller <thaller@redhat.com>
fc9aca
Date: Wed, 7 Jun 2017 13:44:07 +0200
fc9aca
Subject: [PATCH 08/10] device: remove logging for emitting RECHECK_ASSUME
fc9aca
 signal
fc9aca
fc9aca
The device's RECHECK_ASSUME signal has only NMManager as subscriber
fc9aca
and it immediately calls recheck_assume_connection().
fc9aca
fc9aca
With the previous commit, recheck_assume_connection() always logs
fc9aca
a debug message, so we don't need this duplicate message anymore.
fc9aca
fc9aca
(cherry picked from commit cc47a6a8b2c16b0ea1df95384b794a2e8d47cfeb)
fc9aca
(cherry picked from commit c254277f409f629fe0b728e9a2f87c418181762d)
fc9aca
---
fc9aca
 src/devices/nm-device.c | 5 ++---
fc9aca
 1 file changed, 2 insertions(+), 3 deletions(-)
fc9aca
fc9aca
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
fc9aca
index fdf88c9..36ba9f9 100644
fc9aca
--- a/src/devices/nm-device.c
fc9aca
+++ b/src/devices/nm-device.c
fc9aca
@@ -4392,10 +4392,9 @@ nm_device_emit_recheck_assume (gpointer user_data)
fc9aca
 	priv = NM_DEVICE_GET_PRIVATE (self);
fc9aca
 
fc9aca
 	priv->recheck_assume_id = 0;
fc9aca
-	if (!nm_device_get_act_request (self)) {
fc9aca
-		_LOGD (LOGD_DEVICE, "emit RECHECK_ASSUME signal");
fc9aca
+	if (!nm_device_get_act_request (self))
fc9aca
 		g_signal_emit (self, signals[RECHECK_ASSUME], 0);
fc9aca
-	}
fc9aca
+
fc9aca
 	return G_SOURCE_REMOVE;
fc9aca
 }
fc9aca
 
fc9aca
-- 
fc9aca
2.9.4
fc9aca
fc9aca
fc9aca
From cb7d9f5ed5ccae171712d3cdc109978bb34f5607 Mon Sep 17 00:00:00 2001
fc9aca
From: Thomas Haller <thaller@redhat.com>
fc9aca
Date: Wed, 7 Jun 2017 16:41:06 +0200
fc9aca
Subject: [PATCH 09/10] manager: cleanup logging message during
fc9aca
 recheck_assume_connection()/get_existing_connection()
fc9aca
fc9aca
recheck_assume_connection() calls get_existing_connection(). We want *one* logging
fc9aca
message telling what's happening. Let get_existing_connection() log "assume:"
fc9aca
messages and remove duplicate messages from recheck_assume_connection().
fc9aca
fc9aca
(cherry picked from commit 962f8f42d9d04eeb794d931ccaad775ca05233e2)
fc9aca
(cherry picked from commit 70b4684d7e975e2ce120e11c27b8d3f7ac2e0cc2)
fc9aca
---
fc9aca
 src/nm-manager.c | 52 ++++++++++++++++++++++++----------------------------
fc9aca
 1 file changed, 24 insertions(+), 28 deletions(-)
fc9aca
fc9aca
diff --git a/src/nm-manager.c b/src/nm-manager.c
fc9aca
index 3c190eb..fa220f1 100644
fc9aca
--- a/src/nm-manager.c
fc9aca
+++ b/src/nm-manager.c
fc9aca
@@ -1744,7 +1744,7 @@ get_existing_connection (NMManager *self,
fc9aca
                          gboolean *out_generated)
fc9aca
 {
fc9aca
 	NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
fc9aca
-	NMConnection *connection = NULL;
fc9aca
+	gs_unref_object NMConnection *connection = NULL;
fc9aca
 	NMSettingsConnection *added = NULL;
fc9aca
 	GError *error = NULL;
fc9aca
 	NMDevice *master = NULL;
fc9aca
@@ -1766,13 +1766,15 @@ get_existing_connection (NMManager *self,
fc9aca
 		if (master_ifindex) {
fc9aca
 			master = nm_manager_get_device_by_ifindex (self, master_ifindex);
fc9aca
 			if (!master) {
fc9aca
-				_LOG2D (LOGD_DEVICE, device, "cannot generate connection for slave before its master (%s/%d)",
fc9aca
-				       nm_platform_link_get_name (NM_PLATFORM_GET, master_ifindex), master_ifindex);
fc9aca
+				_LOG2D (LOGD_DEVICE, device, "assume: don't assume because "
fc9aca
+				        "cannot generate connection for slave before its master (%s/%d)",
fc9aca
+				        nm_platform_link_get_name (NM_PLATFORM_GET, master_ifindex), master_ifindex);
fc9aca
 				return NULL;
fc9aca
 			}
fc9aca
 			if (!nm_device_get_act_request (master)) {
fc9aca
-				_LOG2D (LOGD_DEVICE, device, "cannot generate connection for slave before master %s activates",
fc9aca
-				       nm_device_get_iface (master));
fc9aca
+				_LOG2D (LOGD_DEVICE, device, "assume: don't assume because "
fc9aca
+				        "cannot generate connection for slave before master %s activates",
fc9aca
+				        nm_device_get_iface (master));
fc9aca
 				return NULL;
fc9aca
 			}
fc9aca
 		}
fc9aca
@@ -1788,6 +1790,7 @@ get_existing_connection (NMManager *self,
fc9aca
 	if (!connection) {
fc9aca
 		if (!maybe_later)
fc9aca
 			nm_device_assume_state_reset (device);
fc9aca
+		_LOG2D (LOGD_DEVICE, device, "assume: don't assume due to failure to generate connection");
fc9aca
 		return NULL;
fc9aca
 	}
fc9aca
 
fc9aca
@@ -1853,38 +1856,36 @@ get_existing_connection (NMManager *self,
fc9aca
 	}
fc9aca
 
fc9aca
 	if (matched) {
fc9aca
-		_LOG2I (LOGD_DEVICE, device, "found matching connection '%s' (%s)%s",
fc9aca
+		_LOG2I (LOGD_DEVICE, device, "assume: will attempt to assume matching connection '%s' (%s)%s",
fc9aca
 		        nm_settings_connection_get_id (matched),
fc9aca
 		        nm_settings_connection_get_uuid (matched),
fc9aca
 		        assume_state_connection_uuid && nm_streq (assume_state_connection_uuid, nm_settings_connection_get_uuid (matched))
fc9aca
 		            ? " (indicated)" : " (guessed)");
fc9aca
-		g_object_unref (connection);
fc9aca
 		nm_device_assume_state_reset (device);
fc9aca
 		return matched;
fc9aca
 	}
fc9aca
 
fc9aca
-	_LOG2D (LOGD_DEVICE, device, "generated connection '%s'",
fc9aca
-	        nm_connection_get_id (connection));
fc9aca
+	_LOG2D (LOGD_DEVICE, device, "assume: generated connection '%s' (%s)",
fc9aca
+	        nm_connection_get_id (connection),
fc9aca
+	        nm_connection_get_uuid (connection));
fc9aca
 
fc9aca
 	nm_device_assume_state_reset (device);
fc9aca
 
fc9aca
 	added = nm_settings_add_connection (priv->settings, connection, FALSE, &error);
fc9aca
-	if (added) {
fc9aca
-		nm_settings_connection_set_flags (NM_SETTINGS_CONNECTION (added),
fc9aca
-		                                  NM_SETTINGS_CONNECTION_FLAGS_NM_GENERATED |
fc9aca
-		                                  NM_SETTINGS_CONNECTION_FLAGS_VOLATILE,
fc9aca
-		                                  TRUE);
fc9aca
-		if (out_generated)
fc9aca
-			*out_generated = TRUE;
fc9aca
-	} else {
fc9aca
-		_LOG2W (LOGD_SETTINGS, device, "Couldn't save generated connection '%s': %s",
fc9aca
+	if (!added) {
fc9aca
+		_LOG2W (LOGD_SETTINGS, device, "assume: failure to save generated connection '%s': %s",
fc9aca
 		       nm_connection_get_id (connection),
fc9aca
 		       error->message);
fc9aca
-		g_clear_error (&error);
fc9aca
+		g_error_free (error);
fc9aca
+		return NULL;
fc9aca
 	}
fc9aca
-	g_object_unref (connection);
fc9aca
 
fc9aca
-	return added ? added : NULL;
fc9aca
+	nm_settings_connection_set_flags (NM_SETTINGS_CONNECTION (added),
fc9aca
+	                                  NM_SETTINGS_CONNECTION_FLAGS_NM_GENERATED |
fc9aca
+	                                  NM_SETTINGS_CONNECTION_FLAGS_VOLATILE,
fc9aca
+	                                  TRUE);
fc9aca
+	NM_SET_OUT (out_generated, TRUE);
fc9aca
+	return added;
fc9aca
 }
fc9aca
 
fc9aca
 static gboolean
fc9aca
@@ -1914,14 +1915,9 @@ recheck_assume_connection (NMManager *self,
fc9aca
 	}
fc9aca
 
fc9aca
 	connection = get_existing_connection (self, device, &generated);
fc9aca
-	if (!connection) {
fc9aca
-		_LOG2D (LOGD_DEVICE, device, "assume: don't assume because %s", "no connection was generated");
fc9aca
+	/* log  no reason. get_existing_connection() already does it. */
fc9aca
+	if (!connection)
fc9aca
 		return FALSE;
fc9aca
-	}
fc9aca
-
fc9aca
-	_LOG2D (LOGD_DEVICE, device, "assume: will attempt to assume %sconnection %s",
fc9aca
-	        generated ? "generated " : "",
fc9aca
-	        nm_connection_get_uuid (NM_CONNECTION (connection)));
fc9aca
 
fc9aca
 	nm_device_sys_iface_state_set (device,
fc9aca
 	                               generated
fc9aca
-- 
fc9aca
2.9.4
fc9aca
fc9aca
fc9aca
From a0ded04b454b32dfa6a0d3bb357e950941a65684 Mon Sep 17 00:00:00 2001
fc9aca
From: Thomas Haller <thaller@redhat.com>
fc9aca
Date: Wed, 7 Jun 2017 17:04:33 +0200
fc9aca
Subject: [PATCH 10/10] device: suppress logging and return error reason from
fc9aca
 nm_device_generate_connection()
fc9aca
fc9aca
Don't log in a function that basically just inspects state, without
fc9aca
mutating it. Instead, pass the reason why a connection could not be
fc9aca
generated to the caller so that we have one sensible log message.
fc9aca
fc9aca
(cherry picked from commit 0c26ffd638b1db490ae72b105feb697b61fc43cb)
fc9aca
(cherry picked from commit 78ff06c539b36521a82d4d65b573678a1f91b531)
fc9aca
---
fc9aca
 src/devices/nm-device.c | 56 +++++++++++++++++++++++++++----------------------
fc9aca
 src/devices/nm-device.h |  3 ++-
fc9aca
 src/nm-manager.c        |  6 ++++--
fc9aca
 3 files changed, 37 insertions(+), 28 deletions(-)
fc9aca
fc9aca
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
fc9aca
index 36ba9f9..246a18f 100644
fc9aca
--- a/src/devices/nm-device.c
fc9aca
+++ b/src/devices/nm-device.c
fc9aca
@@ -4111,29 +4111,37 @@ nm_device_master_update_slave_connection (NMDevice *self,
fc9aca
 }
fc9aca
 
fc9aca
 NMConnection *
fc9aca
-nm_device_generate_connection (NMDevice *self, NMDevice *master, gboolean *out_maybe_later)
fc9aca
+nm_device_generate_connection (NMDevice *self,
fc9aca
+                               NMDevice *master,
fc9aca
+                               gboolean *out_maybe_later,
fc9aca
+                               GError **error)
fc9aca
 {
fc9aca
 	NMDeviceClass *klass = NM_DEVICE_GET_CLASS (self);
fc9aca
 	NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self);
fc9aca
 	const char *ifname = nm_device_get_iface (self);
fc9aca
-	NMConnection *connection;
fc9aca
+	gs_unref_object NMConnection *connection = NULL;
fc9aca
 	NMSetting *s_con;
fc9aca
 	NMSetting *s_ip4;
fc9aca
 	NMSetting *s_ip6;
fc9aca
 	char uuid[37];
fc9aca
 	const char *ip4_method, *ip6_method;
fc9aca
-	GError *error = NULL;
fc9aca
+	GError *local = NULL;
fc9aca
 	const NMPlatformLink *pllink;
fc9aca
 
fc9aca
 	NM_SET_OUT (out_maybe_later, FALSE);
fc9aca
 
fc9aca
 	/* If update_connection() is not implemented, just fail. */
fc9aca
-	if (!klass->update_connection)
fc9aca
+	if (!klass->update_connection) {
fc9aca
+		g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED,
fc9aca
+		             "device class %s does not support generating a connection",
fc9aca
+		             G_OBJECT_TYPE_NAME (self));
fc9aca
 		return NULL;
fc9aca
+	}
fc9aca
 
fc9aca
 	/* Return NULL if device is unconfigured. */
fc9aca
 	if (!device_has_config (self)) {
fc9aca
-		_LOGD (LOGD_DEVICE, "device has no existing configuration");
fc9aca
+		g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED,
fc9aca
+		             "device has no existing configuration");
fc9aca
 		return NULL;
fc9aca
 	}
fc9aca
 
fc9aca
@@ -4156,12 +4164,11 @@ nm_device_generate_connection (NMDevice *self, NMDevice *master, gboolean *out_m
fc9aca
 		if (!nm_device_master_update_slave_connection (master,
fc9aca
 		                                               self,
fc9aca
 		                                               connection,
fc9aca
-		                                               &error))
fc9aca
-		{
fc9aca
-			_LOGE (LOGD_DEVICE, "master device '%s' failed to update slave connection: %s",
fc9aca
-			       nm_device_get_iface (master), error->message);
fc9aca
-			g_error_free (error);
fc9aca
-			g_object_unref (connection);
fc9aca
+		                                               &local)) {
fc9aca
+			g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED,
fc9aca
+			             "master device '%s' failed to update slave connection: %s",
fc9aca
+			             nm_device_get_iface (master), local->message);
fc9aca
+			g_error_free (local);
fc9aca
 			return NULL;
fc9aca
 		}
fc9aca
 	} else {
fc9aca
@@ -4174,7 +4181,6 @@ nm_device_generate_connection (NMDevice *self, NMDevice *master, gboolean *out_m
fc9aca
 
fc9aca
 		pllink = nm_platform_link_get (nm_device_get_platform (self), priv->ifindex);
fc9aca
 		if (pllink && pllink->inet6_token.id) {
fc9aca
-			_LOGD (LOGD_IP6, "IPv6 tokenized identifier present");
fc9aca
 			g_object_set (s_ip6,
fc9aca
 			              NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, NM_IN6_ADDR_GEN_MODE_EUI64,
fc9aca
 			              NM_SETTING_IP6_CONFIG_TOKEN, nm_utils_inet6_interface_identifier_to_token (pllink->inet6_token, NULL),
fc9aca
@@ -4184,11 +4190,11 @@ nm_device_generate_connection (NMDevice *self, NMDevice *master, gboolean *out_m
fc9aca
 
fc9aca
 	klass->update_connection (self, connection);
fc9aca
 
fc9aca
-	/* Check the connection in case of update_connection() bug. */
fc9aca
-	if (!nm_connection_verify (connection, &error)) {
fc9aca
-		_LOGE (LOGD_DEVICE, "Generated connection does not verify: %s", error->message);
fc9aca
-		g_clear_error (&error);
fc9aca
-		g_object_unref (connection);
fc9aca
+	if (!nm_connection_verify (connection, &local)) {
fc9aca
+		g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED,
fc9aca
+		             "generated connection does not verify: %s",
fc9aca
+		             local->message);
fc9aca
+		g_error_free (local);
fc9aca
 		return NULL;
fc9aca
 	}
fc9aca
 
fc9aca
@@ -4201,28 +4207,28 @@ nm_device_generate_connection (NMDevice *self, NMDevice *master, gboolean *out_m
fc9aca
 	    && g_strcmp0 (ip6_method, NM_SETTING_IP6_CONFIG_METHOD_IGNORE) == 0
fc9aca
 	    && !nm_setting_connection_get_master (NM_SETTING_CONNECTION (s_con))
fc9aca
 	    && !priv->slaves) {
fc9aca
-		_LOGD (LOGD_DEVICE, "ignoring generated connection (no IP and not in master-slave relationship)");
fc9aca
 		NM_SET_OUT (out_maybe_later, TRUE);
fc9aca
-		g_object_unref (connection);
fc9aca
-		connection = NULL;
fc9aca
+		g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED,
fc9aca
+		                     "ignoring generated connection (no IP and not in master-slave relationship)");
fc9aca
+		return NULL;
fc9aca
 	}
fc9aca
 
fc9aca
 	/* Ignore any IPv6LL-only, not master connections without slaves,
fc9aca
 	 * unless they are in the assume-ipv6ll-only list.
fc9aca
 	 */
fc9aca
-	if (   connection
fc9aca
-	    && g_strcmp0 (ip4_method, NM_SETTING_IP4_CONFIG_METHOD_DISABLED) == 0
fc9aca
+	if (   g_strcmp0 (ip4_method, NM_SETTING_IP4_CONFIG_METHOD_DISABLED) == 0
fc9aca
 	    && g_strcmp0 (ip6_method, NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL) == 0
fc9aca
 	    && !nm_setting_connection_get_master (NM_SETTING_CONNECTION (s_con))
fc9aca
 	    && !priv->slaves
fc9aca
 	    && !nm_config_data_get_assume_ipv6ll_only (NM_CONFIG_GET_DATA, self)) {
fc9aca
 		_LOGD (LOGD_DEVICE, "ignoring generated connection (IPv6LL-only and not in master-slave relationship)");
fc9aca
 		NM_SET_OUT (out_maybe_later, TRUE);
fc9aca
-		g_object_unref (connection);
fc9aca
-		connection = NULL;
fc9aca
+		g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED,
fc9aca
+		                    "ignoring generated connection (IPv6LL-only and not in master-slave relationship)");
fc9aca
+		return NULL;
fc9aca
 	}
fc9aca
 
fc9aca
-	return connection;
fc9aca
+	return g_steal_pointer (&connection);
fc9aca
 }
fc9aca
 
fc9aca
 gboolean
fc9aca
diff --git a/src/devices/nm-device.h b/src/devices/nm-device.h
fc9aca
index 7229fb9..50d9b97 100644
fc9aca
--- a/src/devices/nm-device.h
fc9aca
+++ b/src/devices/nm-device.h
fc9aca
@@ -498,7 +498,8 @@ gboolean        nm_device_has_carrier           (NMDevice *dev);
fc9aca
 
fc9aca
 NMConnection * nm_device_generate_connection (NMDevice *self,
fc9aca
                                               NMDevice *master,
fc9aca
-                                              gboolean *out_maybe_later);
fc9aca
+                                              gboolean *out_maybe_later,
fc9aca
+                                              GError **error);
fc9aca
 
fc9aca
 gboolean nm_device_master_update_slave_connection (NMDevice *master,
fc9aca
                                                    NMDevice *slave,
fc9aca
diff --git a/src/nm-manager.c b/src/nm-manager.c
fc9aca
index fa220f1..abcd0ee 100644
fc9aca
--- a/src/nm-manager.c
fc9aca
+++ b/src/nm-manager.c
fc9aca
@@ -1786,11 +1786,13 @@ get_existing_connection (NMManager *self,
fc9aca
 	 * update_connection() implemented, otherwise nm_device_generate_connection()
fc9aca
 	 * returns NULL.
fc9aca
 	 */
fc9aca
-	connection = nm_device_generate_connection (device, master, &maybe_later);
fc9aca
+	connection = nm_device_generate_connection (device, master, &maybe_later, &error);
fc9aca
 	if (!connection) {
fc9aca
 		if (!maybe_later)
fc9aca
 			nm_device_assume_state_reset (device);
fc9aca
-		_LOG2D (LOGD_DEVICE, device, "assume: don't assume due to failure to generate connection");
fc9aca
+		_LOG2D (LOGD_DEVICE, device, "assume: cannot generate connection: %s",
fc9aca
+		        error->message);
fc9aca
+		g_error_free (error);
fc9aca
 		return NULL;
fc9aca
 	}
fc9aca
 
fc9aca
-- 
fc9aca
2.9.4
fc9aca