From e0191d420162fa78561ab1f45749ef2cd6464626 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 3 Dec 2018 11:09:32 +0100 Subject: [PATCH 01/18] shared: add NM_MAX_WITH_CMP() macro --- shared/nm-utils/nm-macros-internal.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/shared/nm-utils/nm-macros-internal.h b/shared/nm-utils/nm-macros-internal.h index 77aead4e2b..d874275d3b 100644 --- a/shared/nm-utils/nm-macros-internal.h +++ b/shared/nm-utils/nm-macros-internal.h @@ -1329,6 +1329,16 @@ nm_strcmp_p (gconstpointer a, gconstpointer b) : NM_UNIQ_T(X,xq)); \ }) +#define NM_MAX_WITH_CMP(cmp, a, b) \ + ({ \ + typeof (a) _a = (a); \ + typeof (b) _b = (b); \ + \ + ( ((cmp (_a, _b)) >= 0) \ + ? _a \ + : _b); \ + }) + /*****************************************************************************/ static inline guint From 487ee687d5bba82ee1054d74961afe122260811f Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 3 Dec 2018 10:27:06 +0100 Subject: [PATCH 02/18] libnm: add nm_connectivity_state_cmp() helper --- src/nm-connectivity.h | 15 +++++++++++ src/tests/test-general.c | 57 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/src/nm-connectivity.h b/src/nm-connectivity.h index fad248be7b..f262298a82 100644 --- a/src/nm-connectivity.h +++ b/src/nm-connectivity.h @@ -24,6 +24,21 @@ #include "nm-dbus-interface.h" +/*****************************************************************************/ + +static inline int +nm_connectivity_state_cmp (NMConnectivityState a, NMConnectivityState b) +{ + if (a == NM_CONNECTIVITY_PORTAL && b == NM_CONNECTIVITY_LIMITED) + return 1; + if (b == NM_CONNECTIVITY_PORTAL && a == NM_CONNECTIVITY_LIMITED) + return -1; + NM_CMP_DIRECT (a, b); + return 0; +} + +/*****************************************************************************/ + #define NM_CONNECTIVITY_ERROR ((NMConnectivityState) -1) #define NM_CONNECTIVITY_FAKE ((NMConnectivityState) -2) #define NM_CONNECTIVITY_CANCELLED ((NMConnectivityState) -3) diff --git a/src/tests/test-general.c b/src/tests/test-general.c index 16121facf0..223bf019a1 100644 --- a/src/tests/test-general.c +++ b/src/tests/test-general.c @@ -34,6 +34,7 @@ #include "systemd/nm-sd-utils.h" #include "dns/nm-dns-manager.h" +#include "nm-connectivity.h" #include "nm-test-utils-core.h" @@ -2039,6 +2040,60 @@ test_nm_utils_dhcp_client_id_systemd_node_specific (gconstpointer test_data) /*****************************************************************************/ +static void +test_connectivity_state_cmp (void) +{ + NMConnectivityState a; + +#define _cmp(a, b, cmp) \ + G_STMT_START { \ + const NMConnectivityState _a = (a); \ + const NMConnectivityState _b = (b); \ + const int _cmp = (cmp); \ + \ + g_assert (NM_IN_SET (_cmp, -1, 0, 1)); \ + g_assert_cmpint (nm_connectivity_state_cmp (_a, _b), ==, _cmp); \ + g_assert_cmpint (nm_connectivity_state_cmp (_b, _a), ==, -_cmp); \ + } G_STMT_END + + for (a = NM_CONNECTIVITY_UNKNOWN; a <= NM_CONNECTIVITY_FULL; a++) + _cmp (a, a, 0); + + _cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_UNKNOWN, 0); + _cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_NONE, -1); + _cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_LIMITED, -1); + _cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_PORTAL, -1); + _cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_FULL, -1); + + _cmp (NM_CONNECTIVITY_NONE, NM_CONNECTIVITY_UNKNOWN, 1); + _cmp (NM_CONNECTIVITY_NONE, NM_CONNECTIVITY_NONE, 0); + _cmp (NM_CONNECTIVITY_NONE, NM_CONNECTIVITY_LIMITED, -1); + _cmp (NM_CONNECTIVITY_NONE, NM_CONNECTIVITY_PORTAL, -1); + _cmp (NM_CONNECTIVITY_NONE, NM_CONNECTIVITY_FULL, -1); + + _cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_UNKNOWN, 1); + _cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_NONE, 1); + _cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_LIMITED, 0); + _cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_PORTAL, -1); + _cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_FULL, -1); + + _cmp (NM_CONNECTIVITY_PORTAL, NM_CONNECTIVITY_UNKNOWN, 1); + _cmp (NM_CONNECTIVITY_PORTAL, NM_CONNECTIVITY_NONE, 1); + _cmp (NM_CONNECTIVITY_PORTAL, NM_CONNECTIVITY_LIMITED, 1); + _cmp (NM_CONNECTIVITY_PORTAL, NM_CONNECTIVITY_PORTAL, 0); + _cmp (NM_CONNECTIVITY_PORTAL, NM_CONNECTIVITY_FULL, -1); + + _cmp (NM_CONNECTIVITY_FULL, NM_CONNECTIVITY_UNKNOWN, 1); + _cmp (NM_CONNECTIVITY_FULL, NM_CONNECTIVITY_NONE, 1); + _cmp (NM_CONNECTIVITY_FULL, NM_CONNECTIVITY_LIMITED, 1); + _cmp (NM_CONNECTIVITY_FULL, NM_CONNECTIVITY_PORTAL, 1); + _cmp (NM_CONNECTIVITY_FULL, NM_CONNECTIVITY_FULL, 0); + +#undef _cmp +} + +/*****************************************************************************/ + NMTST_DEFINE (); int @@ -2094,6 +2149,8 @@ main (int argc, char **argv) g_test_add_data_func ("/general/nm_utils_dhcp_client_id_systemd_node_specific/0", GINT_TO_POINTER (0), test_nm_utils_dhcp_client_id_systemd_node_specific); g_test_add_data_func ("/general/nm_utils_dhcp_client_id_systemd_node_specific/1", GINT_TO_POINTER (1), test_nm_utils_dhcp_client_id_systemd_node_specific); + g_test_add_func ("/core/general/test_connectivity_state_cmp", test_connectivity_state_cmp); + return g_test_run (); } From ade753d06f4d8cac3a9c374fc1d9a409e2bce904 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 3 Dec 2018 10:31:51 +0100 Subject: [PATCH 03/18] connectivity: fix determining the global connectivity state Since we determine the connectivity state of each device individually, the global connectivity state is an aggregate of all these states. I am not sure about considering here devices that don't have the (best) default route for their respective address family. But anyway. When we aggregate the best connectivity, we chose the numerical largest value. That is wrong, because PORTAL is numerically smaller than LIMITED. That means, if you have two devices, one with connectivity LIMITED and one with connectivity PORTAL, then LIMITED wrongly wins. Fixes: 6b7e9f9b225e81d365fd95901a88a7bc59c1eb39 https://bugzilla.redhat.com/show_bug.cgi?id=1619873 --- src/devices/nm-device.c | 4 +++- src/nm-manager.c | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 6ea3dd1f40..5285bacda6 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -3080,7 +3080,9 @@ nm_device_get_connectivity_state (NMDevice *self) priv = NM_DEVICE_GET_PRIVATE (self); - return NM_MAX (priv->concheck_x[0].state, priv->concheck_x[1].state); + return NM_MAX_WITH_CMP (nm_connectivity_state_cmp, + priv->concheck_x[0].state, + priv->concheck_x[1].state); } /*****************************************************************************/ diff --git a/src/nm-manager.c b/src/nm-manager.c index 8bd5a3acc0..11809de3d2 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -2855,18 +2855,21 @@ device_connectivity_changed (NMDevice *device, best_state = nm_device_get_connectivity_state (device); if (best_state < NM_CONNECTIVITY_FULL) { + /* FIXME: is this really correct, to considere devices that don't have + * (the best) default route for connectivity checking? */ c_list_for_each_entry (dev, &priv->devices_lst_head, devices_lst) { state = nm_device_get_connectivity_state (dev); - if (state <= best_state) + if (nm_connectivity_state_cmp (state, best_state) <= 0) continue; best_state = state; - if (best_state >= NM_CONNECTIVITY_FULL) { + if (nm_connectivity_state_cmp (best_state, NM_CONNECTIVITY_FULL) >= 0) { /* it doesn't get better than this. */ break; } } } nm_assert (best_state <= NM_CONNECTIVITY_FULL); + nm_assert (nm_connectivity_state_cmp (best_state, NM_CONNECTIVITY_FULL) <= 0); if (best_state != priv->connectivity_state) { priv->connectivity_state = best_state; From 703178f5cab446814cf2f918b083b1fbe794464d Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sat, 1 Dec 2018 14:32:16 +0100 Subject: [PATCH 04/18] dbus: add nm_dbus_manager_get_dbus_connection() helper The NMDBusManager owns a reference to the system bus. Expose it, so we can use it. Note that g_bus_get() -- as alternative to get the systembus singleton -- is asynchronous, and g_bus_get_sync() has an API that makes one wonder what it does. Since we already have a reference to the connection object we want to use, expose it. --- src/nm-dbus-manager.c | 8 ++++++++ src/nm-dbus-manager.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/src/nm-dbus-manager.c b/src/nm-dbus-manager.c index 3d45fc665a..9c8d6570f7 100644 --- a/src/nm-dbus-manager.c +++ b/src/nm-dbus-manager.c @@ -1470,6 +1470,14 @@ static const GDBusInterfaceInfo interface_info_objmgr = NM_DEFINE_GDBUS_INTERFAC /*****************************************************************************/ +GDBusConnection * +nm_dbus_manager_get_dbus_connection (NMDBusManager *self) +{ + g_return_val_if_fail (NM_IS_DBUS_MANAGER (self), NULL); + + return NM_DBUS_MANAGER_GET_PRIVATE (self)->connection; +} + void nm_dbus_manager_start (NMDBusManager *self, NMDBusManagerSetPropertyHandler set_property_handler, diff --git a/src/nm-dbus-manager.h b/src/nm-dbus-manager.h index 04c42bb0f6..89acd7c855 100644 --- a/src/nm-dbus-manager.h +++ b/src/nm-dbus-manager.h @@ -51,6 +51,8 @@ typedef void (*NMDBusManagerSetPropertyHandler) (NMDBusObject *obj, gboolean nm_dbus_manager_acquire_bus (NMDBusManager *self); +GDBusConnection *nm_dbus_manager_get_dbus_connection (NMDBusManager *self); + void nm_dbus_manager_start (NMDBusManager *self, NMDBusManagerSetPropertyHandler set_property_handler, gpointer set_property_handler_data); From 5ada517b23604b8064b1354187b181ba7869e7b8 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sat, 1 Dec 2018 14:22:19 +0100 Subject: [PATCH 05/18] connectivity: don't use GDBusProxy for resolving names via systemd-resolved --- src/nm-connectivity.c | 108 ++++++++++++++++++++---------------------- 1 file changed, 51 insertions(+), 57 deletions(-) diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c index e74d6f103d..ca40fb5a75 100644 --- a/src/nm-connectivity.c +++ b/src/nm-connectivity.c @@ -68,7 +68,6 @@ struct _NMConnectivityCheckHandle { gpointer user_data; char *ifspec; - int addr_family; #if WITH_CONCHECK struct { @@ -88,9 +87,14 @@ struct _NMConnectivityCheckHandle { const char *completed_log_message; char *completed_log_message_free; - NMConnectivityState completed_state; + + int addr_family; guint timeout_id; + + NMConnectivityState completed_state; + + bool fail_reason_no_dbus_connection:1; }; enum { @@ -555,6 +559,12 @@ _idle_cb (gpointer user_data) g_set_error (&error, NM_UTILS_ERROR, NM_UTILS_ERROR_INVALID_ARGUMENT, "no interface specified for connectivity check"); cb_data_complete (cb_data, NM_CONNECTIVITY_ERROR, "missing interface"); + } else if (cb_data->fail_reason_no_dbus_connection) { + gs_free_error GError *error = NULL; + + g_set_error (&error, NM_UTILS_ERROR, NM_UTILS_ERROR_INVALID_ARGUMENT, + "no D-Bus connection"); + cb_data_complete (cb_data, NM_CONNECTIVITY_ERROR, "no D-Bus connection"); } else cb_data_complete (cb_data, NM_CONNECTIVITY_FAKE, "fake result"); return G_SOURCE_REMOVE; @@ -625,7 +635,7 @@ do_curl_request (NMConnectivityCheckHandle *cb_data) static void resolve_cb (GObject *object, GAsyncResult *res, gpointer user_data) { - NMConnectivityCheckHandle *cb_data = user_data; + NMConnectivityCheckHandle *cb_data; NMConnectivity *self; NMConnectivityPrivate *priv; GVariant *result; @@ -641,13 +651,16 @@ resolve_cb (GObject *object, GAsyncResult *res, gpointer user_data) gsize i; gs_free_error GError *error = NULL; - result = g_dbus_proxy_call_finish (G_DBUS_PROXY (object), res, &error); + result = g_dbus_connection_call_finish (G_DBUS_CONNECTION (object), res, &error); if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) return; + cb_data = user_data; self = cb_data->self; priv = NM_CONNECTIVITY_GET_PRIVATE (self); + g_clear_object (&cb_data->concheck.resolve_cancellable); + if (!result) { /* Never mind. Just let do curl do its own resolving. */ _LOG2D ("can't resolve a name via systemd-resolved: %s", error->message); @@ -679,47 +692,7 @@ resolve_cb (GObject *object, GAsyncResult *res, gpointer user_data) do_curl_request (cb_data); } -#define SD_RESOLVED_DNS 1 - -static void -resolved_proxy_created (GObject *object, GAsyncResult *res, gpointer user_data) -{ - NMConnectivityCheckHandle *cb_data = user_data; - NMConnectivity *self; - NMConnectivityPrivate *priv; - gs_free_error GError *error = NULL; - GDBusProxy *proxy; - - proxy = g_dbus_proxy_new_for_bus_finish (res, &error); - if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) - return; - - self = cb_data->self; - priv = NM_CONNECTIVITY_GET_PRIVATE (self); - - if (!proxy) { - /* Log a warning, but still proceed without systemd-resolved */ - _LOG2D ("failed to connect to resolved via DBus: %s", error->message); - do_curl_request (cb_data); - return; - } - - g_dbus_proxy_call (proxy, - "ResolveHostname", - g_variant_new ("(isit)", - cb_data->concheck.ifindex, - priv->host, - (gint32) cb_data->addr_family, - (guint64) SD_RESOLVED_DNS), - G_DBUS_CALL_FLAGS_NONE, - -1, - cb_data->concheck.resolve_cancellable, - resolve_cb, - cb_data); - g_object_unref (proxy); - - _LOG2D ("resolving '%s' for '%s' using systemd-resolved", priv->host, priv->uri); -} +#define SD_RESOLVED_DNS ((guint64) (1LL << 0)) NMConnectivityCheckHandle * nm_connectivity_check_start (NMConnectivity *self, @@ -733,7 +706,6 @@ nm_connectivity_check_start (NMConnectivity *self, NMConnectivityCheckHandle *cb_data; g_return_val_if_fail (NM_IS_CONNECTIVITY (self), NULL); - g_return_val_if_fail (!iface || iface[0], NULL); g_return_val_if_fail (callback, NULL); priv = NM_CONNECTIVITY_GET_PRIVATE (self); @@ -751,21 +723,43 @@ nm_connectivity_check_start (NMConnectivity *self, #if WITH_CONCHECK if (iface && ifindex > 0 && priv->enabled && priv->host) { + GDBusConnection *dbus_connection; + cb_data->concheck.ifindex = ifindex; + + dbus_connection = nm_dbus_manager_get_dbus_connection (nm_dbus_manager_get ()); + if (!dbus_connection) { + /* we have no D-Bus connection? That might happen in configure and quit mode. + * + * Anyway, something is very odd, just fail connectivity check. */ + _LOG2D ("start fake request (fail due to no D-Bus connection)"); + cb_data->fail_reason_no_dbus_connection = TRUE; + cb_data->timeout_id = g_idle_add (_idle_cb, cb_data); + return cb_data; + } + cb_data->concheck.resolve_cancellable = g_cancellable_new (); - g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM, - G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | - G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS, - NULL, - "org.freedesktop.resolve1", - "/org/freedesktop/resolve1", - "org.freedesktop.resolve1.Manager", - cb_data->concheck.resolve_cancellable, - resolved_proxy_created, - cb_data); + g_dbus_connection_call (nm_dbus_manager_get_dbus_connection (nm_dbus_manager_get ()), + "org.freedesktop.resolve1", + "/org/freedesktop/resolve1", + "org.freedesktop.resolve1.Manager", + "ResolveHostname", + g_variant_new ("(isit)", + (gint32) cb_data->concheck.ifindex, + priv->host, + (gint32) cb_data->addr_family, + SD_RESOLVED_DNS), + G_VARIANT_TYPE ("(a(iiay)st)"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cb_data->concheck.resolve_cancellable, + resolve_cb, + cb_data); - _LOG2D ("start request to '%s'", priv->uri); + _LOG2D ("start request to '%s' (try resolving '%s' using systemd-resolved)", + priv->uri, + priv->host); return cb_data; } #endif From e60f6ee6d6e970a2aef3e8ffc562ca7a248c6172 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sat, 1 Dec 2018 17:04:18 +0100 Subject: [PATCH 06/18] shared: allow AF_UNSPEC for nm_utils_addr_family_to_char() It just makes sense, that our to-char function can also handle AF_UNSPEC. Unclear which character to return in this case, but "IPvX" seems suitable. --- shared/nm-utils/nm-shared-utils.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/shared/nm-utils/nm-shared-utils.h b/shared/nm-utils/nm-shared-utils.h index e82b53f7cb..5a9bb541d6 100644 --- a/shared/nm-utils/nm-shared-utils.h +++ b/shared/nm-utils/nm-shared-utils.h @@ -76,8 +76,9 @@ static inline char nm_utils_addr_family_to_char (int addr_family) { switch (addr_family) { - case AF_INET: return '4'; - case AF_INET6: return '6'; + case AF_UNSPEC: return 'X'; + case AF_INET: return '4'; + case AF_INET6: return '6'; } g_return_val_if_reached ('?'); } From 2c217f67f091d1a4a6fdadd3ca2b369d50b7a36a Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sat, 1 Dec 2018 15:01:17 +0100 Subject: [PATCH 07/18] connectivity: add a unique counter for logging connectivity checks While at it, replace "AF_INET" with "IPv". The connectivity check logging line is already much too long. Save a few characters. Also, I think the meaning of "AF_INET" is less clear (to a novice user) than "IPv4". --- src/nm-connectivity.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c index ca40fb5a75..ea4ea7189e 100644 --- a/src/nm-connectivity.c +++ b/src/nm-connectivity.c @@ -69,6 +69,9 @@ struct _NMConnectivityCheckHandle { char *ifspec; + const char *completed_log_message; + char *completed_log_message_free; + #if WITH_CONCHECK struct { char *response; @@ -85,8 +88,7 @@ struct _NMConnectivityCheckHandle { } concheck; #endif - const char *completed_log_message; - char *completed_log_message_free; + guint64 request_counter; int addr_family; @@ -146,10 +148,11 @@ NM_DEFINE_SINGLETON_GETTER (NMConnectivity, nm_connectivity_get, NM_TYPE_CONNECT _nm_log (__level, _NMLOG2_DOMAIN, 0, \ (cb_data->ifspec ? &cb_data->ifspec[3] : NULL), \ NULL, \ - "connectivity: (%s,AF_INET%s) " \ + "connectivity: (%s,IPv%c,%"G_GUINT64_FORMAT") " \ _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ (cb_data->ifspec ? &cb_data->ifspec[3] : ""), \ - (cb_data->addr_family == AF_INET6 ? "6" : "") \ + nm_utils_addr_family_to_char (cb_data->addr_family), \ + cb_data->request_counter \ _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ } \ } G_STMT_END @@ -704,6 +707,7 @@ nm_connectivity_check_start (NMConnectivity *self, { NMConnectivityPrivate *priv; NMConnectivityCheckHandle *cb_data; + static guint64 request_counter = 0; g_return_val_if_fail (NM_IS_CONNECTIVITY (self), NULL); g_return_val_if_fail (callback, NULL); @@ -712,6 +716,7 @@ nm_connectivity_check_start (NMConnectivity *self, cb_data = g_slice_new0 (NMConnectivityCheckHandle); cb_data->self = self; + cb_data->request_counter = ++request_counter; c_list_link_tail (&priv->handles_lst_head, &cb_data->handles_lst); cb_data->callback = callback; cb_data->user_data = user_data; From 3b515f54cfa23d6b4b8425b700f7e26b8341b528 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sat, 1 Dec 2018 15:18:41 +0100 Subject: [PATCH 08/18] cli: don't translate connectivity state in terse output Fixes: de7a159e69434e79d489f775a1ab4b2ef0d8e68c --- clients/cli/devices.c | 8 +- .../test_003.expected | 104 ++-- .../test_004.expected | 448 +++++++++--------- 3 files changed, 280 insertions(+), 280 deletions(-) diff --git a/clients/cli/devices.c b/clients/cli/devices.c index f1a97d3ea8..ee2495e00b 100644 --- a/clients/cli/devices.c +++ b/clients/cli/devices.c @@ -117,10 +117,10 @@ _metagen_device_status_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS) return nmc_meta_generic_get_str_i18n (nmc_device_state_to_string (nm_device_get_state (d)), get_type); case NMC_GENERIC_INFO_TYPE_DEVICE_STATUS_IP4_CONNECTIVITY: - return nmc_meta_generic_get_str_i18n (nm_connectivity_to_string (nm_device_get_connectivity (d, AF_INET)), + return nmc_meta_generic_get_str_i18n (nm_connectivity_to_string_no_l10n (nm_device_get_connectivity (d, AF_INET)), get_type); case NMC_GENERIC_INFO_TYPE_DEVICE_STATUS_IP6_CONNECTIVITY: - return nmc_meta_generic_get_str_i18n (nm_connectivity_to_string (nm_device_get_connectivity (d, AF_INET6)), + return nmc_meta_generic_get_str_i18n (nm_connectivity_to_string_no_l10n (nm_device_get_connectivity (d, AF_INET6)), get_type); case NMC_GENERIC_INFO_TYPE_DEVICE_STATUS_DBUS_PATH: return nm_object_get_path (NM_OBJECT (d)); @@ -207,13 +207,13 @@ _metagen_device_detail_general_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS) connectivity = nm_device_get_connectivity (d, AF_INET); return (*out_to_free = nmc_meta_generic_get_enum_with_detail (NMC_META_GENERIC_GET_ENUM_TYPE_PARENTHESES, connectivity, - nm_connectivity_to_string (connectivity), + nm_connectivity_to_string_no_l10n (connectivity), get_type)); case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_IP6_CONNECTIVITY: connectivity = nm_device_get_connectivity (d, AF_INET6); return (*out_to_free = nmc_meta_generic_get_enum_with_detail (NMC_META_GENERIC_GET_ENUM_TYPE_PARENTHESES, connectivity, - nm_connectivity_to_string (connectivity), + nm_connectivity_to_string_no_l10n (connectivity), get_type)); case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_UDI: return nm_device_get_udi (d); diff --git a/clients/tests/test-client.check-on-disk/test_003.expected b/clients/tests/test-client.check-on-disk/test_003.expected index ee16eb5ed0..50aecd4a4a 100644 --- a/clients/tests/test-client.check-on-disk/test_003.expected +++ b/clients/tests/test-client.check-on-disk/test_003.expected @@ -1112,12 +1112,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2251 +size: 2249 location: clients/tests/test-client.py:944:test_003()/36 cmd: $NMCLI -f ALL -t dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2098 bytes +stdout: 2096 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -1131,8 +1131,8 @@ GENERAL.HWADDR:C0:61:AE:26:4D:D7 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -1990,12 +1990,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2251 +size: 2249 location: clients/tests/test-client.py:944:test_003()/59 cmd: $NMCLI -f ALL -t dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2098 bytes +stdout: 2096 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -2009,8 +2009,8 @@ GENERAL.HWADDR:C0:61:AE:26:4D:D7 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -5294,12 +5294,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2257 +size: 2255 location: clients/tests/test-client.py:971:test_003()/109 cmd: $NMCLI --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2098 bytes +stdout: 2096 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -5313,8 +5313,8 @@ GENERAL.HWADDR:C0:61:AE:26:4D:D7 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -5914,12 +5914,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2269 +size: 2267 location: clients/tests/test-client.py:971:test_003()/119 cmd: $NMCLI --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2098 bytes +stdout: 2096 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -5933,8 +5933,8 @@ GENERAL.HWADDR:C0:61:AE:26:4D:D7 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -7255,14 +7255,14 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 1387 +size: 1385 location: clients/tests/test-client.py:971:test_003()/169 cmd: $NMCLI --mode tabular --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1213 bytes +stdout: 1211 bytes >>> -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no WIRED-PROPERTIES:off: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 @@ -7407,14 +7407,14 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 1399 +size: 1397 location: clients/tests/test-client.py:971:test_003()/179 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1213 bytes +stdout: 1211 bytes >>> -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no WIRED-PROPERTIES:off: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 @@ -11414,12 +11414,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2274 +size: 2272 location: clients/tests/test-client.py:971:test_003()/229 cmd: $NMCLI --mode multiline --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2098 bytes +stdout: 2096 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -11433,8 +11433,8 @@ GENERAL.HWADDR:C0:61:AE:26:4D:D7 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -12182,12 +12182,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]:UUID-ethernet-REPLACED-REPLACED-REPL | ethernet <<< -size: 2286 +size: 2284 location: clients/tests/test-client.py:971:test_003()/239 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2098 bytes +stdout: 2096 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -12201,8 +12201,8 @@ GENERAL.HWADDR:C0:61:AE:26:4D:D7 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -13532,12 +13532,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 2277 +size: 2275 location: clients/tests/test-client.py:971:test_003()/289 cmd: $NMCLI --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2118 bytes +stdout: 2116 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -13551,8 +13551,8 @@ GENERAL.HWADDR:C0:61:AE:26:4D:D7 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -13778,12 +13778,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 2289 +size: 2287 location: clients/tests/test-client.py:971:test_003()/299 cmd: $NMCLI --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2118 bytes +stdout: 2116 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -13797,8 +13797,8 @@ GENERAL.HWADDR:C0:61:AE:26:4D:D7 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -14713,14 +14713,14 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 1407 +size: 1405 location: clients/tests/test-client.py:971:test_003()/349 cmd: $NMCLI --mode tabular --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1233 bytes +stdout: 1231 bytes >>> -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no WIRED-PROPERTIES:off: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 @@ -14839,14 +14839,14 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1,2,4}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 | UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 | | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 1419 +size: 1417 location: clients/tests/test-client.py:971:test_003()/359 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1233 bytes +stdout: 1231 bytes >>> -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::C0\:61\:AE\:26\:4D\:D7:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no::ethernet:UUID-ethernet-REPLACED-REPLACED-REPL:/org/freedesktop/NetworkManager/ActiveConnection/1:unknown CAPABILITIES:no:100 Mb/s:no:no WIRED-PROPERTIES:off: IP4:192.168.6.238/29::dst = 192.168.58.133/31, nh = 192.168.50.116, mt = 3130348792 | dst = 192.168.155.50/19, nh = 192.168.127.64:192.168.213.113:sear4.foo4.bar:192.168.156.115 | 192.168.8.33 @@ -16878,12 +16878,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 2294 +size: 2292 location: clients/tests/test-client.py:971:test_003()/409 cmd: $NMCLI --mode multiline --terse -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2118 bytes +stdout: 2116 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -16897,8 +16897,8 @@ GENERAL.HWADDR:C0:61:AE:26:4D:D7 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -17270,12 +17270,12 @@ CONNECTIONS.AVAILABLE-CONNECTIONS[2]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con- CONNECTIONS.AVAILABLE-CONNECTIONS[3]: | /org/freedesktop/NetworkManager/Settings/Connection/4 <<< -size: 2306 +size: 2304 location: clients/tests/test-client.py:971:test_003()/419 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show eth0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2118 bytes +stdout: 2116 bytes >>> GENERAL.DEVICE:eth0 GENERAL.TYPE:ethernet @@ -17289,8 +17289,8 @@ GENERAL.HWADDR:C0:61:AE:26:4D:D7 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no diff --git a/clients/tests/test-client.check-on-disk/test_004.expected b/clients/tests/test-client.check-on-disk/test_004.expected index 7ad630e1e0..386946cd93 100644 --- a/clients/tests/test-client.check-on-disk/test_004.expected +++ b/clients/tests/test-client.check-on-disk/test_004.expected @@ -14218,18 +14218,18 @@ wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/4 wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5::: <<< -size: 687 +size: 677 location: clients/tests/test-client.py:1044:test_004()/220 cmd: $NMCLI --terse -f all dev status lang: pl_PL.UTF-8 returncode: 0 -stdout: 531 bytes +stdout: 521 bytes >>> -wlan0:wifi:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/3:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2 -eth0:ethernet:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/1::: -eth1:ethernet:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/2::: -wlan1:wifi:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/4::: -wlan1:wifi:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/5::: +wlan0:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/3:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2 +eth0:ethernet:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/1::: +eth1:ethernet:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/2::: +wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/4::: +wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5::: <<< size: 4540 @@ -14913,12 +14913,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 11993 +size: 11983 location: clients/tests/test-client.py:1050:test_004()/224 cmd: $NMCLI --terse -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 11837 bytes +stdout: 11827 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -14932,8 +14932,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -15024,8 +15024,8 @@ GENERAL.HWADDR:AB:B7:BF:E2:48:E8 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -15087,8 +15087,8 @@ GENERAL.HWADDR:E7:78:B1:93:2B:22 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth1 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -15157,8 +15157,8 @@ GENERAL.HWADDR:21:E9:64:81:8C:A8 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan1 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -15245,8 +15245,8 @@ GENERAL.HWADDR:71:52:AD:63:5C:7C GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan1 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -15468,12 +15468,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2742 +size: 2740 location: clients/tests/test-client.py:1056:test_004()/228 cmd: $NMCLI --terse -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2581 bytes +stdout: 2579 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -15487,8 +15487,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -15613,12 +15613,12 @@ WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown <<< -size: 1203 +size: 1201 location: clients/tests/test-client.py:1059:test_004()/230 cmd: $NMCLI --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1007 bytes +stdout: 1005 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -15632,8 +15632,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -15703,12 +15703,12 @@ WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown <<< -size: 1203 +size: 1201 location: clients/tests/test-client.py:1062:test_004()/232 cmd: $NMCLI --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1007 bytes +stdout: 1005 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -15722,8 +15722,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -16038,12 +16038,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2745 +size: 2743 location: clients/tests/test-client.py:1082:test_004()/248 cmd: $NMCLI --terse -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2581 bytes +stdout: 2579 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -16057,8 +16057,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -16304,12 +16304,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2883 +size: 2881 location: clients/tests/test-client.py:1086:test_004()/252 cmd: $NMCLI --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2581 bytes +stdout: 2579 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -16323,8 +16323,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -17090,18 +17090,18 @@ stdout: 881 bytes wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5::: <<< -size: 1059 +size: 1049 location: clients/tests/test-client.py:1044:test_004()/266 cmd: $NMCLI --terse --color yes -f all dev status lang: pl_PL.UTF-8 returncode: 0 -stdout: 891 bytes +stdout: 881 bytes >>> -wlan0:wifi:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/3:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2 -eth0:ethernet:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/1::: -eth1:ethernet:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/2::: -wlan1:wifi:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/4::: -wlan1:wifi:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/5::: +wlan0:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/3:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2 +eth0:ethernet:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/1::: +eth1:ethernet:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/2::: +wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/4::: +wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5::: <<< size: 4552 @@ -17785,12 +17785,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 12293 +size: 12283 location: clients/tests/test-client.py:1050:test_004()/270 cmd: $NMCLI --terse --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 12125 bytes +stdout: 12115 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -17804,8 +17804,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -17896,8 +17896,8 @@ GENERAL.HWADDR:AB:B7:BF:E2:48:E8 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -17959,8 +17959,8 @@ GENERAL.HWADDR:E7:78:B1:93:2B:22 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth1 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -18029,8 +18029,8 @@ GENERAL.HWADDR:21:E9:64:81:8C:A8 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan1 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -18117,8 +18117,8 @@ GENERAL.HWADDR:71:52:AD:63:5C:7C GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan1 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -18340,12 +18340,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2970 +size: 2968 location: clients/tests/test-client.py:1056:test_004()/274 cmd: $NMCLI --terse --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2797 bytes +stdout: 2795 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -18359,8 +18359,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -18485,12 +18485,12 @@ WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown <<< -size: 1215 +size: 1213 location: clients/tests/test-client.py:1059:test_004()/276 cmd: $NMCLI --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1007 bytes +stdout: 1005 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -18504,8 +18504,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -18575,12 +18575,12 @@ WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown <<< -size: 1215 +size: 1213 location: clients/tests/test-client.py:1062:test_004()/278 cmd: $NMCLI --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1007 bytes +stdout: 1005 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -18594,8 +18594,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -18910,12 +18910,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2973 +size: 2971 location: clients/tests/test-client.py:1082:test_004()/294 cmd: $NMCLI --terse --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2797 bytes +stdout: 2795 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -18929,8 +18929,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -19176,12 +19176,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3111 +size: 3109 location: clients/tests/test-client.py:1086:test_004()/298 cmd: $NMCLI --terse --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2797 bytes +stdout: 2795 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -19195,8 +19195,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -26578,18 +26578,18 @@ wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/4 wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5::: <<< -size: 702 +size: 692 location: clients/tests/test-client.py:1044:test_004()/496 cmd: $NMCLI --mode tabular --terse -f all dev status lang: pl_PL.UTF-8 returncode: 0 -stdout: 531 bytes +stdout: 521 bytes >>> -wlan0:wifi:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/3:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2 -eth0:ethernet:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/1::: -eth1:ethernet:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/2::: -wlan1:wifi:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/4::: -wlan1:wifi:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/5::: +wlan0:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/3:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2 +eth0:ethernet:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/1::: +eth1:ethernet:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/2::: +wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/4::: +wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5::: <<< size: 3096 @@ -26769,14 +26769,14 @@ DHCP6:dhcp-6-opt-2 = val-2 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 6381 +size: 6371 location: clients/tests/test-client.py:1050:test_004()/500 cmd: $NMCLI --mode tabular --terse -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 6211 bytes +stdout: 6201 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown +GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:unknown:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown AP[1]: :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 @@ -26788,7 +26788,7 @@ IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::se DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/eth0::no:yes:yes:no:no:::::unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no WIRED-PROPERTIES:off: IP4:192.168.49.34/22 | 192.168.135.86/19:::192.168.45.230 | 192.168.180.201 | 192.168.253.2:sear4.foo2.bar | sear4.foo1.bar:192.168.163.23 | 192.168.151.246 @@ -26797,7 +26797,7 @@ IP6:2001\:a\:\:ed81\:3d7\:c2e9\:df82/99:::2001\:a\:\:2703\:f06\:9619\:d89f | 200 DHCP6:dhcp-6-opt-0 = val-0 | dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp-6-opt-8 = val-8 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -GENERAL:eth1:ethernet:NMDeviceEthernet:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/eth1::no:yes:yes:no:no:::::unknown +GENERAL:eth1:ethernet:NMDeviceEthernet:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no WIRED-PROPERTIES:off: IP4:192.168.127.210/25:192.168.88.4:dst = 192.168.222.35/19, nh = 192.168.170.142, mt = 3609264321 | dst = 192.168.135.81/32, nh = 192.168.32.11, mt = 1316413247 | dst = 192.168.24.65/26, nh = 192.168.23.163, mt = 3855574583:192.168.16.144 | 192.168.79.53 | 192.168.237.155:sear4.foo4.bar | sear4.foo3.bar | sear4.foo1.bar:192.168.211.91 | 192.168.58.182 | 192.168.114.97 @@ -26806,7 +26806,7 @@ IP6:2001\:a\:\:1c1\:c178\:169f\:2b80/93 | 2001\:a\:\:1f79\:e0fb\:87b9\:3cc6/123: DHCP6:dhcp-6-opt-2 = val-2 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-8 = val-8 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown +GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown AP[1]: :wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 @@ -26816,7 +26816,7 @@ IP6:2001\:a\:\:fa05\:2ab4\:9300\:e8fe/116 | 2001\:a\:\:e9cf\:bd3\:caba\:99b3/86 DHCP6:dhcp-6-opt-0 = val-0 | dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown +GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown IP4:192.168.97.124/29 | 192.168.76.154/18::dst = 192.168.33.233/22, nh = 192.168.222.210, mt = 2810496551:192.168.107.109:sear4.fo.o.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo3.bar | sear4.foo4.bar:192.168.60.60 | 192.168.63.92 @@ -26882,14 +26882,14 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1404 +size: 1402 location: clients/tests/test-client.py:1056:test_004()/504 cmd: $NMCLI --mode tabular --terse -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1228 bytes +stdout: 1226 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown +GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:unknown:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown AP[1]: :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 @@ -26914,14 +26914,14 @@ GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavail WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown <<< -size: 577 +size: 575 location: clients/tests/test-client.py:1059:test_004()/506 cmd: $NMCLI --mode tabular --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 367 bytes +stdout: 365 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown +GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown 13\:E0\:74\:85\:7C\:D9 WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown @@ -26938,14 +26938,14 @@ GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavail WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown <<< -size: 577 +size: 575 location: clients/tests/test-client.py:1062:test_004()/508 cmd: $NMCLI --mode tabular --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 367 bytes +stdout: 365 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown +GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown 13\:E0\:74\:85\:7C\:D9 WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown @@ -27160,14 +27160,14 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1407 +size: 1405 location: clients/tests/test-client.py:1082:test_004()/524 cmd: $NMCLI --mode tabular --terse -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1228 bytes +stdout: 1226 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown +GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:unknown:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown AP[1]: :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 @@ -27236,14 +27236,14 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1545 +size: 1543 location: clients/tests/test-client.py:1086:test_004()/528 cmd: $NMCLI --mode tabular --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1228 bytes +stdout: 1226 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown +GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:unknown:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown AP[1]: :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 @@ -27430,18 +27430,18 @@ stdout: 881 bytes wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5::: <<< -size: 1074 +size: 1064 location: clients/tests/test-client.py:1044:test_004()/542 cmd: $NMCLI --mode tabular --terse --color yes -f all dev status lang: pl_PL.UTF-8 returncode: 0 -stdout: 891 bytes +stdout: 881 bytes >>> -wlan0:wifi:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/3:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2 -eth0:ethernet:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/1::: -eth1:ethernet:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/2::: -wlan1:wifi:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/4::: -wlan1:wifi:unavailable:nieznane:nieznane:/org/freedesktop/NetworkManager/Devices/5::: +wlan0:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/3:con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2 +eth0:ethernet:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/1::: +eth1:ethernet:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/2::: +wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/4::: +wlan1:wifi:unavailable:unknown:unknown:/org/freedesktop/NetworkManager/Devices/5::: <<< size: 3108 @@ -27621,14 +27621,14 @@ DHCP6:dhcp-6-opt-2 = val-2 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 6717 +size: 6707 location: clients/tests/test-client.py:1050:test_004()/546 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 6535 bytes +stdout: 6525 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown +GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:unknown:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown AP[1]: :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 @@ -27640,7 +27640,7 @@ IP6:::dst = 2001\:a\:\:dd5b\:aa7b\:b4a2\:e42/102, nh = \:\:, mt = 2504159086::se DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/eth0::no:yes:yes:no:no:::::unknown +GENERAL:eth0:ethernet:NMDeviceEthernet:::virtual:::AB\:B7\:BF\:E2\:48\:E8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth0::no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no WIRED-PROPERTIES:off: IP4:192.168.49.34/22 | 192.168.135.86/19:::192.168.45.230 | 192.168.180.201 | 192.168.253.2:sear4.foo2.bar | sear4.foo1.bar:192.168.163.23 | 192.168.151.246 @@ -27649,7 +27649,7 @@ IP6:2001\:a\:\:ed81\:3d7\:c2e9\:df82/99:::2001\:a\:\:2703\:f06\:9619\:d89f | 200 DHCP6:dhcp-6-opt-0 = val-0 | dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp-6-opt-8 = val-8 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -GENERAL:eth1:ethernet:NMDeviceEthernet:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/eth1::no:yes:yes:no:no:::::unknown +GENERAL:eth1:ethernet:NMDeviceEthernet:::virtual:::E7\:78\:B1\:93\:2B\:22:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/eth1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:100 Mb/s:no:no WIRED-PROPERTIES:off: IP4:192.168.127.210/25:192.168.88.4:dst = 192.168.222.35/19, nh = 192.168.170.142, mt = 3609264321 | dst = 192.168.135.81/32, nh = 192.168.32.11, mt = 1316413247 | dst = 192.168.24.65/26, nh = 192.168.23.163, mt = 3855574583:192.168.16.144 | 192.168.79.53 | 192.168.237.155:sear4.foo4.bar | sear4.foo3.bar | sear4.foo1.bar:192.168.211.91 | 192.168.58.182 | 192.168.114.97 @@ -27658,7 +27658,7 @@ IP6:2001\:a\:\:1c1\:c178\:169f\:2b80/93 | 2001\:a\:\:1f79\:e0fb\:87b9\:3cc6/123: DHCP6:dhcp-6-opt-2 = val-2 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-8 = val-8 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{1}:5fcfd6d7-1e63-3332-8826-a7eda103792d | con-1 -GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown +GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::21\:E9\:64\:81\:8C\:A8:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown AP[1]: :wlan1-ap-4:Infrastruktura:1:54 Mb/s:48:** :WPA1 WPA2 @@ -27668,7 +27668,7 @@ IP6:2001\:a\:\:fa05\:2ab4\:9300\:e8fe/116 | 2001\:a\:\:e9cf\:bd3\:caba\:99b3/86 DHCP6:dhcp-6-opt-0 = val-0 | dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp-6-opt-4 = val-4 | dhcp-6-opt-5 = val-5 | dhcp-6-opt-6 = val-6 | dhcp-6-opt-7 = val-7 | dhcp-6-opt-9 = val-9 CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 -GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown +GENERAL:wlan1:wifi:NMDeviceWifi:::virtual:::71\:52\:AD\:63\:5C\:7C:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan1::no:yes:yes:no:no:::::unknown CAPABILITIES:no:unknown:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown IP4:192.168.97.124/29 | 192.168.76.154/18::dst = 192.168.33.233/22, nh = 192.168.222.210, mt = 2810496551:192.168.107.109:sear4.fo.o.bar | sear4.fo.x.y | sear4.foo2.bar | sear4.foo3.bar | sear4.foo4.bar:192.168.60.60 | 192.168.63.92 @@ -27734,14 +27734,14 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1659 +size: 1657 location: clients/tests/test-client.py:1056:test_004()/550 cmd: $NMCLI --mode tabular --terse --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1471 bytes +stdout: 1469 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown +GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:unknown:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown AP[1]: :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 @@ -27766,14 +27766,14 @@ GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavail WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown <<< -size: 589 +size: 587 location: clients/tests/test-client.py:1059:test_004()/552 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 367 bytes +stdout: 365 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown +GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown 13\:E0\:74\:85\:7C\:D9 WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown @@ -27790,14 +27790,14 @@ GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavail WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown <<< -size: 589 +size: 587 location: clients/tests/test-client.py:1062:test_004()/554 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 367 bytes +stdout: 365 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown +GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown 13\:E0\:74\:85\:7C\:D9 WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown @@ -28012,14 +28012,14 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1662 +size: 1660 location: clients/tests/test-client.py:1082:test_004()/570 cmd: $NMCLI --mode tabular --terse --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1471 bytes +stdout: 1469 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown +GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:unknown:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown AP[1]: :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 @@ -28088,14 +28088,14 @@ DHCP6:dhcp-6-opt-1 = val-1 | dhcp-6-opt-2 = val-2 | dhcp-6-opt-3 = val-3 | dhcp- CONNECTIONS:/org/freedesktop/NetworkManager/Settings/Connection/{2}:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 1800 +size: 1798 location: clients/tests/test-client.py:1086:test_004()/574 cmd: $NMCLI --mode tabular --terse --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1471 bytes +stdout: 1469 bytes >>> -GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (nieznane):0 (nieznane):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown +GENERAL:wlan0:wifi:NMDeviceWifi:::virtual:::13\:E0\:74\:85\:7C\:D9:0:20 (unavailable):0 (No reason given):0 (unknown):0 (unknown):/sys/devices/virtual/wlan0::no:yes:yes:no:no::con-vpn-1:UUID-con-vpn-1-REPLACED-REPLACED-REP:/org/freedesktop/NetworkManager/ActiveConnection/2:unknown CAPABILITIES:no:unknown:no:no WIFI-PROPERTIES:yes:yes:yes:yes:yes:yes:yes:unknown:unknown AP[1]: :wlan0-ap-2:Infrastruktura:1:54 Mb/s:92:****:WPA1 WPA2 @@ -43696,18 +43696,18 @@ CON-UUID: CON-PATH: <<< -size: 1159 +size: 1149 location: clients/tests/test-client.py:1044:test_004()/772 cmd: $NMCLI --mode multiline --terse -f all dev status lang: pl_PL.UTF-8 returncode: 0 -stdout: 986 bytes +stdout: 976 bytes >>> DEVICE:wlan0 TYPE:wifi STATE:unavailable -IP4-CONNECTIVITY:nieznane -IP6-CONNECTIVITY:nieznane +IP4-CONNECTIVITY:unknown +IP6-CONNECTIVITY:unknown DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 CONNECTION:con-vpn-1 CON-UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -43715,8 +43715,8 @@ CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2 DEVICE:eth0 TYPE:ethernet STATE:unavailable -IP4-CONNECTIVITY:nieznane -IP6-CONNECTIVITY:nieznane +IP4-CONNECTIVITY:unknown +IP6-CONNECTIVITY:unknown DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 CONNECTION: CON-UUID: @@ -43724,8 +43724,8 @@ CON-PATH: DEVICE:eth1 TYPE:ethernet STATE:unavailable -IP4-CONNECTIVITY:nieznane -IP6-CONNECTIVITY:nieznane +IP4-CONNECTIVITY:unknown +IP6-CONNECTIVITY:unknown DBUS-PATH:/org/freedesktop/NetworkManager/Devices/2 CONNECTION: CON-UUID: @@ -43733,8 +43733,8 @@ CON-PATH: DEVICE:wlan1 TYPE:wifi STATE:unavailable -IP4-CONNECTIVITY:nieznane -IP6-CONNECTIVITY:nieznane +IP4-CONNECTIVITY:unknown +IP6-CONNECTIVITY:unknown DBUS-PATH:/org/freedesktop/NetworkManager/Devices/4 CONNECTION: CON-UUID: @@ -43742,8 +43742,8 @@ CON-PATH: DEVICE:wlan1 TYPE:wifi STATE:unavailable -IP4-CONNECTIVITY:nieznane -IP6-CONNECTIVITY:nieznane +IP4-CONNECTIVITY:unknown +IP6-CONNECTIVITY:unknown DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5 CONNECTION: CON-UUID: @@ -44431,12 +44431,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 12010 +size: 12000 location: clients/tests/test-client.py:1050:test_004()/776 cmd: $NMCLI --mode multiline --terse -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 11837 bytes +stdout: 11827 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -44450,8 +44450,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -44542,8 +44542,8 @@ GENERAL.HWADDR:AB:B7:BF:E2:48:E8 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -44605,8 +44605,8 @@ GENERAL.HWADDR:E7:78:B1:93:2B:22 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth1 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -44675,8 +44675,8 @@ GENERAL.HWADDR:21:E9:64:81:8C:A8 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan1 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -44763,8 +44763,8 @@ GENERAL.HWADDR:71:52:AD:63:5C:7C GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan1 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -44986,12 +44986,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2759 +size: 2757 location: clients/tests/test-client.py:1056:test_004()/780 cmd: $NMCLI --mode multiline --terse -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2581 bytes +stdout: 2579 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -45005,8 +45005,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -45131,12 +45131,12 @@ WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown <<< -size: 1220 +size: 1218 location: clients/tests/test-client.py:1059:test_004()/782 cmd: $NMCLI --mode multiline --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1007 bytes +stdout: 1005 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -45150,8 +45150,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -45221,12 +45221,12 @@ WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown <<< -size: 1220 +size: 1218 location: clients/tests/test-client.py:1062:test_004()/784 cmd: $NMCLI --mode multiline --terse -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1007 bytes +stdout: 1005 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -45240,8 +45240,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -45966,12 +45966,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2762 +size: 2760 location: clients/tests/test-client.py:1082:test_004()/800 cmd: $NMCLI --mode multiline --terse -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2581 bytes +stdout: 2579 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -45985,8 +45985,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -46232,12 +46232,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2900 +size: 2898 location: clients/tests/test-client.py:1086:test_004()/804 cmd: $NMCLI --mode multiline --terse -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2581 bytes +stdout: 2579 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -46251,8 +46251,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -47088,18 +47088,18 @@ CON-UUID: CON-PATH: <<< -size: 1532 +size: 1522 location: clients/tests/test-client.py:1044:test_004()/818 cmd: $NMCLI --mode multiline --terse --color yes -f all dev status lang: pl_PL.UTF-8 returncode: 0 -stdout: 1346 bytes +stdout: 1336 bytes >>> DEVICE:wlan0 TYPE:wifi STATE:unavailable -IP4-CONNECTIVITY:nieznane -IP6-CONNECTIVITY:nieznane +IP4-CONNECTIVITY:unknown +IP6-CONNECTIVITY:unknown DBUS-PATH:/org/freedesktop/NetworkManager/Devices/3 CONNECTION:con-vpn-1 CON-UUID:UUID-con-vpn-1-REPLACED-REPLACED-REP @@ -47107,8 +47107,8 @@ CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/2 DEVICE:eth0 TYPE:ethernet STATE:unavailable -IP4-CONNECTIVITY:nieznane -IP6-CONNECTIVITY:nieznane +IP4-CONNECTIVITY:unknown +IP6-CONNECTIVITY:unknown DBUS-PATH:/org/freedesktop/NetworkManager/Devices/1 CONNECTION: CON-UUID: @@ -47116,8 +47116,8 @@ CON-PATH: DEVICE:eth1 TYPE:ethernet STATE:unavailable -IP4-CONNECTIVITY:nieznane -IP6-CONNECTIVITY:nieznane +IP4-CONNECTIVITY:unknown +IP6-CONNECTIVITY:unknown DBUS-PATH:/org/freedesktop/NetworkManager/Devices/2 CONNECTION: CON-UUID: @@ -47125,8 +47125,8 @@ CON-PATH: DEVICE:wlan1 TYPE:wifi STATE:unavailable -IP4-CONNECTIVITY:nieznane -IP6-CONNECTIVITY:nieznane +IP4-CONNECTIVITY:unknown +IP6-CONNECTIVITY:unknown DBUS-PATH:/org/freedesktop/NetworkManager/Devices/4 CONNECTION: CON-UUID: @@ -47134,8 +47134,8 @@ CON-PATH: DEVICE:wlan1 TYPE:wifi STATE:unavailable -IP4-CONNECTIVITY:nieznane -IP6-CONNECTIVITY:nieznane +IP4-CONNECTIVITY:unknown +IP6-CONNECTIVITY:unknown DBUS-PATH:/org/freedesktop/NetworkManager/Devices/5 CONNECTION: CON-UUID: @@ -47823,12 +47823,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 12310 +size: 12300 location: clients/tests/test-client.py:1050:test_004()/822 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show lang: pl_PL.UTF-8 returncode: 0 -stdout: 12125 bytes +stdout: 12115 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -47842,8 +47842,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -47934,8 +47934,8 @@ GENERAL.HWADDR:AB:B7:BF:E2:48:E8 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -47997,8 +47997,8 @@ GENERAL.HWADDR:E7:78:B1:93:2B:22 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/eth1 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -48067,8 +48067,8 @@ GENERAL.HWADDR:21:E9:64:81:8C:A8 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan1 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -48155,8 +48155,8 @@ GENERAL.HWADDR:71:52:AD:63:5C:7C GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan1 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -48378,12 +48378,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2987 +size: 2985 location: clients/tests/test-client.py:1056:test_004()/826 cmd: $NMCLI --mode multiline --terse --color yes -f all dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2797 bytes +stdout: 2795 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -48397,8 +48397,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -48523,12 +48523,12 @@ WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown <<< -size: 1232 +size: 1230 location: clients/tests/test-client.py:1059:test_004()/828 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1007 bytes +stdout: 1005 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -48542,8 +48542,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -48613,12 +48613,12 @@ WIFI-PROPERTIES.2GHZ:unknown WIFI-PROPERTIES.5GHZ:unknown <<< -size: 1232 +size: 1230 location: clients/tests/test-client.py:1062:test_004()/830 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL,GENERAL.HWADDR,WIFI-PROPERTIES dev show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 1007 bytes +stdout: 1005 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -48632,8 +48632,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -49358,12 +49358,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 2990 +size: 2988 location: clients/tests/test-client.py:1082:test_004()/846 cmd: $NMCLI --mode multiline --terse --color yes -f ALL device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2797 bytes +stdout: 2795 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -49377,8 +49377,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no @@ -49624,12 +49624,12 @@ CONNECTIONS.AVAILABLE-CONNECTION-PATHS:/org/freedesktop/NetworkManager/Settings/ CONNECTIONS.AVAILABLE-CONNECTIONS[1]:UUID-con-xx1-REPLACED-REPLACED-REPLA | con-xx1 <<< -size: 3128 +size: 3126 location: clients/tests/test-client.py:1086:test_004()/850 cmd: $NMCLI --mode multiline --terse --color yes -f GENERAL,CAPABILITIES,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show wlan0 lang: pl_PL.UTF-8 returncode: 0 -stdout: 2797 bytes +stdout: 2795 bytes >>> GENERAL.DEVICE:wlan0 GENERAL.TYPE:wifi @@ -49643,8 +49643,8 @@ GENERAL.HWADDR:13:E0:74:85:7C:D9 GENERAL.MTU:0 GENERAL.STATE:20 (unavailable) GENERAL.REASON:0 (No reason given) -GENERAL.IP4-CONNECTIVITY:0 (nieznane) -GENERAL.IP6-CONNECTIVITY:0 (nieznane) +GENERAL.IP4-CONNECTIVITY:0 (unknown) +GENERAL.IP6-CONNECTIVITY:0 (unknown) GENERAL.UDI:/sys/devices/virtual/wlan0 GENERAL.IP-IFACE: GENERAL.IS-SOFTWARE:no From 0c17d34a7df5a87ae65913580fa118538e02e01a Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sat, 1 Dec 2018 15:32:55 +0100 Subject: [PATCH 09/18] cli: drop gettext() wrappers for no_l10n to-string functions In most cases, we don't want the translated string (only marked for translation, and then programatically the caller deciedes whether to translate or not). The few places that always call gettext() can do it explicitly. Now, that our functions are all "no_l10n" by default, rename them. --- clients/cli/common.c | 8 +------- clients/cli/common.h | 1 - clients/cli/devices.c | 8 ++++---- clients/cli/general.c | 21 ++++++++------------- 4 files changed, 13 insertions(+), 25 deletions(-) diff --git a/clients/cli/common.c b/clients/cli/common.c index 945cd5b474..85b5005e44 100644 --- a/clients/cli/common.c +++ b/clients/cli/common.c @@ -1394,7 +1394,7 @@ nmc_error_get_simple_message (GError *error) /*****************************************************************************/ -NM_UTILS_LOOKUP_STR_DEFINE (nm_connectivity_to_string_no_l10n, NMConnectivityState, +NM_UTILS_LOOKUP_STR_DEFINE (nm_connectivity_to_string, NMConnectivityState, NM_UTILS_LOOKUP_DEFAULT (N_("unknown")), NM_UTILS_LOOKUP_ITEM (NM_CONNECTIVITY_NONE, N_("none")), NM_UTILS_LOOKUP_ITEM (NM_CONNECTIVITY_PORTAL, N_("portal")), @@ -1402,9 +1402,3 @@ NM_UTILS_LOOKUP_STR_DEFINE (nm_connectivity_to_string_no_l10n, NMConnectivitySta NM_UTILS_LOOKUP_ITEM (NM_CONNECTIVITY_FULL, N_("full")), NM_UTILS_LOOKUP_ITEM_IGNORE (NM_CONNECTIVITY_UNKNOWN), ); - -const char * -nm_connectivity_to_string (NMConnectivityState connectivity) -{ - return _(nm_connectivity_to_string_no_l10n (connectivity)); -} diff --git a/clients/cli/common.h b/clients/cli/common.h index 5d075249e9..71734acc98 100644 --- a/clients/cli/common.h +++ b/clients/cli/common.h @@ -99,6 +99,5 @@ extern const NmcMetaGenericInfo *const metagen_ip6_config[]; extern const NmcMetaGenericInfo *const metagen_dhcp_config[]; const char *nm_connectivity_to_string (NMConnectivityState connectivity); -const char *nm_connectivity_to_string_no_l10n (NMConnectivityState connectivity); #endif /* NMC_COMMON_H */ diff --git a/clients/cli/devices.c b/clients/cli/devices.c index ee2495e00b..f1a97d3ea8 100644 --- a/clients/cli/devices.c +++ b/clients/cli/devices.c @@ -117,10 +117,10 @@ _metagen_device_status_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS) return nmc_meta_generic_get_str_i18n (nmc_device_state_to_string (nm_device_get_state (d)), get_type); case NMC_GENERIC_INFO_TYPE_DEVICE_STATUS_IP4_CONNECTIVITY: - return nmc_meta_generic_get_str_i18n (nm_connectivity_to_string_no_l10n (nm_device_get_connectivity (d, AF_INET)), + return nmc_meta_generic_get_str_i18n (nm_connectivity_to_string (nm_device_get_connectivity (d, AF_INET)), get_type); case NMC_GENERIC_INFO_TYPE_DEVICE_STATUS_IP6_CONNECTIVITY: - return nmc_meta_generic_get_str_i18n (nm_connectivity_to_string_no_l10n (nm_device_get_connectivity (d, AF_INET6)), + return nmc_meta_generic_get_str_i18n (nm_connectivity_to_string (nm_device_get_connectivity (d, AF_INET6)), get_type); case NMC_GENERIC_INFO_TYPE_DEVICE_STATUS_DBUS_PATH: return nm_object_get_path (NM_OBJECT (d)); @@ -207,13 +207,13 @@ _metagen_device_detail_general_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS) connectivity = nm_device_get_connectivity (d, AF_INET); return (*out_to_free = nmc_meta_generic_get_enum_with_detail (NMC_META_GENERIC_GET_ENUM_TYPE_PARENTHESES, connectivity, - nm_connectivity_to_string_no_l10n (connectivity), + nm_connectivity_to_string (connectivity), get_type)); case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_IP6_CONNECTIVITY: connectivity = nm_device_get_connectivity (d, AF_INET6); return (*out_to_free = nmc_meta_generic_get_enum_with_detail (NMC_META_GENERIC_GET_ENUM_TYPE_PARENTHESES, connectivity, - nm_connectivity_to_string_no_l10n (connectivity), + nm_connectivity_to_string (connectivity), get_type)); case NMC_GENERIC_INFO_TYPE_DEVICE_DETAIL_GENERAL_UDI: return nm_device_get_udi (d); diff --git a/clients/cli/general.c b/clients/cli/general.c index b2f72c6a4e..d9128c7670 100644 --- a/clients/cli/general.c +++ b/clients/cli/general.c @@ -37,7 +37,7 @@ /*****************************************************************************/ -NM_UTILS_LOOKUP_STR_DEFINE_STATIC (nm_state_to_string_no_l10n, NMState, +NM_UTILS_LOOKUP_STR_DEFINE_STATIC (nm_state_to_string, NMState, NM_UTILS_LOOKUP_DEFAULT (N_("unknown")), NM_UTILS_LOOKUP_ITEM (NM_STATE_ASLEEP, N_("asleep")), NM_UTILS_LOOKUP_ITEM (NM_STATE_CONNECTING, N_("connecting")), @@ -49,12 +49,6 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (nm_state_to_string_no_l10n, NMState, NM_UTILS_LOOKUP_ITEM_IGNORE (NM_STATE_UNKNOWN), ); -static const char * -nm_state_to_string (NMState state) -{ - return _(nm_state_to_string_no_l10n (state)); -} - static NMMetaColor state_to_color (NMState state) { @@ -136,7 +130,7 @@ permission_to_string (NMClientPermission perm) } } -NM_UTILS_LOOKUP_STR_DEFINE_STATIC (permission_result_to_string_no_l10n, NMClientPermissionResult, +NM_UTILS_LOOKUP_STR_DEFINE_STATIC (permission_result_to_string, NMClientPermissionResult, NM_UTILS_LOOKUP_DEFAULT (N_("unknown")), NM_UTILS_LOOKUP_ITEM (NM_CLIENT_PERMISSION_RESULT_YES, N_("yes")), NM_UTILS_LOOKUP_ITEM (NM_CLIENT_PERMISSION_RESULT_NO, N_("no")), @@ -177,7 +171,7 @@ _metagen_general_status_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS) case NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_STATE: state = nm_client_get_state (nmc->client); NMC_HANDLE_COLOR (state_to_color (state)); - value = nm_state_to_string_no_l10n (state); + value = nm_state_to_string (state); goto translate_and_out; case NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_STARTUP: v_bool = nm_client_get_startup (nmc->client); @@ -187,7 +181,7 @@ _metagen_general_status_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS) case NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_CONNECTIVITY: connectivity = nm_client_get_connectivity (nmc->client); NMC_HANDLE_COLOR (connectivity_to_color (connectivity)); - value = nm_connectivity_to_string_no_l10n (connectivity); + value = nm_connectivity_to_string (connectivity); goto translate_and_out; case NMC_GENERIC_INFO_TYPE_GENERAL_STATUS_NETWORKING: v_bool = nm_client_networking_get_enabled (nmc->client); @@ -271,7 +265,7 @@ _metagen_general_permissions_get_fcn (NMC_META_GENERIC_INFO_GET_FCN_ARGS) case NMC_GENERIC_INFO_TYPE_GENERAL_PERMISSIONS_VALUE: perm_result = nm_client_get_permission_result (nmc->client, perm); NMC_HANDLE_COLOR (permission_result_to_color (perm_result)); - s = permission_result_to_string_no_l10n (perm_result); + s = permission_result_to_string (perm_result); if (get_type == NM_META_ACCESSOR_GET_TYPE_PRETTY) return _(s); return s; @@ -1098,7 +1092,8 @@ client_connectivity (NMClient *client, GParamSpec *param, NmCli *nmc) g_object_get (client, NM_CLIENT_CONNECTIVITY, &connectivity, NULL); str = nmc_colorize (&nmc->nmc_config, connectivity_to_color (connectivity), - _("Connectivity is now '%s'\n"), nm_connectivity_to_string (connectivity)); + _("Connectivity is now '%s'\n"), + gettext (nm_connectivity_to_string (connectivity))); g_print ("%s", str); g_free (str); } @@ -1112,7 +1107,7 @@ client_state (NMClient *client, GParamSpec *param, NmCli *nmc) g_object_get (client, NM_CLIENT_STATE, &state, NULL); str = nmc_colorize (&nmc->nmc_config, state_to_color (state), _("Networkmanager is now in the '%s' state\n"), - nm_state_to_string (state)); + gettext (nm_state_to_string (state))); g_print ("%s", str); g_free (str); } From df734a03bcb860344b5f25a24255617bb856af29 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sat, 1 Dec 2018 16:01:46 +0100 Subject: [PATCH 10/18] dns: fix connecting signals to DNS plugin in init_resolv_conf_mode() Each time when enabling/disabling "systemd-resolved" in combination with another plugin (which is unchanged), another pair of signal handlers was connected. That's wrong. Fixes: d4eb4cb45f41b1751cacf71da558bf8f0988f383 --- src/dns/nm-dns-manager.c | 24 ++++++++++++------------ src/nm-config-data.c | 3 ++- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/dns/nm-dns-manager.c b/src/dns/nm-dns-manager.c index 9dd8784a50..5b02edb92d 100644 --- a/src/dns/nm-dns-manager.c +++ b/src/dns/nm-dns-manager.c @@ -1975,8 +1975,10 @@ init_resolv_conf_mode (NMDnsManager *self, gboolean force_reload_plugin) NMDnsManagerPrivate *priv = NM_DNS_MANAGER_GET_PRIVATE (self); NMDnsManagerResolvConfManager rc_manager; const char *mode; - gboolean systemd_resolved = FALSE; - gboolean param_changed = FALSE, plugin_changed = FALSE; + gboolean systemd_resolved; + gboolean param_changed = FALSE; + gboolean plugin_changed = FALSE; + gboolean systemd_resolved_changed = FALSE; mode = nm_config_data_get_dns_mode (nm_config_get_data (priv->config)); systemd_resolved = nm_config_data_get_systemd_resolved (nm_config_get_data (priv->config)); @@ -2053,16 +2055,13 @@ again: if (systemd_resolved) { if (!priv->sd_resolve_plugin) { priv->sd_resolve_plugin = nm_dns_systemd_resolved_new (); - plugin_changed = TRUE; + systemd_resolved_changed = TRUE; } - } else { - if (priv->sd_resolve_plugin) { - g_clear_object (&priv->sd_resolve_plugin); - plugin_changed = TRUE; - } - } + } else if (nm_clear_g_object (&priv->sd_resolve_plugin)) + systemd_resolved_changed = TRUE; - if (plugin_changed && priv->plugin) { + if ( plugin_changed + && priv->plugin) { g_signal_connect (priv->plugin, NM_DNS_PLUGIN_FAILED, G_CALLBACK (plugin_failed), self); g_signal_connect (priv->plugin, NM_DNS_PLUGIN_CHILD_QUIT, G_CALLBACK (plugin_child_quit), self); } @@ -2082,9 +2081,10 @@ again: _notify (self, PROP_RC_MANAGER); } - if (param_changed || plugin_changed) { + if (param_changed || plugin_changed || systemd_resolved_changed) { _LOGI ("init: dns=%s%s rc-manager=%s%s%s%s", - mode, (systemd_resolved ? ",systemd-resolved" : ""), + mode, + (systemd_resolved ? ",systemd-resolved" : ""), _rc_manager_to_string (rc_manager), NM_PRINT_FMT_QUOTED (priv->plugin, ", plugin=", nm_dns_plugin_get_name (priv->plugin), "", "")); diff --git a/src/nm-config-data.c b/src/nm-config-data.c index 8052b66952..8ef915163f 100644 --- a/src/nm-config-data.c +++ b/src/nm-config-data.c @@ -108,9 +108,10 @@ typedef struct { char *dns_mode; char *rc_manager; - gboolean systemd_resolved; NMGlobalDnsConfig *global_dns; + + bool systemd_resolved:1; } NMConfigDataPrivate; struct _NMConfigData { From c7d88645111c90aaea418aad3f3c94398db59ed8 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sat, 1 Dec 2018 15:48:19 +0100 Subject: [PATCH 11/18] connectivity: honor "main.systemd-resolved" setting to not resolve names first If the user disabled systemd-resolved, two things seem apparent: - the user does not want us to use systemd-resolved - NetworkManager is not pushing the DNS configuration to systemd-resoved. It seems to me, we should not consult systemd-resolved in that case. --- man/NetworkManager.conf.xml | 4 +- src/dns/nm-dns-manager.c | 15 +++++++ src/dns/nm-dns-manager.h | 2 + src/nm-connectivity.c | 89 ++++++++++++++++++++++--------------- 4 files changed, 74 insertions(+), 36 deletions(-) diff --git a/man/NetworkManager.conf.xml b/man/NetworkManager.conf.xml index 26de6f275a..65ebe013ad 100644 --- a/man/NetworkManager.conf.xml +++ b/man/NetworkManager.conf.xml @@ -402,11 +402,13 @@ no-auto-default=* systemd-resolved. Defaults to "true". Note that this setting is complementary to the - dns setting. You can keep this enable while using + dns setting. You can keep this enabled while using dns set to another DNS plugin alongside systemd-resolved, or dns set to systemd-resolved to configure the system resolver to use systemd-resolved. + If systemd-resolved is enabled, the connectivity check resolves the + hostname per-device. diff --git a/src/dns/nm-dns-manager.c b/src/dns/nm-dns-manager.c index 5b02edb92d..1f1fe21317 100644 --- a/src/dns/nm-dns-manager.c +++ b/src/dns/nm-dns-manager.c @@ -344,6 +344,21 @@ _ip_config_lst_head (NMDnsManager *self) /*****************************************************************************/ +gboolean +nm_dns_manager_has_systemd_resolved (NMDnsManager *self) +{ + NMDnsManagerPrivate *priv; + + g_return_val_if_fail (NM_IS_DNS_MANAGER (self), FALSE); + + priv = NM_DNS_MANAGER_GET_PRIVATE (self); + + return priv->sd_resolve_plugin + || NM_IS_DNS_SYSTEMD_RESOLVED (priv->plugin); +} + +/*****************************************************************************/ + static void add_string_item (GPtrArray *array, const char *str, gboolean dup) { diff --git a/src/dns/nm-dns-manager.h b/src/dns/nm-dns-manager.h index a3e9472e5f..7f6ed3edc6 100644 --- a/src/dns/nm-dns-manager.h +++ b/src/dns/nm-dns-manager.h @@ -129,6 +129,8 @@ typedef enum { void nm_dns_manager_stop (NMDnsManager *self); +gboolean nm_dns_manager_has_systemd_resolved (NMDnsManager *self); + /*****************************************************************************/ char *nmtst_dns_create_resolv_conf (const char *const*searches, diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c index ea4ea7189e..3703f7f269 100644 --- a/src/nm-connectivity.c +++ b/src/nm-connectivity.c @@ -23,7 +23,6 @@ #include "nm-default.h" #include "nm-connectivity.h" -#include "nm-dbus-manager.h" #include @@ -34,6 +33,8 @@ #include "c-list/src/c-list.h" #include "nm-config.h" #include "NetworkManagerUtils.h" +#include "nm-dbus-manager.h" +#include "dns/nm-dns-manager.h" #define HEADER_STATUS_ONLINE "X-NetworkManager-Status: online\r\n" @@ -114,9 +115,10 @@ typedef struct { char *host; char *port; char *response; - gboolean enabled; - guint interval; NMConfig *config; + guint interval; + + bool enabled:1; } NMConnectivityPrivate; struct _NMConnectivity { @@ -728,43 +730,60 @@ nm_connectivity_check_start (NMConnectivity *self, #if WITH_CONCHECK if (iface && ifindex > 0 && priv->enabled && priv->host) { - GDBusConnection *dbus_connection; + gboolean has_systemd_resolved; cb_data->concheck.ifindex = ifindex; - dbus_connection = nm_dbus_manager_get_dbus_connection (nm_dbus_manager_get ()); - if (!dbus_connection) { - /* we have no D-Bus connection? That might happen in configure and quit mode. - * - * Anyway, something is very odd, just fail connectivity check. */ - _LOG2D ("start fake request (fail due to no D-Bus connection)"); - cb_data->fail_reason_no_dbus_connection = TRUE; - cb_data->timeout_id = g_idle_add (_idle_cb, cb_data); - return cb_data; + /* note that we pick up support for systemd-resolved right away when we need it. + * We don't need to remember the setting, because we can (cheaply) check anew + * on each request. + * + * Yes, this makes NMConnectivity singleton dependent on NMDnsManager singleton. + * Well, not really: it makes connectivity-check-start dependent on NMDnsManager + * which merely means, not to start a connectivity check, late during shutdown. */ + has_systemd_resolved = nm_dns_manager_has_systemd_resolved (nm_dns_manager_get ()); + + if (has_systemd_resolved) { + GDBusConnection *dbus_connection; + + dbus_connection = nm_dbus_manager_get_dbus_connection (nm_dbus_manager_get ()); + if (!dbus_connection) { + /* we have no D-Bus connection? That might happen in configure and quit mode. + * + * Anyway, something is very odd, just fail connectivity check. */ + _LOG2D ("start fake request (fail due to no D-Bus connection)"); + cb_data->fail_reason_no_dbus_connection = TRUE; + cb_data->timeout_id = g_idle_add (_idle_cb, cb_data); + return cb_data; + } + + cb_data->concheck.resolve_cancellable = g_cancellable_new (); + + g_dbus_connection_call (nm_dbus_manager_get_dbus_connection (nm_dbus_manager_get ()), + "org.freedesktop.resolve1", + "/org/freedesktop/resolve1", + "org.freedesktop.resolve1.Manager", + "ResolveHostname", + g_variant_new ("(isit)", + (gint32) cb_data->concheck.ifindex, + priv->host, + (gint32) cb_data->addr_family, + SD_RESOLVED_DNS), + G_VARIANT_TYPE ("(a(iiay)st)"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cb_data->concheck.resolve_cancellable, + resolve_cb, + cb_data); + _LOG2D ("start request to '%s' (try resolving '%s' using systemd-resolved)", + priv->uri, + priv->host); + } else { + _LOG2D ("start request to '%s' (systemd-resolved not available)", + priv->uri); + do_curl_request (cb_data); } - cb_data->concheck.resolve_cancellable = g_cancellable_new (); - - g_dbus_connection_call (nm_dbus_manager_get_dbus_connection (nm_dbus_manager_get ()), - "org.freedesktop.resolve1", - "/org/freedesktop/resolve1", - "org.freedesktop.resolve1.Manager", - "ResolveHostname", - g_variant_new ("(isit)", - (gint32) cb_data->concheck.ifindex, - priv->host, - (gint32) cb_data->addr_family, - SD_RESOLVED_DNS), - G_VARIANT_TYPE ("(a(iiay)st)"), - G_DBUS_CALL_FLAGS_NONE, - -1, - cb_data->concheck.resolve_cancellable, - resolve_cb, - cb_data); - - _LOG2D ("start request to '%s' (try resolving '%s' using systemd-resolved)", - priv->uri, - priv->host); return cb_data; } #endif From 77fbe191fdbe61ead8c7081f3d9482b02645c6a5 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sat, 1 Dec 2018 17:17:28 +0100 Subject: [PATCH 12/18] connectivity: various cleanup in resolve_cb() - use cleanup attribute except explicit free/unref. - check that the result has the expected address family. Arguably, it should always, unless there is a bug in systemd-resolved. By that reasoning, we also wouldn't have to check the address length either. - don't use strndup() for values that are later freed by g_free(). We should always agree whether to malloc/free or g_malloc/g_free. - don't use strcasecmp(). Always use the locale independent g_ascii_strcasecmp() instead. - use nm_utils_inet_ntop() instead of inet_ntop(). It's our preferred wrapper, which as a stricter semantic (for example, it cannot fail and it's input arguments are stricter defined). - use nm_clear_g_free() instead of g_clear_pointer(). --- src/nm-connectivity.c | 56 +++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c index 3703f7f269..4ebac58bca 100644 --- a/src/nm-connectivity.c +++ b/src/nm-connectivity.c @@ -31,6 +31,7 @@ #endif #include "c-list/src/c-list.h" +#include "nm-core-internal.h" #include "nm-config.h" #include "NetworkManagerUtils.h" #include "nm-dbus-manager.h" @@ -643,16 +644,12 @@ resolve_cb (GObject *object, GAsyncResult *res, gpointer user_data) NMConnectivityCheckHandle *cb_data; NMConnectivity *self; NMConnectivityPrivate *priv; - GVariant *result; - GVariant *addresses; + gs_unref_variant GVariant *result = NULL; + gs_unref_variant GVariant *addresses = NULL; gsize no_addresses; int ifindex; int addr_family; - GVariant *address = NULL; - const guchar *address_buf; gsize len = 0; - char str[INET6_ADDRSTRLEN + 1] = { 0, }; - char *host; gsize i; gs_free_error GError *error = NULL; @@ -675,25 +672,32 @@ resolve_cb (GObject *object, GAsyncResult *res, gpointer user_data) addresses = g_variant_get_child_value (result, 0); no_addresses = g_variant_n_children (addresses); - g_variant_unref (result); for (i = 0; i < no_addresses; i++) { + gs_unref_variant GVariant *address = NULL; + char str_addr[NM_UTILS_INET_ADDRSTRLEN]; + gs_free char *host_entry = NULL; + const guchar *address_buf; + g_variant_get_child (addresses, i, "(ii@ay)", &ifindex, &addr_family, &address); + + if ( cb_data->addr_family != AF_UNSPEC + && cb_data->addr_family != addr_family) + continue; + address_buf = g_variant_get_fixed_array (address, &len, 1); + if ( (addr_family == AF_INET && len != sizeof (struct in_addr)) + || (addr_family == AF_INET6 && len != sizeof (struct in6_addr))) + continue; - if ( (addr_family == AF_INET && len == sizeof (struct in_addr)) - || (addr_family == AF_INET6 && len == sizeof (struct in6_addr))) { - inet_ntop (addr_family, address_buf, str, sizeof (str)); - host = g_strdup_printf ("%s:%s:%s", priv->host, priv->port ?: "80", str); - cb_data->concheck.hosts = curl_slist_append (cb_data->concheck.hosts, host); - _LOG2T ("adding '%s' to curl resolve list", host); - g_free (host); - } - - g_variant_unref (address); + host_entry = g_strdup_printf ("%s:%s:%s", + priv->host, + priv->port ?: "80", + nm_utils_inet_ntop (addr_family, address_buf, str_addr)); + cb_data->concheck.hosts = curl_slist_append (cb_data->concheck.hosts, host_entry); + _LOG2T ("adding '%s' to curl resolve list", host_entry); } - g_variant_unref (addresses); do_curl_request (cb_data); } @@ -858,7 +862,7 @@ host_and_port_from_uri (const char *uri, char **host, char **port) } if (host_len == 0) return FALSE; - *host = strndup (host_begin, host_len); + *host = g_strndup (host_begin, host_len); /* port */ if (*p++ == ':') { @@ -868,7 +872,7 @@ host_and_port_from_uri (const char *uri, char **host, char **port) p++; } if (port_len) - *port = strndup (port_begin, port_len); + *port = g_strndup (port_begin, port_len); } return TRUE; @@ -894,9 +898,9 @@ update_config (NMConnectivity *self, NMConfigData *config_data) if (!scheme) { _LOGE ("invalid URI '%s' for connectivity check.", uri); uri = NULL; - } else if (strcasecmp (scheme, "https") == 0) { + } else if (g_ascii_strcasecmp (scheme, "https") == 0) { _LOGW ("use of HTTPS for connectivity checking is not reliable and is discouraged (URI: %s)", uri); - } else if (strcasecmp (scheme, "http") != 0) { + } else if (g_ascii_strcasecmp (scheme, "http") != 0) { _LOGE ("scheme of '%s' uri doesn't use a scheme that is allowed for connectivity check.", uri); uri = NULL; } @@ -1002,10 +1006,10 @@ dispose (GObject *object) handles_lst))) cb_data_complete (cb_data, NM_CONNECTIVITY_DISPOSING, "shutting down"); - g_clear_pointer (&priv->uri, g_free); - g_clear_pointer (&priv->host, g_free); - g_clear_pointer (&priv->port, g_free); - g_clear_pointer (&priv->response, g_free); + nm_clear_g_free (&priv->uri); + nm_clear_g_free (&priv->host); + nm_clear_g_free (&priv->port); + nm_clear_g_free (&priv->response); #if WITH_CONCHECK curl_global_cleanup (); From 1156074a96e892a9157620636a73ccc9a5e7d2cb Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sat, 1 Dec 2018 18:01:20 +0100 Subject: [PATCH 13/18] connectivity: improve warning about URI config change During a config change notification, we determine a "changed" value, to know whether things significantly changed. Also, we want to log a warning about invalid configuration, only when the config actually changed. Previously, when the URI was invalid, on every reload (SIGHUP) we would log an error message, even if the configuration did not change. There is no need to warn multiple times about the same thing. Keep track of the original URI in priv->uri. Whenever that changed, we know the user reconfigured something. But also, now the URI might be set to an invalid value. That means, we need to remember whether the URI is valid. Also, log a warning if we fail to parse the host and port. Already before, such an URI was considered invalid and we would effectively not to connectivity checking. --- src/nm-connectivity.c | 66 +++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c index 4ebac58bca..73690f3cae 100644 --- a/src/nm-connectivity.c +++ b/src/nm-connectivity.c @@ -120,6 +120,7 @@ typedef struct { guint interval; bool enabled:1; + bool uri_valid:1; } NMConnectivityPrivate; struct _NMConnectivity { @@ -733,7 +734,10 @@ nm_connectivity_check_start (NMConnectivity *self, cb_data->ifspec = g_strdup_printf ("if!%s", iface); #if WITH_CONCHECK - if (iface && ifindex > 0 && priv->enabled && priv->host) { + if ( iface + && ifindex > 0 + && priv->enabled + && priv->uri_valid) { gboolean has_systemd_resolved; cb_data->concheck.ifindex = ifindex; @@ -882,43 +886,50 @@ static void update_config (NMConnectivity *self, NMConfigData *config_data) { NMConnectivityPrivate *priv = NM_CONNECTIVITY_GET_PRIVATE (self); - const char *uri, *response; + const char *uri; + const char *response; guint interval; gboolean enabled; gboolean changed = FALSE; - /* Set the URI. */ uri = nm_config_data_get_connectivity_uri (config_data); - if (uri && !*uri) - uri = NULL; - changed = g_strcmp0 (uri, priv->uri) != 0; - if (uri) { - char *scheme = g_uri_parse_scheme (uri); + if (!nm_streq0 (uri, priv->uri)) { + gboolean uri_valid; - if (!scheme) { - _LOGE ("invalid URI '%s' for connectivity check.", uri); - uri = NULL; - } else if (g_ascii_strcasecmp (scheme, "https") == 0) { - _LOGW ("use of HTTPS for connectivity checking is not reliable and is discouraged (URI: %s)", uri); - } else if (g_ascii_strcasecmp (scheme, "http") != 0) { - _LOGE ("scheme of '%s' uri doesn't use a scheme that is allowed for connectivity check.", uri); - uri = NULL; + uri_valid = (uri && *uri); + if (uri_valid) { + gs_free char *scheme = g_uri_parse_scheme (uri); + + if (!scheme) { + _LOGE ("invalid URI '%s' for connectivity check.", uri); + uri_valid = FALSE; + } else if (g_ascii_strcasecmp (scheme, "https") == 0) { + _LOGW ("use of HTTPS for connectivity checking is not reliable and is discouraged (URI: %s)", uri); + } else if (g_ascii_strcasecmp (scheme, "http") != 0) { + _LOGE ("scheme of '%s' uri doesn't use a scheme that is allowed for connectivity check.", uri); + uri_valid = FALSE; + } } - if (scheme) - g_free (scheme); - } - if (changed) { - g_free (priv->uri); - priv->uri = g_strdup (uri); - g_clear_pointer (&priv->host, g_free); g_clear_pointer (&priv->port, g_free); - if (uri) - host_and_port_from_uri (uri, &priv->host, &priv->port); + if (uri_valid) { + if (!host_and_port_from_uri (uri, &priv->host, &priv->port)) { + _LOGE ("cannot parse host and port from '%s'", uri); + uri_valid = FALSE; + } + } + + if ( priv->uri_valid != uri_valid + || ( uri_valid + && !nm_streq0 (priv->uri, uri))) + changed = TRUE; + + g_free (priv->uri); + priv->uri = g_strdup (uri); + priv->uri_valid = uri_valid; } - /* Set the interval. */ interval = nm_config_data_get_connectivity_interval (config_data); interval = MIN (interval, (7 * 24 * 3600)); if (priv->interval != interval) { @@ -928,7 +939,7 @@ update_config (NMConnectivity *self, NMConfigData *config_data) enabled = FALSE; #if WITH_CONCHECK - if ( priv->uri + if ( priv->uri_valid && priv->interval) enabled = nm_config_data_get_connectivity_enabled (config_data); #endif @@ -938,7 +949,6 @@ update_config (NMConnectivity *self, NMConfigData *config_data) changed = TRUE; } - /* Set the response. */ response = nm_config_data_get_connectivity_response (config_data); if (!nm_streq0 (response, priv->response)) { /* a response %NULL means, NM_CONFIG_DEFAULT_CONNECTIVITY_RESPONSE. Any other response From 2e8ea1f1daea653722b10b627b89f29cec44d346 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sat, 1 Dec 2018 18:30:41 +0100 Subject: [PATCH 14/18] connectivity: ensure uri and response stays alive during connectivity check The settings of NMConnectivity can change any time, by reloading the configuration. When reloading the configration, we don't want to interrupt or cancel the pending reuqests, they should just complete with the old settings with which they started. Note, that NMDevice is smart enough, that when a newer request completes earlier, it invalidates all older, still pending requests. Anyway, that means, we cannot rely on the value to stay alive. Fix that, by adding adding a new ref-counted struct for these parameters. Fixes: 2cec94bacce4a09c0e5ffa241b8d50fd4702dddc --- src/nm-connectivity.c | 187 +++++++++++++++++++++++++----------------- 1 file changed, 114 insertions(+), 73 deletions(-) diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c index 73690f3cae..0fc724b6e8 100644 --- a/src/nm-connectivity.c +++ b/src/nm-connectivity.c @@ -63,6 +63,14 @@ nm_connectivity_state_to_string (NMConnectivityState state) /*****************************************************************************/ +typedef struct { + guint ref_count; + char *uri; + char *host; + char *port; + char *response; +} ConConfig; + struct _NMConnectivityCheckHandle { CList handles_lst; NMConnectivity *self; @@ -76,17 +84,18 @@ struct _NMConnectivityCheckHandle { #if WITH_CONCHECK struct { - char *response; + ConConfig *con_config; - int ifindex; GCancellable *resolve_cancellable; CURLM *curl_mhandle; - guint curl_timer; CURL *curl_ehandle; struct curl_slist *request_headers; struct curl_slist *hosts; GString *recv_msg; + + guint curl_timer; + int ch_ifindex; } concheck; #endif @@ -112,11 +121,8 @@ static guint signals[LAST_SIGNAL] = { 0 }; typedef struct { CList handles_lst_head; CList completed_handles_lst_head; - char *uri; - char *host; - char *port; - char *response; NMConfig *config; + ConConfig *con_config; guint interval; bool enabled:1; @@ -163,6 +169,42 @@ NM_DEFINE_SINGLETON_GETTER (NMConnectivity, nm_connectivity_get, NM_TYPE_CONNECT /*****************************************************************************/ +static ConConfig * +_con_config_ref (ConConfig *con_config) +{ + if (con_config) { + nm_assert (con_config->ref_count > 0); + ++con_config->ref_count; + } + return con_config; +} + +static void +_con_config_unref (ConConfig *con_config) +{ + if (!con_config) + return; + + nm_assert (con_config->ref_count > 0); + + if (--con_config->ref_count != 0) + return; + + g_free (con_config->uri); + g_free (con_config->host); + g_free (con_config->port); + g_free (con_config->response); + g_slice_free (ConConfig, con_config); +} + +static const char * +_con_config_get_response (const ConConfig *con_config) +{ + return con_config->response ?: NM_CONFIG_DEFAULT_CONNECTIVITY_RESPONSE; +} + +/*****************************************************************************/ + static void cb_data_complete (NMConnectivityCheckHandle *cb_data, NMConnectivityState state, @@ -228,7 +270,7 @@ cb_data_complete (NMConnectivityCheckHandle *cb_data, * not use the self pointer too. */ #if WITH_CONCHECK - g_free (cb_data->concheck.response); + _con_config_unref (cb_data->concheck.con_config); if (cb_data->concheck.recv_msg) g_string_free (cb_data->concheck.recv_msg, TRUE); #endif @@ -281,12 +323,6 @@ _complete_queued (NMConnectivity *self) nm_g_object_unref (self_keep_alive); } -static const char * -_check_handle_get_response (NMConnectivityCheckHandle *cb_data) -{ - return cb_data->concheck.response ?: NM_CONFIG_DEFAULT_CONNECTIVITY_RESPONSE; -} - static gboolean _con_curl_check_connectivity (CURLM *mhandle, int sockfd, int ev_bitmask) { @@ -334,7 +370,7 @@ _con_curl_check_connectivity (CURLM *mhandle, int sockfd, int ev_bitmask) g_strdup_printf ("check failed: (%d) %s", msg->data.result, curl_easy_strerror (msg->data.result))); - } else if ( !((_check_handle_get_response (cb_data))[0]) + } else if ( !((_con_config_get_response (cb_data->concheck.con_config))[0]) && (curl_easy_getinfo (msg->easy_handle, CURLINFO_RESPONSE_CODE, &response_code) == CURLE_OK) && response_code == 204) { /* If we got a 204 response code (no content) and we actually @@ -516,7 +552,7 @@ easy_write_cb (void *buffer, size_t size, size_t nmemb, void *userdata) g_string_append_len (cb_data->concheck.recv_msg, buffer, len); - response = _check_handle_get_response (cb_data);; + response = _con_config_get_response (cb_data->concheck.con_config);; if ( response && cb_data->concheck.recv_msg->len >= strlen (response)) { /* We already have enough data -- check response */ @@ -580,7 +616,6 @@ _idle_cb (gpointer user_data) static void do_curl_request (NMConnectivityCheckHandle *cb_data) { - NMConnectivityPrivate *priv = NM_CONNECTIVITY_GET_PRIVATE (cb_data->self); CURLM *mhandle; CURL *ehandle; long resolve; @@ -598,7 +633,6 @@ do_curl_request (NMConnectivityCheckHandle *cb_data) return; } - cb_data->concheck.response = g_strdup (priv->response); cb_data->concheck.curl_mhandle = mhandle; cb_data->concheck.curl_ehandle = ehandle; cb_data->concheck.request_headers = curl_slist_append (NULL, "Connection: close"); @@ -625,7 +659,7 @@ do_curl_request (NMConnectivityCheckHandle *cb_data) g_warn_if_reached (); } - curl_easy_setopt (ehandle, CURLOPT_URL, priv->uri); + curl_easy_setopt (ehandle, CURLOPT_URL, cb_data->concheck.con_config->uri); curl_easy_setopt (ehandle, CURLOPT_WRITEFUNCTION, easy_write_cb); curl_easy_setopt (ehandle, CURLOPT_WRITEDATA, cb_data); curl_easy_setopt (ehandle, CURLOPT_HEADERFUNCTION, easy_header_cb); @@ -643,8 +677,6 @@ static void resolve_cb (GObject *object, GAsyncResult *res, gpointer user_data) { NMConnectivityCheckHandle *cb_data; - NMConnectivity *self; - NMConnectivityPrivate *priv; gs_unref_variant GVariant *result = NULL; gs_unref_variant GVariant *addresses = NULL; gsize no_addresses; @@ -659,8 +691,6 @@ resolve_cb (GObject *object, GAsyncResult *res, gpointer user_data) return; cb_data = user_data; - self = cb_data->self; - priv = NM_CONNECTIVITY_GET_PRIVATE (self); g_clear_object (&cb_data->concheck.resolve_cancellable); @@ -692,8 +722,8 @@ resolve_cb (GObject *object, GAsyncResult *res, gpointer user_data) continue; host_entry = g_strdup_printf ("%s:%s:%s", - priv->host, - priv->port ?: "80", + cb_data->concheck.con_config->host, + cb_data->concheck.con_config->port ?: "80", nm_utils_inet_ntop (addr_family, address_buf, str_addr)); cb_data->concheck.hosts = curl_slist_append (cb_data->concheck.hosts, host_entry); _LOG2T ("adding '%s' to curl resolve list", host_entry); @@ -729,18 +759,20 @@ nm_connectivity_check_start (NMConnectivity *self, cb_data->user_data = user_data; cb_data->completed_state = NM_CONNECTIVITY_UNKNOWN; cb_data->addr_family = addr_family; + cb_data->concheck.con_config = _con_config_ref (priv->con_config); if (iface) cb_data->ifspec = g_strdup_printf ("if!%s", iface); #if WITH_CONCHECK + if ( iface && ifindex > 0 && priv->enabled && priv->uri_valid) { gboolean has_systemd_resolved; - cb_data->concheck.ifindex = ifindex; + cb_data->concheck.ch_ifindex = ifindex; /* note that we pick up support for systemd-resolved right away when we need it. * We don't need to remember the setting, because we can (cheaply) check anew @@ -773,8 +805,8 @@ nm_connectivity_check_start (NMConnectivity *self, "org.freedesktop.resolve1.Manager", "ResolveHostname", g_variant_new ("(isit)", - (gint32) cb_data->concheck.ifindex, - priv->host, + (gint32) cb_data->concheck.ch_ifindex, + cb_data->concheck.con_config->host, (gint32) cb_data->addr_family, SD_RESOLVED_DNS), G_VARIANT_TYPE ("(a(iiay)st)"), @@ -784,11 +816,11 @@ nm_connectivity_check_start (NMConnectivity *self, resolve_cb, cb_data); _LOG2D ("start request to '%s' (try resolving '%s' using systemd-resolved)", - priv->uri, - priv->host); + cb_data->concheck.con_config->uri, + cb_data->concheck.con_config->host); } else { _LOG2D ("start request to '%s' (systemd-resolved not available)", - priv->uri); + cb_data->concheck.con_config->uri); do_curl_request (cb_data); } @@ -886,50 +918,71 @@ static void update_config (NMConnectivity *self, NMConfigData *config_data) { NMConnectivityPrivate *priv = NM_CONNECTIVITY_GET_PRIVATE (self); - const char *uri; - const char *response; guint interval; gboolean enabled; gboolean changed = FALSE; + const char *cur_uri = priv->con_config ? priv->con_config->uri : NULL; + const char *cur_response = priv->con_config ? priv->con_config->response : NULL; + const char *new_response; + const char *new_uri; + gboolean new_uri_valid = priv->uri_valid; + gboolean new_host_port = FALSE; + gs_free char *new_host = NULL; + gs_free char *new_port = NULL; - uri = nm_config_data_get_connectivity_uri (config_data); - if (!nm_streq0 (uri, priv->uri)) { - gboolean uri_valid; + new_uri = nm_config_data_get_connectivity_uri (config_data); + if (!nm_streq0 (new_uri, cur_uri)) { - uri_valid = (uri && *uri); - if (uri_valid) { - gs_free char *scheme = g_uri_parse_scheme (uri); + new_uri_valid = (new_uri && *new_uri); + if (new_uri_valid) { + gs_free char *scheme = g_uri_parse_scheme (new_uri); if (!scheme) { - _LOGE ("invalid URI '%s' for connectivity check.", uri); - uri_valid = FALSE; + _LOGE ("invalid URI '%s' for connectivity check.", new_uri); + new_uri_valid = FALSE; } else if (g_ascii_strcasecmp (scheme, "https") == 0) { - _LOGW ("use of HTTPS for connectivity checking is not reliable and is discouraged (URI: %s)", uri); + _LOGW ("use of HTTPS for connectivity checking is not reliable and is discouraged (URI: %s)", new_uri); } else if (g_ascii_strcasecmp (scheme, "http") != 0) { - _LOGE ("scheme of '%s' uri doesn't use a scheme that is allowed for connectivity check.", uri); - uri_valid = FALSE; + _LOGE ("scheme of '%s' uri doesn't use a scheme that is allowed for connectivity check.", new_uri); + new_uri_valid = FALSE; + } + if (new_uri_valid) { + new_host_port = TRUE; + if (!host_and_port_from_uri (new_uri, &new_host, &new_port)) { + _LOGE ("cannot parse host and port from '%s'", new_uri); + new_uri_valid = FALSE; + } } } - g_clear_pointer (&priv->host, g_free); - g_clear_pointer (&priv->port, g_free); - if (uri_valid) { - if (!host_and_port_from_uri (uri, &priv->host, &priv->port)) { - _LOGE ("cannot parse host and port from '%s'", uri); - uri_valid = FALSE; - } - } - - if ( priv->uri_valid != uri_valid - || ( uri_valid - && !nm_streq0 (priv->uri, uri))) + if ( new_uri_valid + || priv->uri_valid != new_uri_valid) changed = TRUE; - - g_free (priv->uri); - priv->uri = g_strdup (uri); - priv->uri_valid = uri_valid; } + new_response = nm_config_data_get_connectivity_response (config_data); + if (!nm_streq0 (new_response, cur_response)) + changed = TRUE; + + if ( !priv->con_config + || !nm_streq0 (new_uri, priv->con_config->uri) + || !nm_streq0 (new_response, priv->con_config->response)) { + if (!new_host_port) { + new_host = priv->con_config ? g_strdup (priv->con_config->host) : NULL; + new_port = priv->con_config ? g_strdup (priv->con_config->port) : NULL; + } + _con_config_unref (priv->con_config); + priv->con_config = g_slice_new (ConConfig); + *priv->con_config = (ConConfig) { + .ref_count = 1, + .uri = g_strdup (new_uri), + .response = g_strdup (new_response), + .host = g_steal_pointer (&new_host), + .port = g_steal_pointer (&new_port), + }; + } + priv->uri_valid = new_uri_valid; + interval = nm_config_data_get_connectivity_interval (config_data); interval = MIN (interval, (7 * 24 * 3600)); if (priv->interval != interval) { @@ -949,15 +1002,6 @@ update_config (NMConnectivity *self, NMConfigData *config_data) changed = TRUE; } - response = nm_config_data_get_connectivity_response (config_data); - if (!nm_streq0 (response, priv->response)) { - /* a response %NULL means, NM_CONFIG_DEFAULT_CONNECTIVITY_RESPONSE. Any other response - * (including "") is accepted. */ - g_free (priv->response); - priv->response = g_strdup (response); - changed = TRUE; - } - if (changed) g_signal_emit (self, signals[CONFIG_CHANGED], 0); } @@ -1016,10 +1060,7 @@ dispose (GObject *object) handles_lst))) cb_data_complete (cb_data, NM_CONNECTIVITY_DISPOSING, "shutting down"); - nm_clear_g_free (&priv->uri); - nm_clear_g_free (&priv->host); - nm_clear_g_free (&priv->port); - nm_clear_g_free (&priv->response); + nm_clear_pointer (&priv->con_config, _con_config_unref); #if WITH_CONCHECK curl_global_cleanup (); From 3e04d5a71591f66ace3878909c3d27905f0f3dec Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sun, 2 Dec 2018 00:06:54 +0100 Subject: [PATCH 15/18] connectivity: use 443 port for https URIs If the URI does not specify a port, we always assumed "80". That is wrong for https. Arguably, https is discouraged for connectivity checking, but we still shouldn't break it. Fixes: 9664f284a1d8575798daa9abf9cd7f49a19b48d9 --- src/nm-connectivity.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c index 0fc724b6e8..5f0567e9d0 100644 --- a/src/nm-connectivity.c +++ b/src/nm-connectivity.c @@ -936,12 +936,14 @@ update_config (NMConnectivity *self, NMConfigData *config_data) new_uri_valid = (new_uri && *new_uri); if (new_uri_valid) { gs_free char *scheme = g_uri_parse_scheme (new_uri); + gboolean is_https = FALSE; if (!scheme) { _LOGE ("invalid URI '%s' for connectivity check.", new_uri); new_uri_valid = FALSE; } else if (g_ascii_strcasecmp (scheme, "https") == 0) { _LOGW ("use of HTTPS for connectivity checking is not reliable and is discouraged (URI: %s)", new_uri); + is_https = TRUE; } else if (g_ascii_strcasecmp (scheme, "http") != 0) { _LOGE ("scheme of '%s' uri doesn't use a scheme that is allowed for connectivity check.", new_uri); new_uri_valid = FALSE; @@ -951,7 +953,8 @@ update_config (NMConnectivity *self, NMConfigData *config_data) if (!host_and_port_from_uri (new_uri, &new_host, &new_port)) { _LOGE ("cannot parse host and port from '%s'", new_uri); new_uri_valid = FALSE; - } + } else if (!new_port && is_https) + new_port = g_strdup ("443"); } } From 1fac911cf0c200b3c85625cad02daa05eaf4c225 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sun, 2 Dec 2018 20:22:19 +0100 Subject: [PATCH 16/18] connectivity: log address family for device's connectivity checks --- src/devices/nm-device.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 5285bacda6..ceb1e91b89 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -2496,7 +2496,8 @@ static void concheck_periodic_schedule_set (NMDevice *self, static gboolean _concheck_periodic_timeout_cb (NMDevice *self, int addr_family) { - _LOGt (LOGD_CONCHECK, "connectivity: periodic timeout"); + _LOGt (LOGD_CONCHECK, "connectivity: [IPv%c] periodic timeout", + nm_utils_addr_family_to_char (addr_family)); concheck_periodic_schedule_set (self, addr_family, CONCHECK_SCHEDULE_CHECK_PERIODIC); return G_SOURCE_REMOVE; } @@ -2560,7 +2561,8 @@ concheck_periodic_schedule_do (NMDevice *self, int addr_family, gint64 now_ns) expiry = priv->concheck_x[IS_IPv4].p_cur_basetime_ns + (priv->concheck_x[IS_IPv4].p_cur_interval * NM_UTILS_NS_PER_SECOND); tdiff = expiry - now_ns; - _LOGT (LOGD_CONCHECK, "connectivity: periodic-check: %sscheduled in %lld milliseconds (%u seconds interval)", + _LOGT (LOGD_CONCHECK, "connectivity: [IPv%c] periodic-check: %sscheduled in %lld milliseconds (%u seconds interval)", + nm_utils_addr_family_to_char (addr_family), periodic_check_disabled ? "re-" : "", (long long) (tdiff / NM_UTILS_NS_PER_MSEC), priv->concheck_x[IS_IPv4].p_cur_interval); @@ -2571,8 +2573,10 @@ concheck_periodic_schedule_do (NMDevice *self, int addr_family, gint64 now_ns) self); return TRUE; out: - if (periodic_check_disabled) - _LOGT (LOGD_CONCHECK, "connectivity: periodic-check: unscheduled"); + if (periodic_check_disabled) { + _LOGT (LOGD_CONCHECK, "connectivity: [IPv%c] periodic-check: unscheduled", + nm_utils_addr_family_to_char (addr_family)); + } return FALSE; } @@ -2737,7 +2741,8 @@ concheck_update_interval (NMDevice *self, int addr_family, gboolean check_now) new_interval = NM_MIN (new_interval, 7 *24 * 3600); if (new_interval != priv->concheck_x[IS_IPv4].p_max_interval) { - _LOGT (LOGD_CONCHECK, "connectivity: periodic-check: set interval to %u seconds", new_interval); + _LOGT (LOGD_CONCHECK, "connectivity: [IPv%c] periodic-check: set interval to %u seconds", + nm_utils_addr_family_to_char (addr_family), new_interval); priv->concheck_x[IS_IPv4].p_max_interval = new_interval; } @@ -2895,7 +2900,8 @@ concheck_cb (NMConnectivity *connectivity, /* the only place where we nm_connectivity_check_cancel(@c_handle), is * from inside concheck_handle_complete(). This is a recursive call, * nothing to do. */ - _LOGT (LOGD_CONCHECK, "connectivity: complete check (seq:%llu, cancelled)", + _LOGT (LOGD_CONCHECK, "connectivity: [IPv%c] complete check (seq:%llu, cancelled)", + nm_utils_addr_family_to_char (handle->addr_family), (long long unsigned) handle->seq); return; } @@ -2905,7 +2911,8 @@ concheck_cb (NMConnectivity *connectivity, self_keep_alive = g_object_ref (self); - _LOGT (LOGD_CONCHECK, "connectivity: complete check (seq:%llu, state:%s)", + _LOGT (LOGD_CONCHECK, "connectivity: [Ipv%c] complete check (seq:%llu, state:%s)", + nm_utils_addr_family_to_char (handle->addr_family), (long long unsigned) handle->seq, nm_connectivity_state_to_string (state)); @@ -3025,7 +3032,8 @@ concheck_start (NMDevice *self, c_list_link_tail (&priv->concheck_lst_head, &handle->concheck_lst); - _LOGT (LOGD_CONCHECK, "connectivity: start check (seq:%llu%s)", + _LOGT (LOGD_CONCHECK, "connectivity: [IPv%c] start check (seq:%llu%s)", + nm_utils_addr_family_to_char (addr_family), (long long unsigned) handle->seq, is_periodic ? ", periodic-check" : ""); From 128aec5c2ea1206b26210a0d256adbd34276a401 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 3 Dec 2018 11:02:21 +0100 Subject: [PATCH 17/18] connectivity: issue connectivity check right away on configuration reload --- src/devices/nm-device.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index ceb1e91b89..d90e4d819b 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -2766,8 +2766,8 @@ concheck_update_interval (NMDevice *self, int addr_family, gboolean check_now) void nm_device_check_connectivity_update_interval (NMDevice *self) { - concheck_update_interval (self, AF_INET, FALSE); - concheck_update_interval (self, AF_INET6, FALSE); + concheck_update_interval (self, AF_INET, TRUE); + concheck_update_interval (self, AF_INET6, TRUE); } static void From 54ebe32f68ddd4ead8a4a426ff05e05295964610 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 3 Dec 2018 11:09:39 +0100 Subject: [PATCH 18/18] connectivity: consider default route for global connectivity state When we agregate the connectivity state, only devices that have the best default route should be considered. Since we do connectivity checking per-device, the per-device check does not care whether traffic to the internet is really routed via this device. But when talking about the global connectivity state, we care mostly about the (best) default route. So, we should not allow a device with worse or now default route, to contribute its connectivity state. Fixes: 6b7e9f9b225e81d365fd95901a88a7bc59c1eb39 --- src/devices/nm-device.c | 17 +++++-- src/devices/nm-device.h | 2 +- src/nm-manager.c | 103 +++++++++++++++++++++++++++++----------- 3 files changed, 89 insertions(+), 33 deletions(-) diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index d90e4d819b..97b02d8620 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -3080,17 +3080,26 @@ nm_device_check_connectivity_cancel (NMDeviceConnectivityHandle *handle) } NMConnectivityState -nm_device_get_connectivity_state (NMDevice *self) +nm_device_get_connectivity_state (NMDevice *self, int addr_family) { NMDevicePrivate *priv; + const gboolean IS_IPv4 = (addr_family == AF_INET); g_return_val_if_fail (NM_IS_DEVICE (self), NM_CONNECTIVITY_UNKNOWN); + nm_assert_addr_family (addr_family); priv = NM_DEVICE_GET_PRIVATE (self); - return NM_MAX_WITH_CMP (nm_connectivity_state_cmp, - priv->concheck_x[0].state, - priv->concheck_x[1].state); + switch (addr_family) { + case AF_INET: + case AF_INET6: + return priv->concheck_x[IS_IPv4].state; + default: + nm_assert (addr_family == AF_UNSPEC); + return NM_MAX_WITH_CMP (nm_connectivity_state_cmp, + priv->concheck_x[0].state, + priv->concheck_x[1].state); + } } /*****************************************************************************/ diff --git a/src/devices/nm-device.h b/src/devices/nm-device.h index cd07e24630..8957f3fa5b 100644 --- a/src/devices/nm-device.h +++ b/src/devices/nm-device.h @@ -855,7 +855,7 @@ NMDeviceConnectivityHandle *nm_device_check_connectivity (NMDevice *self, void nm_device_check_connectivity_cancel (NMDeviceConnectivityHandle *handle); -NMConnectivityState nm_device_get_connectivity_state (NMDevice *self); +NMConnectivityState nm_device_get_connectivity_state (NMDevice *self, int addr_family); typedef struct _NMBtVTableNetworkServer NMBtVTableNetworkServer; struct _NMBtVTableNetworkServer { diff --git a/src/nm-manager.c b/src/nm-manager.c index 11809de3d2..2b14918683 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -2843,44 +2843,91 @@ device_realized (NMDevice *device, _emit_device_added_removed (self, device, nm_device_is_real (device)); } +static NMConnectivityState +_get_best_connectivity (NMManager *self, int addr_family) +{ + NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); + NMConnectivityState best_state; + NMDevice *dev; + gint64 best_metric; + + if (addr_family == AF_UNSPEC) { + best_state = _get_best_connectivity (self, AF_INET); + if (nm_connectivity_state_cmp (best_state, NM_CONNECTIVITY_FULL) >= 0) { + /* already FULL IPv4 connectivity. No need to check IPv6, it doesn't get + * better. */ + return best_state; + } + return NM_MAX_WITH_CMP (nm_connectivity_state_cmp, + best_state, + _get_best_connectivity (self, AF_INET6)); + } + + nm_assert_addr_family (addr_family); + + best_state = NM_CONNECTIVITY_UNKNOWN; + best_metric = G_MAXINT64; + c_list_for_each_entry (dev, &priv->devices_lst_head, devices_lst) { + const NMPObject *r; + NMConnectivityState state; + gint64 metric; + + r = nm_device_get_best_default_route (dev, addr_family); + if (r) { + metric = nm_utils_ip_route_metric_normalize (addr_family, + NMP_OBJECT_CAST_IP_ROUTE (r)->metric); + } else { + /* if all devices have no default-route, we still include the best + * of all connectivity state of all the devices. */ + metric = G_MAXINT64; + } + + if (metric > best_metric) { + /* we already have a default route with better metric. The connectivity state + * of this device is irreleavnt. */ + continue; + } + + state = nm_device_get_connectivity_state (dev, addr_family); + if (metric < best_metric) { + /* this device has a better default route. It wins. */ + best_metric = metric; + best_state = state; + } else { + best_state = NM_MAX_WITH_CMP (nm_connectivity_state_cmp, + best_state, + state); + } + + if (nm_connectivity_state_cmp (best_state, NM_CONNECTIVITY_FULL) >= 0) { + /* it doesn't get better than FULL. We are done. */ + break; + } + } + + return best_state; +} + static void device_connectivity_changed (NMDevice *device, GParamSpec *pspec, NMManager *self) { NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - NMConnectivityState best_state = NM_CONNECTIVITY_UNKNOWN; - NMConnectivityState state; - NMDevice *dev; + NMConnectivityState best_state; - best_state = nm_device_get_connectivity_state (device); - if (best_state < NM_CONNECTIVITY_FULL) { - /* FIXME: is this really correct, to considere devices that don't have - * (the best) default route for connectivity checking? */ - c_list_for_each_entry (dev, &priv->devices_lst_head, devices_lst) { - state = nm_device_get_connectivity_state (dev); - if (nm_connectivity_state_cmp (state, best_state) <= 0) - continue; - best_state = state; - if (nm_connectivity_state_cmp (best_state, NM_CONNECTIVITY_FULL) >= 0) { - /* it doesn't get better than this. */ - break; - } - } - } - nm_assert (best_state <= NM_CONNECTIVITY_FULL); - nm_assert (nm_connectivity_state_cmp (best_state, NM_CONNECTIVITY_FULL) <= 0); + best_state = _get_best_connectivity (self, AF_UNSPEC); + if (best_state == priv->connectivity_state) + return; - if (best_state != priv->connectivity_state) { - priv->connectivity_state = best_state; + priv->connectivity_state = best_state; - _LOGD (LOGD_CORE, "connectivity checking indicates %s", - nm_connectivity_state_to_string (priv->connectivity_state)); + _LOGD (LOGD_CORE, "connectivity checking indicates %s", + nm_connectivity_state_to_string (priv->connectivity_state)); - nm_manager_update_state (self); - _notify (self, PROP_CONNECTIVITY); - nm_dispatcher_call_connectivity (priv->connectivity_state, NULL, NULL, NULL); - } + nm_manager_update_state (self); + _notify (self, PROP_CONNECTIVITY); + nm_dispatcher_call_connectivity (priv->connectivity_state, NULL, NULL, NULL); } static void