From d1d0d5c6f72955ef25d2b65cf8f2bf2570ae2127 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 19 Oct 2006 14:42:49 +0000 Subject: [PATCH] There can only be one default route per interface - so match anything if RTF_DEFAULT is set in the query. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19087 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/network/stack/routes.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/add-ons/kernel/network/stack/routes.cpp b/src/add-ons/kernel/network/stack/routes.cpp index 9dcc5628ee..7c26cc4a3c 100644 --- a/src/add-ons/kernel/network/stack/routes.cpp +++ b/src/add-ons/kernel/network/stack/routes.cpp @@ -87,6 +87,12 @@ find_route(struct net_domain *_domain, const net_route *description) while (iterator.HasNext()) { net_route_private *route = iterator.Next(); + if ((route->flags & RTF_DEFAULT) != 0 + && (description->flags & RTF_DEFAULT) != 0) { + // there can only be one default route + return route; + } + if ((route->flags & (RTF_GATEWAY | RTF_HOST | RTF_LOCAL)) == (description->flags & (RTF_GATEWAY | RTF_HOST | RTF_LOCAL)) && domain->address_module->equal_masked_addresses(route->destination,