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,