- std::vector<Link*> filtered_list;
- for (auto const& kv : pimpl->links_) {
- Link* l = kv.second->get_iface();
- if (filter(l))
- filtered_list.push_back(l);
+ std::vector<Link*> res;
+ if (pimpl->netzone_root_) {
+ res = pimpl->netzone_root_->get_filtered_links(filter);
+ /* keep behavior where internal __loopback__ link from network model is given to user */
+ if (pimpl->netzone_root_->get_network_model()->loopback_ &&
+ filter(pimpl->netzone_root_->get_network_model()->loopback_->get_iface()))
+ res.push_back(pimpl->netzone_root_->get_network_model()->loopback_->get_iface());