diff --git a/meson.build b/meson.build index 180013b9..278b01f9 100644 --- a/meson.build +++ b/meson.build @@ -130,6 +130,10 @@ if cppc.has_header_symbol('netlink/route/link/bonding.h', 'rtnl_link_bond_get_mo add_global_arguments('-DHAVE_RTNL_LINK_BOND_GET_MODE', language: 'cpp') endif +if not cppc.has_header_symbol('netlink/errno.h', 'NLE_HOSTUNREACH', dependencies: libnl, required: false) + add_global_arguments('-DNLE_HOSTUNREACH=35', language: 'cpp') +endif + if cppc.has_header('netlink/route/bridge_vlan.h', dependencies: libnl, required: false) add_global_arguments('-DHAVE_NETLINK_ROUTE_BRIDGE_VLAN_H', language: 'cpp') endif diff --git a/src/netlink/nl_route_query.h b/src/netlink/nl_route_query.h index 9a793241..5ec7ae0c 100644 --- a/src/netlink/nl_route_query.h +++ b/src/netlink/nl_route_query.h @@ -87,9 +87,9 @@ class nl_route_query final { /* * if there is no default route, and no matching route, the kernel will * respond with -ENETUNREACH or -EHOSTUNREACH, which libnl translates to - * -NLE_FAILURE. + * -NLE_FAILURE resp -NLE_HOSTUNREACH. */ - if (err == -NLE_FAILURE) + if (err == -NLE_HOSTUNREACH || err == -NLE_FAILURE) return nullptr; LOG(FATAL) << __FUNCTION__ << ":%s" << nl_geterror(err);