From 0a6b562313455bf5043f4f69632ce959caafa177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 23 Mar 2015 18:06:39 +0000 Subject: [PATCH] net_server: fixed configuring disabled interfaces. * BNetworkSettings now set unspecified addresses to their empty family specific addresses, instead of using AF_UNSPEC. * This allows the net_server to set those addresses on the address specific stack interface. --- src/kits/network/libnetapi/NetworkSettings.cpp | 5 ++++- src/servers/net/NetServer.cpp | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/kits/network/libnetapi/NetworkSettings.cpp b/src/kits/network/libnetapi/NetworkSettings.cpp index 662ec8aa4c..6dd760e61c 100644 --- a/src/kits/network/libnetapi/NetworkSettings.cpp +++ b/src/kits/network/libnetapi/NetworkSettings.cpp @@ -196,8 +196,11 @@ get_address_family(const char* argument) static bool parse_address(int32& family, const char* argument, BNetworkAddress& address) { - if (argument == NULL) + if (argument == NULL) { + if (family != AF_UNSPEC) + address.SetToWildcard(family); return false; + } status_t status = address.SetTo(family, argument, (uint16)0, B_NO_ADDRESS_RESOLUTION); diff --git a/src/servers/net/NetServer.cpp b/src/servers/net/NetServer.cpp index 9375a9773c..22670eda91 100644 --- a/src/servers/net/NetServer.cpp +++ b/src/servers/net/NetServer.cpp @@ -504,7 +504,8 @@ NetServer::_ConfigureInterface(BMessage& message) if (!addressSettings.Address().IsEmpty() || !addressSettings.Mask().IsEmpty() || !addressSettings.Broadcast().IsEmpty() - || !addressSettings.Peer().IsEmpty()) { + || !addressSettings.Peer().IsEmpty() + || !addressSettings.IsAutoConfigure()) { BNetworkInterfaceAddress interfaceAddress; interfaceAddress.SetAddress(addressSettings.Address()); interfaceAddress.SetMask(addressSettings.Mask());