From ce78b3653af12b185723a72598fdc9b2df4b6efa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 25 Oct 2007 15:15:25 +0000 Subject: [PATCH] Now only removes a default route for a domain in case a new one is specified; this fixes bug #1423, the loop interface removed the default route for the other interface (didn't happen previously, as routes were bound to devices). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22723 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/net/NetServer.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/servers/net/NetServer.cpp b/src/servers/net/NetServer.cpp index 7cc9d4a885..2df6e1fc52 100644 --- a/src/servers/net/NetServer.cpp +++ b/src/servers/net/NetServer.cpp @@ -586,9 +586,6 @@ NetServer::_ConfigureInterface(int socket, BMessage& interface, bool fromMessage route.flags = RTF_STATIC | RTF_DEFAULT; request.ifr_route = route; - ioctl(socket, SIOCDELRT, &request, sizeof(request)); - // Try to remove a previous default route, doesn't matter - // if it fails. if (autoConfig) { // add a default route to make the interface accessible, even without an address @@ -602,6 +599,11 @@ NetServer::_ConfigureInterface(int socket, BMessage& interface, bool fromMessage } else if (addressMessage.FindString("gateway", &string) == B_OK && parse_address(familyIndex, string, gateway)) { // add gateway route, if we're asked for it + + ioctl(socket, SIOCDELRT, &request, sizeof(request)); + // Try to remove a previous default route, doesn't matter + // if it fails. + route.flags = RTF_STATIC | RTF_DEFAULT | RTF_GATEWAY; route.gateway = &gateway;