From 3f7fb6a227f686c6f6104e9ed5a4d1c15a967607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Sim=C3=B5es?= Date: Thu, 18 Mar 2021 19:25:22 +0000 Subject: [PATCH] Expose Address field in IPAddress - Make the value visible in debugging and become inline with the full .NET Framework. --- nanoFramework.System.Net/IPAddress.cs | 27 +++++++++++------------ nanoFramework.System.Net/IPEndPoint.cs | 8 +++---- nanoFramework.System.Net/SocketAddress.cs | 8 +++---- 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/nanoFramework.System.Net/IPAddress.cs b/nanoFramework.System.Net/IPAddress.cs index 006eb22..e74e75c 100644 --- a/nanoFramework.System.Net/IPAddress.cs +++ b/nanoFramework.System.Net/IPAddress.cs @@ -26,8 +26,7 @@ public class IPAddress /// public static readonly IPAddress Loopback = new IPAddress(0x000000000100007F); - [Diagnostics.DebuggerBrowsable(Diagnostics.DebuggerBrowsableState.Never)] - internal long _address; + internal long Address; [Diagnostics.DebuggerBrowsable(Diagnostics.DebuggerBrowsableState.Never)] private AddressFamily _family = AddressFamily.InterNetwork; @@ -63,7 +62,7 @@ public IPAddress(long newAddress) throw new ArgumentOutOfRangeException(); } - _address = newAddress; + Address = newAddress; // default to InterNetwork _family = AddressFamily.InterNetwork; @@ -79,7 +78,7 @@ public IPAddress(byte[] address) { _family = AddressFamily.InterNetwork; // need to offset address by 4 (1st are family, 2nd are port - _address = ((address[3 + 4] << 24 | address[2 + 4] << 16 | address[1 + 4] << 8 | address[0 + 4]) & 0x0FFFFFFFF); + Address = ((address[3 + 4] << 24 | address[2 + 4] << 16 | address[1 + 4] << 8 | address[0 + 4]) & 0x0FFFFFFFF); } else if (address[0] == (byte)AddressFamily.InterNetworkV6) { @@ -108,7 +107,7 @@ public override bool Equals(object obj) if (obj == null) return false; - return this._address == addr._address; + return this.Address == addr.Address; } /// @@ -119,10 +118,10 @@ public byte[] GetAddressBytes() { return new byte[] { - (byte)(_address), - (byte)(_address >> 8), - (byte)(_address >> 16), - (byte)(_address >> 24) + (byte)(Address), + (byte)(Address >> 8), + (byte)(Address >> 16), + (byte)(Address >> 24) }; } @@ -180,13 +179,13 @@ public static IPAddress Parse(string ipString) /// public override string ToString() { - return ((byte)(_address)).ToString() + + return ((byte)(Address)).ToString() + "." + - ((byte)(_address >> 8)).ToString() + + ((byte)(Address >> 8)).ToString() + "." + - ((byte)(_address >> 16)).ToString() + + ((byte)(Address >> 16)).ToString() + "." + - ((byte)(_address >> 24)).ToString(); + ((byte)(Address >> 24)).ToString(); } /// @@ -223,7 +222,7 @@ internal IPAddress Snapshot() switch (_family) { case AddressFamily.InterNetwork: - return new IPAddress(_address); + return new IPAddress(Address); //case AddressFamily.InterNetworkV6: // return new IPAddress(m_Numbers, (uint)m_ScopeId); diff --git a/nanoFramework.System.Net/IPEndPoint.cs b/nanoFramework.System.Net/IPEndPoint.cs index c3e0672..1b57252 100644 --- a/nanoFramework.System.Net/IPEndPoint.cs +++ b/nanoFramework.System.Net/IPEndPoint.cs @@ -105,10 +105,10 @@ public override SocketAddress Serialize() buffer[2] = unchecked((byte)(_port >> 8)); buffer[3] = unchecked((byte)(_port)); - buffer[4] = unchecked((byte)(_address._address)); - buffer[5] = unchecked((byte)(_address._address >> 8)); - buffer[6] = unchecked((byte)(_address._address >> 16)); - buffer[7] = unchecked((byte)(_address._address >> 24)); + buffer[4] = unchecked((byte)(_address.Address)); + buffer[5] = unchecked((byte)(_address.Address >> 8)); + buffer[6] = unchecked((byte)(_address.Address >> 16)); + buffer[7] = unchecked((byte)(_address.Address >> 24)); return socketAddress; } diff --git a/nanoFramework.System.Net/SocketAddress.cs b/nanoFramework.System.Net/SocketAddress.cs index 3a1b2e7..ac79d94 100644 --- a/nanoFramework.System.Net/SocketAddress.cs +++ b/nanoFramework.System.Net/SocketAddress.cs @@ -73,10 +73,10 @@ internal SocketAddress(IPAddress ipAddress) //else { // IPv4 Address serialization - m_Buffer[4] = unchecked((byte)(ipAddress._address)); - m_Buffer[5] = unchecked((byte)(ipAddress._address >> 8)); - m_Buffer[6] = unchecked((byte)(ipAddress._address >> 16)); - m_Buffer[7] = unchecked((byte)(ipAddress._address >> 24)); + m_Buffer[4] = unchecked((byte)(ipAddress.Address)); + m_Buffer[5] = unchecked((byte)(ipAddress.Address >> 8)); + m_Buffer[6] = unchecked((byte)(ipAddress.Address >> 16)); + m_Buffer[7] = unchecked((byte)(ipAddress.Address >> 24)); } }