summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-10-02 17:19:33 +0200
committerThomas Haller <thaller@redhat.com>2019-10-03 10:46:49 +0200
commitf45aeba40231dbee0e2e7640eebc6bdaa15fdc32 (patch)
tree3e750810dcf318d9307343aed09018e31171d7bd
parente90684a169a7e3ae5043f9f34363521d653f997b (diff)
downloadNetworkManager-f45aeba40231dbee0e2e7640eebc6bdaa15fdc32.tar.gz
libnm: deprecate nm_client_check_connectivity() in 1.22
The previous commit marks all synchronous libnm API as deprecated. In practice, the macro _NM_DEPRECATED_SYNC_METHOD expands to nothing, because there is no immediate urgency to force users to migrate. However nm_client_check_connectivity() is especially bad: it makes a synchronous call and then updates the content of the cache artificially. Usually, NMClient's cache of D-Bus objects is only updated by "PropertiesChanged" D-Bus signals. nm_client_check_connectivity() instead will act on the response to the "CheckConnectivity" D-Bus call -- a response that is picked out of order from the ordered sequence of messages -- and will update the cache instead of honoring the usual "PropertiesChanged" signal. I think such behavior is fundamentally broken. For a trivial property like NM_CLIENT_CONNECTIVITY such behavior is odd at best. Note how applying this approach to other functions (like nm_client_deactivate_connection(), which would affect a much larger state) would not be feasible. I also imagine it to be complicate to preserve this behavior when reworking libnm, as I plan to do. See also commit b799de281bc0 ('libnm: update property in the manager after connectivity check'), which introduced this behavior to "fix" bgo#784629.
-rw-r--r--libnm/nm-client.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/libnm/nm-client.h b/libnm/nm-client.h
index 6e6d883e78..0b3b0e36e7 100644
--- a/libnm/nm-client.h
+++ b/libnm/nm-client.h
@@ -292,6 +292,7 @@ NMClientPermissionResult nm_client_get_permission_result (NMClient *client,
NMConnectivityState nm_client_get_connectivity (NMClient *client);
_NM_DEPRECATED_SYNC_METHOD
+NM_DEPRECATED_IN_1_22
NMConnectivityState nm_client_check_connectivity (NMClient *client,
GCancellable *cancellable,
GError **error);