From 437ecdb9d5977b87b26c12547caf7becb918d240 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 22 Jul 2010 13:07:12 +0000 Subject: [PATCH] * We need to invalidate all routes belonging to the interface when removing it. * This fixes the second problem mentioned in bug #6243, and therefore the bug itself. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37692 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/network/stack/domains.cpp | 2 ++ src/add-ons/kernel/network/stack/routes.h | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/network/stack/domains.cpp b/src/add-ons/kernel/network/stack/domains.cpp index 2f64fa66d6..16dc3f5ba0 100644 --- a/src/add-ons/kernel/network/stack/domains.cpp +++ b/src/add-ons/kernel/network/stack/domains.cpp @@ -242,6 +242,8 @@ remove_interface_from_domain(net_interface* interface) { net_domain_private* domain = (net_domain_private*)interface->domain; + invalidate_routes(domain, interface); + list_remove_item(&domain->interfaces, interface); notify_interface_removed(interface); delete_interface((net_interface_private*)interface); diff --git a/src/add-ons/kernel/network/stack/routes.h b/src/add-ons/kernel/network/stack/routes.h index b0fa93e419..60c1f37abc 100644 --- a/src/add-ons/kernel/network/stack/routes.h +++ b/src/add-ons/kernel/network/stack/routes.h @@ -1,5 +1,5 @@ /* - * Copyright 2006-2009, Haiku, Inc. All Rights Reserved. + * Copyright 2006-2010, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: @@ -40,7 +40,7 @@ status_t remove_route(struct net_domain* domain, const struct net_route* route); status_t get_route_information(struct net_domain* domain, void* buffer, size_t length); -void invalidate_routes(net_domain* , net_interface* ); +void invalidate_routes(net_domain* domain, net_interface* interface); struct net_route* get_route(struct net_domain* domain, const struct sockaddr* address); status_t get_device_route(struct net_domain* domain, uint32 index,