+ private System.Net.IPAddress ParseIPAddress(int ret, IntPtr addrPtr)
+ {
+ if (ret != (int)WiFiError.None)
+ {
+ Log.Error(Globals.LogTag, "Failed to get address, Error - " + (WiFiError)ret);
+ return DefaultIPAddress();
+ }
+
+ string addr = Marshal.PtrToStringAnsi(addrPtr);
+ if (addr == null || addr.Length == 0)
+ return DefaultIPAddress();
+ Interop.Glib.Free(addrPtr);
+ return System.Net.IPAddress.Parse(addr);
+ }
+
+ private System.Net.IPAddress DefaultIPAddress()
+ {
+ if (_family == AddressFamily.IPv4)
+ return System.Net.IPAddress.Parse(DefaultIPv4);
+ else
+ return System.Net.IPAddress.Parse(DefaultIPv6);
+ }