Hey,<br><br><div class="gmail_quote">On Tue, Jun 30, 2009 at 4:09 PM, Alex Shulgin <span dir="ltr">&lt;<a href="mailto:alexander.shulgin@yessoftware.com">alexander.shulgin@yessoftware.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="h5">Alex Shulgin wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Alex Shulgin wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br>
<br>
In the current version System.Net.NetworkInformation.NetworkInterface provides limited information about network interfaces on the system (their names only).<br>
<br>
The attached patch adds support for NetworkInterfaceType and GetPhysicalAddress() on Mac OS.<br>
</blockquote>
<br>
Oops, I&#39;ve almost forgot about IPv6... and missed the added file MacOsNetworkInterfaceMarshal.<br>
<br>
Please see the fixed patch instead.<br>
</blockquote>
<br></div></div>
This worked fine, until one user reported a crash on Array.Copy in NetworkInformation.MacOsNetworkInterface.ImplGetAllNetworkInterfaces().  I traced this down to that I believe is a problem with non-standard length interface name: thus the 12-byte buffer sockaddr_dl.sdl_data is not enough.<br>

<br>
I&#39;ve noticed that sockaddr_dl contains sdl_len member which holds the length of the whole sockaddr structure.  With that we can use Marshal.Copy instead of Array.Copy to access data past default 12-byte data array.  A patch against trunk is attached.<br>

<br>
I didn&#39;t have a chance to try it with the problematic user, but still would like someone to review the patch and comment on it.<br>
<br>
--<br><font color="#888888">
Alex<br></font>
PS: is there more appropriate way to increment IntPtr value w/o using ToInt64()?</blockquote><div><br>You could use a loop and Marshal.ReadByte (IntPtr ptr, int offset);<br><br>Alan.<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
<br></blockquote></div><br>