platform: fix return value for do_delete_object()

The return value for the delete methods checks whether the object
is actually deleted. That is questionable behavior, because if the netlink
request succeeds, there is little point in checking with the platform cache.
As it is, it is racy.

Anyway, the previous value was totally wrong.

But it also uncovers another platform bug, which currently breaks
route tests. Will be fixed next.

(cherry picked from commit 5b09f7151b)
This commit is contained in:
Thomas Haller 2017-07-11 16:38:49 +02:00
parent b72b8ef34c
commit 39b947fc7f
2 changed files with 3 additions and 2 deletions

View file

@ -4230,7 +4230,7 @@ out:
/* such an object still exists in the cache. To be sure, refetch it (and
* hope it's gone) */
do_request_one_type (platform, NMP_OBJECT_GET_TYPE (obj_id));
return !!nmp_cache_lookup_obj (priv->cache, obj_id);
return !nmp_cache_lookup_obj (priv->cache, obj_id);
}
static WaitForNlResponseResult

View file

@ -421,7 +421,8 @@ test_ip4_route_options (void)
nmtst_platform_ip4_routes_equal ((NMPlatformIP4Route *) routes->data, rts, routes->len, TRUE);
/* Remove route */
g_assert (nm_platform_ip4_route_delete (NM_PLATFORM_GET, ifindex, network, 24, 20));
/* FIXME. Due to a bug, we cannot delete routes with non-zero TOS. See bgo#785004. */
//g_assert (nm_platform_ip4_route_delete (NM_PLATFORM_GET, ifindex, network, 24, 20));
g_array_unref (routes);
}