platform: merge branch 'th/platform-nmp-object-lookup'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1281
This commit is contained in:
@@ -1694,7 +1694,7 @@ nm_utils_platform_capture_ip_setting(NMPlatform *platform,
|
|||||||
return NM_SETTING(g_steal_pointer(&s_ip));
|
return NM_SETTING(g_steal_pointer(&s_ip));
|
||||||
}
|
}
|
||||||
|
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP_ADDRESS(IS_IPv4), ifindex);
|
nmp_lookup_init_object_by_ifindex(&lookup, NMP_OBJECT_TYPE_IP_ADDRESS(IS_IPv4), ifindex);
|
||||||
nm_platform_iter_obj_for_each (&iter, platform, &lookup, &obj) {
|
nm_platform_iter_obj_for_each (&iter, platform, &lookup, &obj) {
|
||||||
const NMPlatformIPXAddress *address = NMP_OBJECT_CAST_IPX_ADDRESS(obj);
|
const NMPlatformIPXAddress *address = NMP_OBJECT_CAST_IPX_ADDRESS(obj);
|
||||||
nm_auto_unref_ip_address NMIPAddress *s_addr = NULL;
|
nm_auto_unref_ip_address NMIPAddress *s_addr = NULL;
|
||||||
@@ -1748,7 +1748,7 @@ nm_utils_platform_capture_ip_setting(NMPlatform *platform,
|
|||||||
}
|
}
|
||||||
g_object_set(s_ip, NM_SETTING_IP_CONFIG_METHOD, method, NULL);
|
g_object_set(s_ip, NM_SETTING_IP_CONFIG_METHOD, method, NULL);
|
||||||
|
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP_ROUTE(IS_IPv4), ifindex);
|
nmp_lookup_init_object_by_ifindex(&lookup, NMP_OBJECT_TYPE_IP_ROUTE(IS_IPv4), ifindex);
|
||||||
nm_platform_iter_obj_for_each (&iter, platform, &lookup, &obj) {
|
nm_platform_iter_obj_for_each (&iter, platform, &lookup, &obj) {
|
||||||
const NMPlatformIPXRoute *route = NMP_OBJECT_CAST_IPX_ROUTE(obj);
|
const NMPlatformIPXRoute *route = NMP_OBJECT_CAST_IPX_ROUTE(obj);
|
||||||
nm_auto_unref_ip_route NMIPRoute *s_route = NULL;
|
nm_auto_unref_ip_route NMIPRoute *s_route = NULL;
|
||||||
|
@@ -8323,13 +8323,13 @@ device_has_config(NMDevice *self)
|
|||||||
|
|
||||||
head_entry = nm_platform_lookup(
|
head_entry = nm_platform_lookup(
|
||||||
nm_device_get_platform(self),
|
nm_device_get_platform(self),
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP4_ADDRESS, pllink->ifindex));
|
nmp_lookup_init_object_by_ifindex(&lookup, NMP_OBJECT_TYPE_IP4_ADDRESS, pllink->ifindex));
|
||||||
if (head_entry)
|
if (head_entry)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
head_entry = nm_platform_lookup(
|
head_entry = nm_platform_lookup(
|
||||||
nm_device_get_platform(self),
|
nm_device_get_platform(self),
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP6_ADDRESS, pllink->ifindex));
|
nmp_lookup_init_object_by_ifindex(&lookup, NMP_OBJECT_TYPE_IP6_ADDRESS, pllink->ifindex));
|
||||||
if (head_entry)
|
if (head_entry)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
@@ -17017,7 +17017,7 @@ get_address_for_hostname_dns_lookup(NMDevice *self, int addr_family)
|
|||||||
* opposed to an address that is configured? */
|
* opposed to an address that is configured? */
|
||||||
head_entry = nm_platform_lookup(
|
head_entry = nm_platform_lookup(
|
||||||
nm_device_get_platform(self),
|
nm_device_get_platform(self),
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP_ADDRESS(IS_IPv4), ifindex));
|
nmp_lookup_init_object_by_ifindex(&lookup, NMP_OBJECT_TYPE_IP_ADDRESS(IS_IPv4), ifindex));
|
||||||
|
|
||||||
if (head_entry) {
|
if (head_entry) {
|
||||||
c_list_for_each_entry (iter, &head_entry->lst_entries_head, lst_entries) {
|
c_list_for_each_entry (iter, &head_entry->lst_entries_head, lst_entries) {
|
||||||
|
@@ -1020,7 +1020,9 @@ ipv6_lladdr_find(NMDhcpClient *self)
|
|||||||
nm_assert(!NM_IS_IPv4(priv->config.addr_family));
|
nm_assert(!NM_IS_IPv4(priv->config.addr_family));
|
||||||
|
|
||||||
l3cfg = priv->config.l3cfg;
|
l3cfg = priv->config.l3cfg;
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP6_ADDRESS, nm_l3cfg_get_ifindex(l3cfg));
|
nmp_lookup_init_object_by_ifindex(&lookup,
|
||||||
|
NMP_OBJECT_TYPE_IP6_ADDRESS,
|
||||||
|
nm_l3cfg_get_ifindex(l3cfg));
|
||||||
|
|
||||||
nm_platform_iter_obj_for_each (&iter, nm_l3cfg_get_platform(l3cfg), &lookup, &obj) {
|
nm_platform_iter_obj_for_each (&iter, nm_l3cfg_get_platform(l3cfg), &lookup, &obj) {
|
||||||
const NMPlatformIP6Address *pladdr = NMP_OBJECT_CAST_IP6_ADDRESS(obj);
|
const NMPlatformIP6Address *pladdr = NMP_OBJECT_CAST_IP6_ADDRESS(obj);
|
||||||
|
@@ -672,7 +672,9 @@ _ipv4ll_platform_find_addr(NML3IPv4LL *self, const NML3AcdAddrInfo **out_acd_inf
|
|||||||
const NML3AcdAddrInfo *acd_info;
|
const NML3AcdAddrInfo *acd_info;
|
||||||
const NMPlatformIP4Address *addr;
|
const NMPlatformIP4Address *addr;
|
||||||
|
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP4_ADDRESS, nm_l3_ipv4ll_get_ifindex(self));
|
nmp_lookup_init_object_by_ifindex(&lookup,
|
||||||
|
NMP_OBJECT_TYPE_IP4_ADDRESS,
|
||||||
|
nm_l3_ipv4ll_get_ifindex(self));
|
||||||
nm_platform_iter_obj_for_each (&iter, nm_l3_ipv4ll_get_platform(self), &lookup, &obj) {
|
nm_platform_iter_obj_for_each (&iter, nm_l3_ipv4ll_get_platform(self), &lookup, &obj) {
|
||||||
addr = NMP_OBJECT_CAST_IP4_ADDRESS(obj);
|
addr = NMP_OBJECT_CAST_IP4_ADDRESS(obj);
|
||||||
if (!_ip4_address_is_link_local(addr))
|
if (!_ip4_address_is_link_local(addr))
|
||||||
|
@@ -343,7 +343,9 @@ _pladdr_find_ll(NML3IPv6LL *self, gboolean *out_cur_addr_failed)
|
|||||||
if (!NM_IN_SET(self->state, NM_L3_IPV6LL_STATE_DAD_IN_PROGRESS, NM_L3_IPV6LL_STATE_READY))
|
if (!NM_IN_SET(self->state, NM_L3_IPV6LL_STATE_DAD_IN_PROGRESS, NM_L3_IPV6LL_STATE_READY))
|
||||||
cur_addr_check = FALSE;
|
cur_addr_check = FALSE;
|
||||||
|
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP6_ADDRESS, nm_l3_ipv6ll_get_ifindex(self));
|
nmp_lookup_init_object_by_ifindex(&lookup,
|
||||||
|
NMP_OBJECT_TYPE_IP6_ADDRESS,
|
||||||
|
nm_l3_ipv6ll_get_ifindex(self));
|
||||||
|
|
||||||
nm_platform_iter_obj_for_each (&iter, nm_l3_ipv6ll_get_platform(self), &lookup, &obj) {
|
nm_platform_iter_obj_for_each (&iter, nm_l3_ipv6ll_get_platform(self), &lookup, &obj) {
|
||||||
const NMPlatformIP6Address *pladdr = NMP_OBJECT_CAST_IP6_ADDRESS(obj);
|
const NMPlatformIP6Address *pladdr = NMP_OBJECT_CAST_IP6_ADDRESS(obj);
|
||||||
|
@@ -4625,7 +4625,9 @@ nm_l3cfg_has_commited_ip6_addresses_pending_dad(NML3Cfg *self)
|
|||||||
* Of course, all lookups are O(1) anyway, so in any case the operation is
|
* Of course, all lookups are O(1) anyway, so in any case the operation is
|
||||||
* O(n) (once "n" being the addresses in platform, and once in l3cd). */
|
* O(n) (once "n" being the addresses in platform, and once in l3cd). */
|
||||||
|
|
||||||
nmp_lookup_init_object(&plat_lookup, NMP_OBJECT_TYPE_IP6_ADDRESS, self->priv.ifindex);
|
nmp_lookup_init_object_by_ifindex(&plat_lookup,
|
||||||
|
NMP_OBJECT_TYPE_IP6_ADDRESS,
|
||||||
|
self->priv.ifindex);
|
||||||
|
|
||||||
nm_platform_iter_obj_for_each (&iter, self->priv.platform, &plat_lookup, &plat_obj) {
|
nm_platform_iter_obj_for_each (&iter, self->priv.platform, &plat_lookup, &plat_obj) {
|
||||||
const NMPlatformIP6Address *plat_addr = NMP_OBJECT_CAST_IP6_ADDRESS(plat_obj);
|
const NMPlatformIP6Address *plat_addr = NMP_OBJECT_CAST_IP6_ADDRESS(plat_obj);
|
||||||
|
@@ -70,7 +70,7 @@ _ipx_address_get_all(NMPlatform *self, int ifindex, NMPObjectType obj_type)
|
|||||||
g_assert(NM_IS_PLATFORM(self));
|
g_assert(NM_IS_PLATFORM(self));
|
||||||
g_assert(ifindex > 0);
|
g_assert(ifindex > 0);
|
||||||
g_assert(NM_IN_SET(obj_type, NMP_OBJECT_TYPE_IP4_ADDRESS, NMP_OBJECT_TYPE_IP6_ADDRESS));
|
g_assert(NM_IN_SET(obj_type, NMP_OBJECT_TYPE_IP4_ADDRESS, NMP_OBJECT_TYPE_IP6_ADDRESS));
|
||||||
nmp_lookup_init_object(&lookup, obj_type, ifindex);
|
nmp_lookup_init_object_by_ifindex(&lookup, obj_type, ifindex);
|
||||||
return nmp_cache_lookup_to_array(nm_platform_lookup(self, &lookup),
|
return nmp_cache_lookup_to_array(nm_platform_lookup(self, &lookup),
|
||||||
obj_type,
|
obj_type,
|
||||||
FALSE /*addresses are always visible. */);
|
FALSE /*addresses are always visible. */);
|
||||||
@@ -103,7 +103,7 @@ nmtstp_platform_ip_address_find(NMPlatform *self, int ifindex, int addr_family,
|
|||||||
nm_assert(addr);
|
nm_assert(addr);
|
||||||
|
|
||||||
if (ifindex > 0)
|
if (ifindex > 0)
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP_ADDRESS(IS_IPv4), ifindex);
|
nmp_lookup_init_object_by_ifindex(&lookup, NMP_OBJECT_TYPE_IP_ADDRESS(IS_IPv4), ifindex);
|
||||||
else
|
else
|
||||||
nmp_lookup_init_obj_type(&lookup, NMP_OBJECT_TYPE_IP_ADDRESS(IS_IPv4));
|
nmp_lookup_init_obj_type(&lookup, NMP_OBJECT_TYPE_IP_ADDRESS(IS_IPv4));
|
||||||
|
|
||||||
@@ -187,7 +187,9 @@ _nmtstp_platform_ip_addresses_assert(const char *filename,
|
|||||||
|
|
||||||
plat_addrs = nm_platform_lookup_clone(
|
plat_addrs = nm_platform_lookup_clone(
|
||||||
self,
|
self,
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP_ADDRESS(IS_IPv4), ifindex),
|
nmp_lookup_init_object_by_ifindex(&lookup,
|
||||||
|
NMP_OBJECT_TYPE_IP_ADDRESS(IS_IPv4),
|
||||||
|
ifindex),
|
||||||
NULL,
|
NULL,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
@@ -551,7 +551,9 @@ test_cache_qdisc(void)
|
|||||||
g_assert(nmp_cache_lookup_obj(cache, obj1b) == obj1b);
|
g_assert(nmp_cache_lookup_obj(cache, obj1b) == obj1b);
|
||||||
g_assert(nmp_cache_lookup_obj(cache, obj2) == obj2);
|
g_assert(nmp_cache_lookup_obj(cache, obj2) == obj2);
|
||||||
|
|
||||||
head_entry = nmp_cache_lookup(cache, nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_QDISC, 1));
|
head_entry =
|
||||||
|
nmp_cache_lookup(cache,
|
||||||
|
nmp_lookup_init_object_by_ifindex(&lookup, NMP_OBJECT_TYPE_QDISC, 1));
|
||||||
g_assert(head_entry->len == 2);
|
g_assert(head_entry->len == 2);
|
||||||
|
|
||||||
nmp_cache_free(cache);
|
nmp_cache_free(cache);
|
||||||
|
@@ -35,8 +35,9 @@ _wait_for_ipv4_addr_device_route(NMPlatform *platform,
|
|||||||
|
|
||||||
nmp_cache_iter_for_each (
|
nmp_cache_iter_for_each (
|
||||||
&iter,
|
&iter,
|
||||||
nm_platform_lookup(platform,
|
nm_platform_lookup(
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP4_ROUTE, ifindex)),
|
platform,
|
||||||
|
nmp_lookup_init_object_by_ifindex(&lookup, NMP_OBJECT_TYPE_IP4_ROUTE, ifindex)),
|
||||||
&o) {
|
&o) {
|
||||||
const NMPlatformIP4Route *r = NMP_OBJECT_CAST_IP4_ROUTE(o);
|
const NMPlatformIP4Route *r = NMP_OBJECT_CAST_IP4_ROUTE(o);
|
||||||
|
|
||||||
|
@@ -30,8 +30,9 @@ qdiscs_lookup(int ifindex)
|
|||||||
{
|
{
|
||||||
NMPLookup lookup;
|
NMPLookup lookup;
|
||||||
|
|
||||||
return nm_platform_lookup_clone(NM_PLATFORM_GET,
|
return nm_platform_lookup_clone(
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_QDISC, ifindex),
|
NM_PLATFORM_GET,
|
||||||
|
nmp_lookup_init_object_by_ifindex(&lookup, NMP_OBJECT_TYPE_QDISC, ifindex),
|
||||||
NULL,
|
NULL,
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
|
@@ -821,7 +821,7 @@ _test_l3_ipv6ll_find_lladdr(TestL3IPv6LLData *tdata, int ifindex)
|
|||||||
|
|
||||||
g_assert(tdata);
|
g_assert(tdata);
|
||||||
|
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP6_ADDRESS, ifindex);
|
nmp_lookup_init_object_by_ifindex(&lookup, NMP_OBJECT_TYPE_IP6_ADDRESS, ifindex);
|
||||||
nm_platform_iter_obj_for_each (&iter, tdata->f->platform, &lookup, &obj) {
|
nm_platform_iter_obj_for_each (&iter, tdata->f->platform, &lookup, &obj) {
|
||||||
const NMPlatformIP6Address *a = NMP_OBJECT_CAST_IP6_ADDRESS(obj);
|
const NMPlatformIP6Address *a = NMP_OBJECT_CAST_IP6_ADDRESS(obj);
|
||||||
|
|
||||||
|
@@ -8603,11 +8603,11 @@ link_can_assume(NMPlatform *platform, int ifindex)
|
|||||||
if (link->link.master > 0)
|
if (link->link.master > 0)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP4_ADDRESS, ifindex);
|
nmp_lookup_init_object_by_ifindex(&lookup, NMP_OBJECT_TYPE_IP4_ADDRESS, ifindex);
|
||||||
if (nmp_cache_lookup(cache, &lookup))
|
if (nmp_cache_lookup(cache, &lookup))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP6_ADDRESS, ifindex);
|
nmp_lookup_init_object_by_ifindex(&lookup, NMP_OBJECT_TYPE_IP6_ADDRESS, ifindex);
|
||||||
nmp_cache_iter_for_each (&iter, nmp_cache_lookup(cache, &lookup), &o) {
|
nmp_cache_iter_for_each (&iter, nmp_cache_lookup(cache, &lookup), &o) {
|
||||||
nm_assert(NMP_OBJECT_GET_TYPE(o) == NMP_OBJECT_TYPE_IP6_ADDRESS);
|
nm_assert(NMP_OBJECT_GET_TYPE(o) == NMP_OBJECT_TYPE_IP6_ADDRESS);
|
||||||
if (!IN6_IS_ADDR_LINKLOCAL(&o->ip6_address.address))
|
if (!IN6_IS_ADDR_LINKLOCAL(&o->ip6_address.address))
|
||||||
|
@@ -4133,7 +4133,7 @@ nm_platform_ip_address_sync(NMPlatform *self,
|
|||||||
* we check the "secondary" flag. */
|
* we check the "secondary" flag. */
|
||||||
plat_addresses = nm_platform_lookup_clone(
|
plat_addresses = nm_platform_lookup_clone(
|
||||||
self,
|
self,
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP_ADDRESS(IS_IPv4), ifindex),
|
nmp_lookup_init_object_by_ifindex(&lookup, NMP_OBJECT_TYPE_IP_ADDRESS(IS_IPv4), ifindex),
|
||||||
NULL,
|
NULL,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
@@ -4545,7 +4545,9 @@ nm_platform_ip_address_get_prune_list(NMPlatform *self,
|
|||||||
GPtrArray *result = NULL;
|
GPtrArray *result = NULL;
|
||||||
CList *iter;
|
CList *iter;
|
||||||
|
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP_ADDRESS(NM_IS_IPv4(addr_family)), ifindex);
|
nmp_lookup_init_object_by_ifindex(&lookup,
|
||||||
|
NMP_OBJECT_TYPE_IP_ADDRESS(NM_IS_IPv4(addr_family)),
|
||||||
|
ifindex);
|
||||||
|
|
||||||
head_entry = nm_platform_lookup(self, &lookup);
|
head_entry = nm_platform_lookup(self, &lookup);
|
||||||
|
|
||||||
@@ -4626,7 +4628,9 @@ nm_platform_ip_route_get_prune_list(NMPlatform *self,
|
|||||||
NM_IP_ROUTE_TABLE_SYNC_MODE_ALL,
|
NM_IP_ROUTE_TABLE_SYNC_MODE_ALL,
|
||||||
NM_IP_ROUTE_TABLE_SYNC_MODE_ALL_PRUNE));
|
NM_IP_ROUTE_TABLE_SYNC_MODE_ALL_PRUNE));
|
||||||
|
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP_ROUTE(NM_IS_IPv4(addr_family)), ifindex);
|
nmp_lookup_init_object_by_ifindex(&lookup,
|
||||||
|
NMP_OBJECT_TYPE_IP_ROUTE(NM_IS_IPv4(addr_family)),
|
||||||
|
ifindex);
|
||||||
head_entry = nm_platform_lookup(self, &lookup);
|
head_entry = nm_platform_lookup(self, &lookup);
|
||||||
if (!head_entry)
|
if (!head_entry)
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -8983,7 +8987,7 @@ nm_platform_ip4_address_addr_to_hash(NMPlatform *self, int ifindex)
|
|||||||
g_return_val_if_fail(NM_IS_PLATFORM(self), NULL);
|
g_return_val_if_fail(NM_IS_PLATFORM(self), NULL);
|
||||||
g_return_val_if_fail(ifindex > 0, NULL);
|
g_return_val_if_fail(ifindex > 0, NULL);
|
||||||
|
|
||||||
nmp_lookup_init_object(&lookup, NMP_OBJECT_TYPE_IP4_ADDRESS, ifindex);
|
nmp_lookup_init_object_by_ifindex(&lookup, NMP_OBJECT_TYPE_IP4_ADDRESS, ifindex);
|
||||||
|
|
||||||
head_entry = nmp_cache_lookup(NM_PLATFORM_GET_PRIVATE(self)->cache, &lookup);
|
head_entry = nmp_cache_lookup(NM_PLATFORM_GET_PRIVATE(self)->cache, &lookup);
|
||||||
|
|
||||||
|
@@ -805,13 +805,9 @@ _nmp_object_stackinit_from_class(NMPObject *obj, const NMPClass *klass)
|
|||||||
nm_assert(obj);
|
nm_assert(obj);
|
||||||
nm_assert(klass);
|
nm_assert(klass);
|
||||||
|
|
||||||
*obj = (NMPObject){
|
memset(obj, 0, sizeof(NMPObject));
|
||||||
.parent =
|
obj->_class = klass;
|
||||||
{
|
obj->parent._ref_count = NM_OBJ_REF_COUNT_STACKINIT;
|
||||||
.klass = (const NMDedupMultiObjClass *) klass,
|
|
||||||
._ref_count = NM_OBJ_REF_COUNT_STACKINIT,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2122,7 +2118,7 @@ nmp_lookup_init_link_by_ifname(NMPLookup *lookup, const char *ifname)
|
|||||||
}
|
}
|
||||||
|
|
||||||
const NMPLookup *
|
const NMPLookup *
|
||||||
nmp_lookup_init_object(NMPLookup *lookup, NMPObjectType obj_type, int ifindex)
|
nmp_lookup_init_object_by_ifindex(NMPLookup *lookup, NMPObjectType obj_type, int ifindex)
|
||||||
{
|
{
|
||||||
NMPObject *o;
|
NMPObject *o;
|
||||||
|
|
||||||
@@ -2134,18 +2130,9 @@ nmp_lookup_init_object(NMPLookup *lookup, NMPObjectType obj_type, int ifindex)
|
|||||||
NMP_OBJECT_TYPE_IP6_ROUTE,
|
NMP_OBJECT_TYPE_IP6_ROUTE,
|
||||||
NMP_OBJECT_TYPE_QDISC,
|
NMP_OBJECT_TYPE_QDISC,
|
||||||
NMP_OBJECT_TYPE_TFILTER));
|
NMP_OBJECT_TYPE_TFILTER));
|
||||||
|
nm_assert(ifindex > 0
|
||||||
if (G_UNLIKELY(
|
|
||||||
(ifindex < 0)
|
|
||||||
|| (ifindex == 0
|
|| (ifindex == 0
|
||||||
&& !NM_IN_SET(obj_type, NMP_OBJECT_TYPE_IP4_ROUTE, NMP_OBJECT_TYPE_IP6_ROUTE)))) {
|
&& NM_IN_SET(obj_type, NMP_OBJECT_TYPE_IP4_ROUTE, NMP_OBJECT_TYPE_IP6_ROUTE)));
|
||||||
/* This function used to have a fallback that meant to lookup all objects, if
|
|
||||||
* ifindex is non-positive. As routes can have a zero ifindex, that fallback is
|
|
||||||
* confusing and no longer supported. Only have this code, to catch accidental bugs
|
|
||||||
* after the API change. */
|
|
||||||
nm_assert_not_reached();
|
|
||||||
return nmp_lookup_init_obj_type(lookup, obj_type);
|
|
||||||
}
|
|
||||||
|
|
||||||
o = _nmp_object_stackinit_from_type(&lookup->selector_obj, obj_type);
|
o = _nmp_object_stackinit_from_type(&lookup->selector_obj, obj_type);
|
||||||
o->obj_with_ifindex.ifindex = ifindex;
|
o->obj_with_ifindex.ifindex = ifindex;
|
||||||
|
@@ -792,7 +792,8 @@ nmp_cache_lookup(const NMPCache *cache, const NMPLookup *lookup)
|
|||||||
|
|
||||||
const NMPLookup *nmp_lookup_init_obj_type(NMPLookup *lookup, NMPObjectType obj_type);
|
const NMPLookup *nmp_lookup_init_obj_type(NMPLookup *lookup, NMPObjectType obj_type);
|
||||||
const NMPLookup *nmp_lookup_init_link_by_ifname(NMPLookup *lookup, const char *ifname);
|
const NMPLookup *nmp_lookup_init_link_by_ifname(NMPLookup *lookup, const char *ifname);
|
||||||
const NMPLookup *nmp_lookup_init_object(NMPLookup *lookup, NMPObjectType obj_type, int ifindex);
|
const NMPLookup *
|
||||||
|
nmp_lookup_init_object_by_ifindex(NMPLookup *lookup, NMPObjectType obj_type, int ifindex);
|
||||||
const NMPLookup *nmp_lookup_init_route_default(NMPLookup *lookup, NMPObjectType obj_type);
|
const NMPLookup *nmp_lookup_init_route_default(NMPLookup *lookup, NMPObjectType obj_type);
|
||||||
const NMPLookup *nmp_lookup_init_route_by_weak_id(NMPLookup *lookup, const NMPObject *obj);
|
const NMPLookup *nmp_lookup_init_route_by_weak_id(NMPLookup *lookup, const NMPObject *obj);
|
||||||
const NMPLookup *nmp_lookup_init_ip4_route_by_weak_id(NMPLookup *lookup,
|
const NMPLookup *nmp_lookup_init_ip4_route_by_weak_id(NMPLookup *lookup,
|
||||||
@@ -1019,7 +1020,7 @@ nm_platform_lookup_object(NMPlatform *platform, NMPObjectType obj_type, int ifin
|
|||||||
{
|
{
|
||||||
NMPLookup lookup;
|
NMPLookup lookup;
|
||||||
|
|
||||||
nmp_lookup_init_object(&lookup, obj_type, ifindex);
|
nmp_lookup_init_object_by_ifindex(&lookup, obj_type, ifindex);
|
||||||
return nm_platform_lookup(platform, &lookup);
|
return nm_platform_lookup(platform, &lookup);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1032,7 +1033,7 @@ nm_platform_lookup_object_clone(NMPlatform *platform,
|
|||||||
{
|
{
|
||||||
NMPLookup lookup;
|
NMPLookup lookup;
|
||||||
|
|
||||||
nmp_lookup_init_object(&lookup, obj_type, ifindex);
|
nmp_lookup_init_object_by_ifindex(&lookup, obj_type, ifindex);
|
||||||
return nm_platform_lookup_clone(platform, &lookup, predicate, user_data);
|
return nm_platform_lookup_clone(platform, &lookup, predicate, user_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user