From 14989b6edac4742da6956bdb3ceebd0abb181846 Mon Sep 17 00:00:00 2001 From: jules Date: Mon, 15 Oct 2018 10:06:36 +0100 Subject: [PATCH] Minor tidy-up to IPAddress --- modules/juce_core/network/juce_IPAddress.cpp | 29 +++++++++++----- modules/juce_core/network/juce_IPAddress.h | 35 ++++++-------------- 2 files changed, 31 insertions(+), 33 deletions(-) diff --git a/modules/juce_core/network/juce_IPAddress.cpp b/modules/juce_core/network/juce_IPAddress.cpp index 7a5ade821a..78e8c081b9 100644 --- a/modules/juce_core/network/juce_IPAddress.cpp +++ b/modules/juce_core/network/juce_IPAddress.cpp @@ -23,6 +23,19 @@ namespace juce { +/** Union used to split a 16-bit unsigned integer into 2 8-bit unsigned integers or vice-versa */ +union IPAddressByteUnion +{ + uint16 combined; + uint8 split[2]; +}; + +static void zeroUnusedBytes (uint8* address) noexcept +{ + for (int i = 4; i < 16; ++i) + address[i] = 0; +} + IPAddress::IPAddress() noexcept { for (int i = 0; i < 16; ++i) @@ -35,12 +48,12 @@ IPAddress::IPAddress (const uint8 bytes[], bool IPv6) noexcept : isIPv6 (IPv6) address[i] = bytes[i]; if (! isIPv6) - zeroUnusedBytes(); + zeroUnusedBytes (address); } IPAddress::IPAddress (const uint16 bytes[8]) noexcept : isIPv6 (true) { - ByteUnion temp; + IPAddressByteUnion temp; for (int i = 0; i < 8; ++i) { @@ -56,7 +69,7 @@ IPAddress::IPAddress (uint8 a0, uint8 a1, uint8 a2, uint8 a3) noexcept : isIPv6 address[0] = a0; address[1] = a1; address[2] = a2; address[3] = a3; - zeroUnusedBytes(); + zeroUnusedBytes (address); } IPAddress::IPAddress (uint16 a1, uint16 a2, uint16 a3, uint16 a4, @@ -65,7 +78,7 @@ IPAddress::IPAddress (uint16 a1, uint16 a2, uint16 a3, uint16 a4, { uint16 array[8] = { a1, a2, a3, a4, a5, a6, a7, a8 }; - ByteUnion temp; + IPAddressByteUnion temp; for (int i = 0; i < 8; ++i) { @@ -82,7 +95,7 @@ IPAddress::IPAddress (uint32 n) noexcept : isIPv6 (false) address[2] = (n >> 8) & 255; address[3] = (n & 255); - zeroUnusedBytes(); + zeroUnusedBytes (address); } bool IPAddress::isNull() const @@ -118,7 +131,7 @@ IPAddress::IPAddress (const String& adr) for (int i = 0; i < 4; ++i) address[i] = (uint8) tokens[i].getIntValue(); - zeroUnusedBytes(); + zeroUnusedBytes (address); } else { @@ -152,7 +165,7 @@ IPAddress::IPAddress (const String& adr) break; } - ByteUnion temp; + IPAddressByteUnion temp; temp.combined = (uint16) CharacterFunctions::HexParser::parse (tokens[i].getCharPointer()); address[i * 2] = temp.split[0]; @@ -173,7 +186,7 @@ String IPAddress::toString() const return s; } - ByteUnion temp; + IPAddressByteUnion temp; temp.split[0] = address[0]; temp.split[1] = address[1]; diff --git a/modules/juce_core/network/juce_IPAddress.h b/modules/juce_core/network/juce_IPAddress.h index e93b716a05..47e929ba42 100644 --- a/modules/juce_core/network/juce_IPAddress.h +++ b/modules/juce_core/network/juce_IPAddress.h @@ -65,12 +65,12 @@ public: @param bytes The array containing the bytes to read. @param IPv6 if true indicates that 16 bytes should be read instead of 4. */ - explicit IPAddress (const uint8 bytes[], bool IPv6 = false) noexcept; + explicit IPAddress (const uint8* bytes, bool IPv6 = false) noexcept; /** Creates an IPv6 address from an array of 8 16-bit integers @param bytes The array containing the bytes to read. */ - explicit IPAddress (const uint16 bytes[8]) noexcept; + explicit IPAddress (const uint16* bytes) noexcept; /** Creates an IPv4 address from 4 bytes. */ IPAddress (uint8 address1, uint8 address2, uint8 address3, uint8 address4) noexcept; @@ -99,14 +99,14 @@ public: @returns 0 if the two addresses are identical, negative if this address is smaller than the other one, or positive if is greater. */ - int compare (const IPAddress& other) const noexcept; + int compare (const IPAddress&) const noexcept; - bool operator== (const IPAddress& other) const noexcept; - bool operator!= (const IPAddress& other) const noexcept; - bool operator< (const IPAddress& other) const noexcept; - bool operator> (const IPAddress& other) const noexcept; - bool operator<= (const IPAddress& other) const noexcept; - bool operator>= (const IPAddress& other) const noexcept; + bool operator== (const IPAddress&) const noexcept; + bool operator!= (const IPAddress&) const noexcept; + bool operator< (const IPAddress&) const noexcept; + bool operator> (const IPAddress&) const noexcept; + bool operator<= (const IPAddress&) const noexcept; + bool operator>= (const IPAddress&) const noexcept; //============================================================================== /** The elements of the IP address. */ @@ -135,23 +135,8 @@ public: /** If the IPAdress is the address of an interface on the machine, returns the associated broadcast address. If the address is not an interface, it will return a null address. - */ + */ static IPAddress getInterfaceBroadcastAddress (const IPAddress& interfaceAddress); - -private: - /** Union used to split a 16-bit unsigned integer into 2 8-bit unsigned integers or vice-versa */ - union ByteUnion - { - uint16 combined; - uint8 split[2]; - }; - - /** Method used to zero the remaining bytes of the address array when creating IPv4 addresses */ - void zeroUnusedBytes() noexcept - { - for (int i = 4; i < 16; ++i) - address[i] = 0; - } }; } // namespace juce