From a08f5ecbe39a04cde68b59a75eeed8424afa6bb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 5 Feb 2015 09:05:12 +0100 Subject: [PATCH] Revert "BNetworkInterfaceAddress: missing initialization" This reverts commit fbc43a72791c50ba02c0c500551bf87afdd833b3. --- src/kits/network/NetworkInterfaceAddress.cpp | 71 ++------------------ 1 file changed, 4 insertions(+), 67 deletions(-) diff --git a/src/kits/network/NetworkInterfaceAddress.cpp b/src/kits/network/NetworkInterfaceAddress.cpp index a80d668537..8620f470ea 100644 --- a/src/kits/network/NetworkInterfaceAddress.cpp +++ b/src/kits/network/NetworkInterfaceAddress.cpp @@ -6,10 +6,7 @@ #include -#include #include -#include -#include #include #include @@ -51,10 +48,6 @@ do_ifaliasreq(const char* name, int32 option, BNetworkInterfaceAddress& address, request.ifra_index = address.Index(); request.ifra_flags = address.Flags(); - assert(address.Address().sa_len <= sizeof(sockaddr_storage)); - assert(address.Mask().sa_len <= sizeof(sockaddr_storage)); - assert(address.Broadcast().sa_len <= sizeof(sockaddr_storage)); - memcpy(&request.ifra_addr, &address.Address(), address.Address().sa_len); memcpy(&request.ifra_mask, &address.Mask(), @@ -88,14 +81,6 @@ BNetworkInterfaceAddress::BNetworkInterfaceAddress() fIndex(-1), fFlags(0) { - fAddress.ss_family = AF_UNSPEC; - fAddress.ss_len = 2; - - fMask.ss_family = AF_UNSPEC; - fMask.ss_len = 2; - - fBroadcast.ss_family = AF_UNSPEC; - fBroadcast.ss_len = 2; } @@ -115,76 +100,28 @@ BNetworkInterfaceAddress::SetTo(const char* name, int32 index) void BNetworkInterfaceAddress::SetAddress(const sockaddr& address) { - size_t length = min_c(sizeof(sockaddr_storage), address.sa_len); - switch (address.sa_family) { - case AF_INET: - length = sizeof(sockaddr_in); - break; - case AF_INET6: - length = sizeof(sockaddr_in6); - break; - case AF_LINK: - { - sockaddr_dl& link = (sockaddr_dl&)address; - length = sizeof(sockaddr_dl) - sizeof(link.sdl_data) + link.sdl_alen - + link.sdl_nlen + link.sdl_slen; - break; - } - } - memcpy(&fAddress, &address, length); + memcpy(&fAddress, &address, address.sa_len); } void BNetworkInterfaceAddress::SetMask(const sockaddr& mask) { - size_t length = min_c(sizeof(sockaddr_storage), mask.sa_len); - switch (mask.sa_family) { - case AF_INET: - length = sizeof(sockaddr_in); - break; - case AF_INET6: - length = sizeof(sockaddr_in6); - break; - case AF_LINK: - { - sockaddr_dl& link = (sockaddr_dl&)mask; - length = sizeof(sockaddr_dl) - sizeof(link.sdl_data) + link.sdl_alen - + link.sdl_nlen + link.sdl_slen; - break; - } - } - memcpy(&fMask, &mask, length); + memcpy(&fMask, &mask, mask.sa_len); } void BNetworkInterfaceAddress::SetBroadcast(const sockaddr& broadcast) { - size_t length = min_c(sizeof(sockaddr_storage), broadcast.sa_len); - switch (broadcast.sa_family) { - case AF_INET: - length = sizeof(sockaddr_in); - break; - case AF_INET6: - length = sizeof(sockaddr_in6); - break; - case AF_LINK: - { - sockaddr_dl& link = (sockaddr_dl&)broadcast; - length = sizeof(sockaddr_dl) - sizeof(link.sdl_data) + link.sdl_alen - + link.sdl_nlen + link.sdl_slen; - break; - } - } - memcpy(&fBroadcast, &broadcast, length); + memcpy(&fBroadcast, &broadcast, broadcast.sa_len); } void BNetworkInterfaceAddress::SetDestination(const sockaddr& destination) { - SetBroadcast(destination); + memcpy(&fBroadcast, &destination, destination.sa_len); }