2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
authorGonzalo Paniagua Javier <gonzalo.mono@gmail.com>
Fri, 24 Feb 2006 22:47:15 +0000 (22:47 -0000)
committerGonzalo Paniagua Javier <gonzalo.mono@gmail.com>
Fri, 24 Feb 2006 22:47:15 +0000 (22:47 -0000)
* UnicastIPAddressInformation.cs:
* PingException.cs:
* TcpConnectionInformation.cs:
* IPv4InterfaceStatistics.cs:
* NetworkInformationException.cs:
* IPAddressInformation.cs:
* MulticastIPAddressInformationCollection.cs:
* TcpStatistics.cs:
* IPGlobalStatistics.cs:
* NetworkInformationPermission.cs:
* MulticastIPAddressInformation.cs:
* IcmpV4Statistics.cs:
* IcmpV6Statistics.cs:
* IPv4InterfaceProperties.cs:
* PhysicalAddress.cs:
* IPv6InterfaceProperties.cs:
* GatewayIPAddressInformationCollection.cs:
* ChangeLog: Modified file.
* UnicastIPAddressInformationCollection.cs:
* IPAddressCollection.cs:
* NetworkInformationPermissionAttribute.cs:
* Ping.cs:
* NetworkChange.cs:
* IPAddressInformationCollection.cs:
* UdpStatistics.cs:
* GatewayIPAddressInformation.cs:
* IPGlobalProperties.cs:
* IPInterfaceProperties.cs:
* NetworkInterface.cs: implemented or stubbed out.

svn path=/trunk/mcs/; revision=57264

30 files changed:
mcs/class/System/System.Net.NetworkInformation/ChangeLog
mcs/class/System/System.Net.NetworkInformation/GatewayIPAddressInformation.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/GatewayIPAddressInformationCollection.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/IPAddressCollection.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/IPAddressInformation.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/IPAddressInformationCollection.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/IPGlobalProperties.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/IPGlobalStatistics.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/IPInterfaceProperties.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/IPv4InterfaceProperties.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/IPv4InterfaceStatistics.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/IPv6InterfaceProperties.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/IcmpV4Statistics.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/IcmpV6Statistics.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/MulticastIPAddressInformation.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/MulticastIPAddressInformationCollection.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/NetworkChange.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/NetworkInformationException.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/NetworkInformationPermission.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/NetworkInformationPermissionAttribute.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/NetworkInterface.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/PhysicalAddress.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/Ping.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/PingException.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/TcpConnectionInformation.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/TcpStatistics.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/UdpStatistics.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/UnicastIPAddressInformation.cs [new file with mode: 0644]
mcs/class/System/System.Net.NetworkInformation/UnicastIPAddressInformationCollection.cs [new file with mode: 0644]
mcs/class/System/System.dll.sources

index 40ef9e81235519716ee1fa862746c944f6abaa5a..c74893946a9dd7cde4e03289f9de670421570e62 100644 (file)
@@ -1,3 +1,35 @@
+2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * UnicastIPAddressInformation.cs:
+       * PingException.cs:
+       * TcpConnectionInformation.cs:
+       * IPv4InterfaceStatistics.cs:
+       * NetworkInformationException.cs:
+       * IPAddressInformation.cs:
+       * MulticastIPAddressInformationCollection.cs:
+       * TcpStatistics.cs:
+       * IPGlobalStatistics.cs:
+       * NetworkInformationPermission.cs:
+       * MulticastIPAddressInformation.cs:
+       * IcmpV4Statistics.cs:
+       * IcmpV6Statistics.cs:
+       * IPv4InterfaceProperties.cs:
+       * PhysicalAddress.cs:
+       * IPv6InterfaceProperties.cs:
+       * GatewayIPAddressInformationCollection.cs:
+       * ChangeLog: Modified file.
+       * UnicastIPAddressInformationCollection.cs:
+       * IPAddressCollection.cs:
+       * NetworkInformationPermissionAttribute.cs:
+       * Ping.cs:
+       * NetworkChange.cs:
+       * IPAddressInformationCollection.cs:
+       * UdpStatistics.cs:
+       * GatewayIPAddressInformation.cs:
+       * IPGlobalProperties.cs:
+       * IPInterfaceProperties.cs:
+       * NetworkInterface.cs: implemented or stubbed out.
+
 2006-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
 
        * NetBiosNodeType.cs:
diff --git a/mcs/class/System/System.Net.NetworkInformation/GatewayIPAddressInformation.cs b/mcs/class/System/System.Net.NetworkInformation/GatewayIPAddressInformation.cs
new file mode 100644 (file)
index 0000000..c6e9c07
--- /dev/null
@@ -0,0 +1,39 @@
+//
+// System.Net.NetworkInformation.GatewayIPAddressInformation
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Net.NetworkInformation {
+       public abstract class GatewayIPAddressInformation {
+               protected GatewayIPAddressInformation ()
+               {
+               }
+               
+               public abstract IPAddress Address { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/GatewayIPAddressInformationCollection.cs b/mcs/class/System/System.Net.NetworkInformation/GatewayIPAddressInformationCollection.cs
new file mode 100644 (file)
index 0000000..d259e4b
--- /dev/null
@@ -0,0 +1,89 @@
+//
+// System.Net.NetworkInformation.GatewayIPAddressInformationCollection
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System.Collections;
+using System.Collections.Generic;
+
+namespace System.Net.NetworkInformation {
+       public class GatewayIPAddressInformationCollection : ICollection<GatewayIPAddressInformation>, IEnumerable<GatewayIPAddressInformation>, IEnumerable {
+               List<GatewayIPAddressInformation> list;
+               
+               protected GatewayIPAddressInformationCollection ()
+               {
+               }
+
+               public virtual void Add (GatewayIPAddressInformation address)
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               public virtual void Clear ()
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               public virtual bool Contains (GatewayIPAddressInformation address)
+               {
+                       return list.Contains (address);
+               }
+
+               public virtual void CopyTo (GatewayIPAddressInformation [] array, int offset)
+               {
+                       list.CopyTo (array, offset);
+               }
+
+               public virtual IEnumerator<GatewayIPAddressInformation> GetEnumerator ()
+               {
+                       return ((IEnumerable<GatewayIPAddressInformation>)list).GetEnumerator ();
+               }
+
+               public virtual bool Remove (GatewayIPAddressInformation address)
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               IEnumerator IEnumerable.GetEnumerator ()
+               {
+                       return list.GetEnumerator ();
+               }
+
+               public virtual int Count {
+                       get { return list.Count; }
+               }
+
+               public virtual bool IsReadOnly {
+                       get { return true; }
+               }
+
+               public virtual GatewayIPAddressInformation this [int index] {
+                       get { return list [index]; }
+               }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/IPAddressCollection.cs b/mcs/class/System/System.Net.NetworkInformation/IPAddressCollection.cs
new file mode 100644 (file)
index 0000000..b714220
--- /dev/null
@@ -0,0 +1,90 @@
+//
+// System.Net.NetworkInformation.IPAddressCollection
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace System.Net.NetworkInformation {
+       public class IPAddressCollection : ICollection<IPAddress>, IEnumerable<IPAddress>, IEnumerable {
+               List<IPAddress> list;
+
+               protected internal IPAddressCollection ()
+               {
+               }
+
+               public virtual void Add (IPAddress address)
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               public virtual void Clear ()
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               public virtual bool Contains (IPAddress address)
+               {
+                       return list.Contains (address);
+               }
+
+               public virtual void CopyTo (IPAddress [] array, int offset)
+               {
+                       list.CopyTo (array, offset);
+               }
+
+               public virtual IEnumerator<IPAddress> GetEnumerator ()
+               {
+                       return ((IEnumerable<IPAddress>)list).GetEnumerator ();
+               }
+
+               public virtual bool Remove (IPAddress address)
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               IEnumerator IEnumerable.GetEnumerator ()
+               {
+                       return list.GetEnumerator ();
+               }
+
+               public virtual int Count {
+                       get { return list.Count; }
+               }
+
+               public virtual bool IsReadOnly {
+                       get { return true; }
+               }
+
+               public virtual IPAddress this [int index] {
+                       get { return list [index]; }
+               }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/IPAddressInformation.cs b/mcs/class/System/System.Net.NetworkInformation/IPAddressInformation.cs
new file mode 100644 (file)
index 0000000..93e74ed
--- /dev/null
@@ -0,0 +1,43 @@
+//
+// System.Net.NetworkInformation.IPAddressInformation
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Net.NetworkInformation {
+       public abstract class IPAddressInformation {
+               protected IPAddressInformation ()
+               {
+               }
+               
+               public abstract IPAddress Address { get; }
+               public abstract bool IsDnsEligible { get; }
+               public abstract bool IsTransient { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/IPAddressInformationCollection.cs b/mcs/class/System/System.Net.NetworkInformation/IPAddressInformationCollection.cs
new file mode 100644 (file)
index 0000000..33b5da3
--- /dev/null
@@ -0,0 +1,90 @@
+//
+// System.Net.NetworkInformation.IPAddressInformationCollection
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace System.Net.NetworkInformation {
+       public class IPAddressInformationCollection : ICollection<IPAddressInformation>, IEnumerable<IPAddressInformation>, IEnumerable {
+               List <IPAddressInformation> list;
+
+               internal IPAddressInformationCollection ()
+               {
+               }
+
+               public virtual void Add (IPAddressInformation address)
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               public virtual void Clear ()
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               public virtual bool Contains (IPAddressInformation address)
+               {
+                       return list.Contains (address);
+               }
+
+               public virtual void CopyTo (IPAddressInformation [] array, int offset)
+               {
+                       list.CopyTo (array, offset);
+               }
+
+               public virtual IEnumerator<IPAddressInformation> GetEnumerator ()
+               {
+                       return ((IEnumerable<IPAddressInformation>)list).GetEnumerator ();
+               }
+
+               public virtual bool Remove (IPAddressInformation address)
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               IEnumerator IEnumerable.GetEnumerator ()
+               {
+                       return list.GetEnumerator ();
+               }
+
+               public virtual int Count {
+                       get { return list.Count; }
+               }
+
+               public virtual bool IsReadOnly {
+                       get { return true; }
+               }
+
+               public virtual IPAddressInformation this [int index] {
+                       get { return list [index]; }
+               }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/IPGlobalProperties.cs b/mcs/class/System/System.Net.NetworkInformation/IPGlobalProperties.cs
new file mode 100644 (file)
index 0000000..94410bf
--- /dev/null
@@ -0,0 +1,61 @@
+//
+// System.Net.NetworkInformation.IPGlobalProperties
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Net.NetworkInformation {
+       public abstract class IPGlobalProperties {
+               protected IPGlobalProperties ()
+               {
+               }
+
+               [MonoTODO]
+               public static IPGlobalProperties GetIPGlobalProperties ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public abstract TcpConnectionInformation [] GetActiveTcpConnections ();
+               public abstract IPEndPoint [] GetActiveTcpListeners ();
+               public abstract IPEndPoint [] GetActiveUdpListeners ();
+               public abstract IcmpV4Statistics GetIcmpV4Statistics ();
+               public abstract IcmpV6Statistics GetIcmpV6Statistics ();
+               public abstract IPGlobalStatistics GetIPv4GlobalStatistics ();
+               public abstract IPGlobalStatistics GetIPv6GlobalStatistics ();
+               public abstract TcpStatistics GetTcpIPv4Statistics ();
+               public abstract TcpStatistics GetTcpIPv6Statistics ();
+               public abstract UdpStatistics GetUdpIPv4Statistics ();
+               public abstract UdpStatistics GetUdpIPv6Statistics ();
+
+               public abstract string DhcpScopeName { get; }
+               public abstract string DomainName { get; }
+               public abstract string HostName { get; }
+               public abstract bool IsWinsProxy { get; }
+               public abstract NetBiosNodeType NodeType { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/IPGlobalStatistics.cs b/mcs/class/System/System.Net.NetworkInformation/IPGlobalStatistics.cs
new file mode 100644 (file)
index 0000000..03b8388
--- /dev/null
@@ -0,0 +1,60 @@
+//
+// System.Net.NetworkInformation.IPGlobalProperties
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Net.NetworkInformation {
+       public abstract class IPGlobalStatistics {
+               protected IPGlobalStatistics ()
+               {
+               }
+
+               public abstract int DefaultTtl { get; }
+               public abstract bool ForwardingEnabled { get; }
+               public abstract int NumberOfInterfaces { get; }
+               public abstract int NumberOfIPAddresses { get; }
+               public abstract int NumberOfRoutes { get; }
+               public abstract long OutputPacketRequests { get; }
+               public abstract long OutputPacketRoutingDiscards { get; }
+               public abstract long OutputPacketsDiscarded { get; }
+               public abstract long OutputPacketsWithNoRoute { get; }
+               public abstract long PacketFragmentFailures { get; }
+               public abstract long PacketReassembliesRequired { get; }
+               public abstract long PacketReassemblyFailures { get; }
+               public abstract long PacketReassemblyTimeout { get; }
+               public abstract long PacketsFragmented { get; }
+               public abstract long PacketsReassembled { get; }
+               public abstract long ReceivedPackets { get; }
+               public abstract long ReceivedPacketsDelivered { get; }
+               public abstract long ReceivedPacketsDiscarded { get; }
+               public abstract long ReceivedPacketsForwarded { get; }
+               public abstract long ReceivedPacketsWithAddressErrors { get; }
+               public abstract long ReceivedPacketsWithHeadersErrors { get; }
+               public abstract long ReceivedPacketsWithUnknownProtocol { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/IPInterfaceProperties.cs b/mcs/class/System/System.Net.NetworkInformation/IPInterfaceProperties.cs
new file mode 100644 (file)
index 0000000..09f544a
--- /dev/null
@@ -0,0 +1,51 @@
+//
+// System.Net.NetworkInformation.IPInterfaceProperties
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Net.NetworkInformation {
+       public abstract class IPInterfaceProperties {
+               protected IPInterfaceProperties ()
+               {
+               }
+
+               public abstract IPv4InterfaceProperties GetIPv4Properties ();
+               public abstract IPv6InterfaceProperties GetIPv6Properties ();
+
+               public abstract IPAddressInformationCollection AnycastAddresses { get; }
+               public abstract IPAddressCollection DhcpServerAddresses { get; }
+               public abstract IPAddressCollection DnsAddresses { get; }
+               public abstract string DnsSuffix { get; }
+               public abstract GatewayIPAddressInformationCollection GatewayAddresses { get; }
+               public abstract bool IsDnsEnabled { get; }
+               public abstract bool IsDynamicDnsEnabled { get; }
+               public abstract MulticastIPAddressInformationCollection MulticastAddresses { get; }
+               public abstract UnicastIPAddressInformationCollection UnicastAddresses { get; }
+               public abstract IPAddressCollection WinsServersAddresses { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/IPv4InterfaceProperties.cs b/mcs/class/System/System.Net.NetworkInformation/IPv4InterfaceProperties.cs
new file mode 100644 (file)
index 0000000..b3d3817
--- /dev/null
@@ -0,0 +1,45 @@
+//
+// System.Net.NetworkInformation.IPv4InterfaceProperties
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Net.NetworkInformation {
+       public abstract class IPv4InterfaceProperties {
+               protected IPv4InterfaceProperties ()
+               {
+               }
+
+               public abstract int Index { get; }
+               public abstract bool IsAutomaticPrivateAddressingActive { get; }
+               public abstract bool IsAutomaticPrivateAddressingEnabled { get; }
+               public abstract bool IsDhcpEnabled { get; }
+               public abstract bool IsForwardingEnabled { get; }
+               public abstract int Mtu { get; }
+               public abstract bool UsesWins { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/IPv4InterfaceStatistics.cs b/mcs/class/System/System.Net.NetworkInformation/IPv4InterfaceStatistics.cs
new file mode 100644 (file)
index 0000000..921334a
--- /dev/null
@@ -0,0 +1,50 @@
+//
+// System.Net.NetworkInformation.IPv4InterfaceStatistics
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Net.NetworkInformation {
+       public abstract class IPv4InterfaceStatistics {
+               protected IPv4InterfaceStatistics ()
+               {
+               }
+               
+               public abstract long BytesReceived { get; }
+               public abstract long BytesSent { get; }
+               public abstract long IncomingPacketsDiscarded { get; }
+               public abstract long IncomingPacketsWithErrors { get; }
+               public abstract long IncomingUnknownProtocolPackets { get; }
+               public abstract long NonUnicastPacketsReceived { get; }
+               public abstract long NonUnicastPacketsSent { get; }
+               public abstract long OutgoingPacketsDiscarded { get; }
+               public abstract long OutgoingPacketsWithErrors { get; }
+               public abstract long OutputQueueLength { get; }
+               public abstract long UnicastPacketsReceived { get; }
+               public abstract long UnicastPacketsSent { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/IPv6InterfaceProperties.cs b/mcs/class/System/System.Net.NetworkInformation/IPv6InterfaceProperties.cs
new file mode 100644 (file)
index 0000000..a3c728c
--- /dev/null
@@ -0,0 +1,40 @@
+//
+// System.Net.NetworkInformation.IPv6InterfaceProperties
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Net.NetworkInformation {
+       public abstract class IPv6InterfaceProperties {
+               protected IPv6InterfaceProperties ()
+               {
+               }
+
+               public abstract int Index { get; }
+               public abstract int Mtu { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/IcmpV4Statistics.cs b/mcs/class/System/System.Net.NetworkInformation/IcmpV4Statistics.cs
new file mode 100644 (file)
index 0000000..eebe240
--- /dev/null
@@ -0,0 +1,64 @@
+//
+// System.Net.NetworkInformation.IcmpV4Statistics
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Net.NetworkInformation {
+       public abstract class IcmpV4Statistics {
+               protected IcmpV4Statistics ()
+               {
+               }
+
+               public abstract long AddressMaskRepliesReceived { get; }
+               public abstract long AddressMaskRepliesSent { get; }
+               public abstract long AddressMaskRequestsReceived { get; }
+               public abstract long AddressMaskRequestsSent { get; }
+               public abstract long DestinationUnreachableMessagesReceived { get; }
+               public abstract long DestinationUnreachableMessagesSent { get; }
+               public abstract long EchoRepliesReceived { get; }
+               public abstract long EchoRepliesSent { get; }
+               public abstract long EchoRequestsReceived { get; }
+               public abstract long EchoRequestsSent { get; }
+               public abstract long ErrorsReceived { get; }
+               public abstract long ErrorsSent { get; }
+               public abstract long MessagesReceived { get; }
+               public abstract long MessagesSent { get; }
+               public abstract long ParameterProblemsReceived { get; }
+               public abstract long ParameterProblemsSent { get; }
+               public abstract long RedirectsReceived { get; }
+               public abstract long RedirectsSent { get; }
+               public abstract long SourceQuenchesReceived { get; }
+               public abstract long SourceQuenchesSent { get; }
+               public abstract long TimeExceededMessagesReceived { get; }
+               public abstract long TimeExceededMessagesSent { get; }
+               public abstract long TimestampRepliesReceived { get; }
+               public abstract long TimestampRepliesSent { get; }
+               public abstract long TimestampRequestsReceived { get; }
+               public abstract long TimestampRequestsSent { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/IcmpV6Statistics.cs b/mcs/class/System/System.Net.NetworkInformation/IcmpV6Statistics.cs
new file mode 100644 (file)
index 0000000..f925876
--- /dev/null
@@ -0,0 +1,70 @@
+//
+// System.Net.NetworkInformation.IcmpV6Statistics
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Net.NetworkInformation {
+       public abstract class IcmpV6Statistics {
+               protected IcmpV6Statistics ()
+               {
+               }
+
+               public abstract long DestinationUnreachableMessagesReceived { get; }
+               public abstract long DestinationUnreachableMessagesSent { get; }
+               public abstract long EchoRepliesReceived { get; }
+               public abstract long EchoRepliesSent { get; }
+               public abstract long EchoRequestsReceived { get; }
+               public abstract long EchoRequestsSent { get; }
+               public abstract long ErrorsReceived { get; }
+               public abstract long ErrorsSent { get; }
+               public abstract long MembershipQueriesReceived { get; }
+               public abstract long MembershipQueriesSent { get; }
+               public abstract long MembershipReductionsReceived { get; }
+               public abstract long MembershipReductionsSent { get; }
+               public abstract long MembershipReportsReceived { get; }
+               public abstract long MembershipReportsSent { get; }
+               public abstract long MessagesReceived { get; }
+               public abstract long MessagesSent { get; }
+               public abstract long NeighborAdvertisementsReceived { get; }
+               public abstract long NeighborAdvertisementsSent { get; }
+               public abstract long NeighborSolicitsReceived { get; }
+               public abstract long NeighborSolicitsSent { get; }
+               public abstract long PacketTooBigMessagesReceived { get; }
+               public abstract long PacketTooBigMessagesSent { get; }
+               public abstract long ParameterProblemsReceived { get; }
+               public abstract long ParameterProblemsSent { get; }
+               public abstract long RedirectsReceived { get; }
+               public abstract long RedirectsSent { get; }
+               public abstract long RouterAdvertisementsReceived { get; }
+               public abstract long RouterAdvertisementsSent { get; }
+               public abstract long RouterSolicitsReceived { get; }
+               public abstract long RouterSolicitsSent { get; }
+               public abstract long TimeExceededMessagesReceived { get; }
+               public abstract long TimeExceededMessagesSent { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/MulticastIPAddressInformation.cs b/mcs/class/System/System.Net.NetworkInformation/MulticastIPAddressInformation.cs
new file mode 100644 (file)
index 0000000..1ea36ee
--- /dev/null
@@ -0,0 +1,44 @@
+//
+// System.Net.NetworkInformation.MulticastIPAddressInformation
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Net.NetworkInformation {
+       public abstract class MulticastIPAddressInformation : IPAddressInformation {
+               protected MulticastIPAddressInformation ()
+               {
+               }
+
+               public abstract long AddressPreferredLifetime { get; }
+               public abstract long AddressValidLifetime { get; }
+               public abstract long DhcpLeaseLifetime { get; }
+               public abstract DuplicateAddressDetectionState DuplicateAddressDetectionState { get; }
+               public abstract PrefixOrigin PrefixOrigin { get; }
+               public abstract SuffixOrigin SuffixOrigin { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/MulticastIPAddressInformationCollection.cs b/mcs/class/System/System.Net.NetworkInformation/MulticastIPAddressInformationCollection.cs
new file mode 100644 (file)
index 0000000..087997b
--- /dev/null
@@ -0,0 +1,89 @@
+//
+// System.Net.NetworkInformation.MulticastIPAddressInformationCollection
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System.Collections;
+using System.Collections.Generic;
+
+namespace System.Net.NetworkInformation {
+       public class MulticastIPAddressInformationCollection : ICollection<MulticastIPAddressInformation>, IEnumerable<MulticastIPAddressInformation>, IEnumerable {
+               List<MulticastIPAddressInformation> list; // We want an internal ctor that fills this list up.
+               
+               protected internal MulticastIPAddressInformationCollection ()
+               {
+               }
+
+               public virtual void Add (MulticastIPAddressInformation address)
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               public virtual void Clear ()
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               public virtual bool Contains (MulticastIPAddressInformation address)
+               {
+                       return list.Contains (address);
+               }
+
+               public virtual void CopyTo (MulticastIPAddressInformation [] array, int offset)
+               {
+                       list.CopyTo (array, offset);
+               }
+
+               public virtual IEnumerator<MulticastIPAddressInformation> GetEnumerator ()
+               {
+                       return ((IEnumerable<MulticastIPAddressInformation>)list).GetEnumerator ();
+               }
+
+               public virtual bool Remove (MulticastIPAddressInformation address)
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               IEnumerator IEnumerable.GetEnumerator ()
+               {
+                       return list.GetEnumerator ();
+               }
+
+               public virtual int Count {
+                       get { return list.Count; }
+               }
+
+               public virtual bool IsReadOnly {
+                       get { return true; }
+               }
+
+               public virtual MulticastIPAddressInformation this [int index] {
+                       get { return list [index]; }
+               }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/NetworkChange.cs b/mcs/class/System/System.Net.NetworkInformation/NetworkChange.cs
new file mode 100644 (file)
index 0000000..7248591
--- /dev/null
@@ -0,0 +1,40 @@
+//
+// System.Net.NetworkInformation.NetworkChange
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Net.NetworkInformation {
+       public sealed class NetworkChange {
+               private NetworkChange ()
+               {
+               }
+
+               public static event NetworkAddressChangedEventHandler NetworkAddressChanged;
+               public static event NetworkAvailabilityChangedEventHandler NetworkAvailabilityChanged;
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/NetworkInformationException.cs b/mcs/class/System/System.Net.NetworkInformation/NetworkInformationException.cs
new file mode 100644 (file)
index 0000000..a8c0f8b
--- /dev/null
@@ -0,0 +1,57 @@
+//
+// System.Net.NetworkInformation.NetworkInformationException
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System.ComponentModel;
+using System.Runtime.Serialization;
+
+namespace System.Net.NetworkInformation {
+       [Serializable]
+       public class NetworkInformationException : Win32Exception {
+               int error_code;
+               
+               public NetworkInformationException ()
+               {
+               }
+
+               public NetworkInformationException (int errorCode) : base (errorCode)
+               {
+               }
+
+               protected NetworkInformationException (SerializationInfo info, StreamingContext context)
+                       : base (info, context)
+               {
+                       error_code = info.GetInt32 ("ErrorCode");
+               }
+
+               public override int ErrorCode {
+                       get { return NativeErrorCode; }
+               }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/NetworkInformationPermission.cs b/mcs/class/System/System.Net.NetworkInformation/NetworkInformationPermission.cs
new file mode 100644 (file)
index 0000000..c84cc7f
--- /dev/null
@@ -0,0 +1,99 @@
+//
+// System.Net.NetworkInformation.NetworkInformationPermission
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+using System.Security;
+using System.Security.Permissions;
+
+namespace System.Net.NetworkInformation {
+       [Serializable]
+       public sealed class NetworkInformationPermission : CodeAccessPermission, IUnrestrictedPermission {
+               [MonoTODO]
+               public NetworkInformationPermission (PermissionState state)
+               {
+               }
+
+               [MonoTODO]
+               public NetworkInformationPermission (NetworkInformationAccess access)
+               {
+               }
+
+               [MonoTODO]
+               public void AddPermission (NetworkInformationAccess access)
+               {
+               }
+
+               [MonoTODO]
+               public override IPermission Copy ()
+               {
+                       return null;
+               }
+
+               [MonoTODO]
+               public override void FromXml (SecurityElement securityElement)
+               {
+               }
+
+               [MonoTODO]
+               public override IPermission Intersect (System.Security.IPermission target)
+               {
+                       return null;
+               }
+
+               [MonoTODO]
+               public override bool IsSubsetOf (IPermission target)
+               {
+                       return false;
+               }
+
+               [MonoTODO]
+               public bool IsUnrestricted ()
+               {
+                       return false;
+               }
+
+               [MonoTODO]
+               public override SecurityElement ToXml ()
+               {
+                       return null;
+               }
+
+               [MonoTODO]
+               public override IPermission Union (IPermission target)
+               {
+                       return null;
+               }
+               
+               [MonoTODO]
+               public NetworkInformationAccess Access {
+                       get { return 0; }
+               }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/NetworkInformationPermissionAttribute.cs b/mcs/class/System/System.Net.NetworkInformation/NetworkInformationPermissionAttribute.cs
new file mode 100644 (file)
index 0000000..1da8272
--- /dev/null
@@ -0,0 +1,57 @@
+//
+// System.Net.NetworkInformation.NetworkInformationPermissionAttribute
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+using System.Security;
+using System.Security.Permissions;
+
+namespace System.Net.NetworkInformation {
+       [Serializable]
+       [AttributeUsage (AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Struct | AttributeTargets.Constructor | AttributeTargets.Method, AllowMultiple = true, Inherited = false)]
+       public sealed class NetworkInformationPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute {
+               string access;
+
+               public NetworkInformationPermissionAttribute (SecurityAction action)
+                       : base (action)
+               {
+               }
+
+               [MonoTODO]
+               public override IPermission CreatePermission ()
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public string Access {
+                       get { return access; }
+                       set { access = value; }
+               }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/NetworkInterface.cs b/mcs/class/System/System.Net.NetworkInformation/NetworkInterface.cs
new file mode 100644 (file)
index 0000000..3e370cb
--- /dev/null
@@ -0,0 +1,71 @@
+//
+// System.Net.NetworkInformation.NetworkInterface
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+using System.Net;
+
+namespace System.Net.NetworkInformation {
+       public abstract class NetworkInterface {
+               protected NetworkInterface ()
+               {
+               }
+
+               [MonoTODO]
+               public static NetworkInterface [] GetAllNetworkInterfaces ()
+               {
+                       return new NetworkInterface [0];
+               }
+
+               [MonoTODO]
+               public static bool GetIsNetworkAvailable ()
+               {
+                       return true;
+               }
+
+               [MonoTODO]
+               public static int LoopbackInterfaceIndex {
+                       get { return 0; }
+               }
+
+               public abstract IPInterfaceProperties GetIPProperties ();
+               public abstract IPv4InterfaceStatistics GetIPv4Statistics ();
+               public abstract PhysicalAddress GetPhysicalAddress ();
+               public abstract bool Supports (NetworkInterfaceComponent networkInterfaceComponent);
+
+               public abstract string Description { get; }
+               public abstract string Id { get; }
+               public abstract bool IsReceiveOnly { get; }
+               public abstract string Name { get; }
+               public abstract NetworkInterfaceType NetworkInterfaceType { get; }
+               public abstract OperationalStatus OperationalStatus { get; }
+               public abstract long Speed { get; }
+               public abstract bool SupportsMulticast { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/PhysicalAddress.cs b/mcs/class/System/System.Net.NetworkInformation/PhysicalAddress.cs
new file mode 100644 (file)
index 0000000..d20b801
--- /dev/null
@@ -0,0 +1,128 @@
+//
+// System.Net.NetworkInformation.PhysicalAddress
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+using System.Text;
+
+namespace System.Net.NetworkInformation {
+       public class PhysicalAddress {
+               public static readonly PhysicalAddress None = new PhysicalAddress (new byte [0]);
+               byte [] bytes;
+               
+               public PhysicalAddress (byte [] address)
+               {
+                       this.bytes = address;
+               }
+
+               public static PhysicalAddress Parse (string address)
+               {
+                       if (address == null)
+                               return None;
+
+                       if (address == "")
+                               throw new FormatException ("Invalid physical address.");
+
+                       // MS fails with IndexOutOfRange for something like: "00-0"
+                       int ndashes = 0;
+                       foreach (char c in address) {
+                               if (c == '-')
+                                       ndashes++;
+                       }
+
+                       int len = address.Length;
+                       if (((len - 2) / 3) != ndashes)
+                               throw new FormatException ("Invalid physical address.");
+
+                       byte [] data = new byte [ndashes + 1];
+                       int idx = 0;
+                       for (int i = 0; i < len; i++) {
+                               byte b = (byte) (GetValue (address [i++]) << 8);
+                               b += GetValue (address [i++]);
+                               if (address [i] != '-')
+                                       throw new FormatException ("Invalid physical address.");
+                               data [idx++] = b;
+                       }
+
+                       return new PhysicalAddress (data);
+               }
+
+               static byte GetValue (char c)
+               {
+                       if (c >= 0 && c <= 9)
+                               return (byte) (c - '0');
+
+                       if (c >= 'a' && c <= 'f')
+                               return (byte) (c - 'a' + 10);
+
+                       if (c >= 'A' && c <= 'F')
+                               return (byte) (c - 'A' + 10);
+
+                       throw new FormatException ("Invalid physical address.");
+               }
+
+               public override bool Equals (object comparand)
+               {
+                       PhysicalAddress other = comparand as PhysicalAddress;
+                       if (other == null)
+                               return false;
+
+                       // new byte [0] != new byte [0]
+                       return (bytes == other.bytes);
+               }
+
+               public override int GetHashCode ()
+               {
+                       if (bytes == null)
+                               return 0;
+
+                       int a = 5;
+                       foreach (byte b in bytes)
+                               a  = (a << 3)  + b;
+
+                       return a;
+               }
+
+               public byte [] GetAddressBytes ()
+               {
+                       return bytes;
+               }
+
+               public override string ToString ()
+               {
+                       if (bytes == null)
+                               return "";
+
+                       StringBuilder sb = new StringBuilder ();
+                       foreach (byte b in bytes)
+                               sb.AppendFormat ("{0:2X}", (uint) b);
+                       return sb.ToString ();
+               }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/Ping.cs b/mcs/class/System/System.Net.NetworkInformation/Ping.cs
new file mode 100644 (file)
index 0000000..418b593
--- /dev/null
@@ -0,0 +1,146 @@
+//
+// System.Net.NetworkInformation.Ping
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+using System.ComponentModel;
+
+namespace System.Net.NetworkInformation {
+       public class Ping : Component, IDisposable {
+
+               public event PingCompletedEventHandler PingCompleted;
+
+               public Ping ()
+               {
+               }
+
+               protected void OnPingCompleted (PingCompletedEventArgs e)
+               {
+                       if (PingCompleted != null)
+                               PingCompleted (this, e);
+               }
+
+               [MonoTODO]
+               public PingReply Send (IPAddress address)
+               {
+                       return null;
+               }
+
+               [MonoTODO]
+               public PingReply Send (IPAddress address, int timeout)
+               {
+                       return null;
+               }
+
+               [MonoTODO]
+               public PingReply Send (IPAddress address, int timeout, byte [] buffer)
+               {
+                       return null;
+               }
+
+               [MonoTODO]
+               public PingReply Send (IPAddress address, int timeout, byte [] buffer, PingOptions options)
+               {
+                       return null;
+               }
+
+               [MonoTODO]
+               public PingReply Send (string hostNameOrAddress)
+               {
+                       return null;
+               }
+
+               [MonoTODO]
+               public PingReply Send (string hostNameOrAddress, int timeout)
+               {
+                       return null;
+               }
+
+               [MonoTODO]
+               public PingReply Send (string hostNameOrAddress, int timeout, byte [] buffer)
+               {
+                       return null;
+               }
+
+               [MonoTODO]
+               public PingReply Send (string hostNameOrAddress, int timeout, byte [] buffer, PingOptions options)
+               {
+                       return null;
+               }
+
+               [MonoTODO]
+               public void SendAsync (IPAddress address, int timeout, byte [] buffer, object userToken)
+               {
+               }
+
+               [MonoTODO]
+               public void SendAsync (IPAddress address, int timeout, byte [] buffer, PingOptions options, object userToken)
+               {
+               }
+
+               [MonoTODO]
+               public void SendAsync (IPAddress address, int timeout, object userToken)
+               {
+               }
+
+               [MonoTODO]
+               public void SendAsync (IPAddress address, object userToken)
+               {
+               }
+
+               [MonoTODO]
+               public void SendAsync (string hostNameOrAddress, int timeout, byte [] buffer, object userToken)
+               {
+               }
+
+               [MonoTODO]
+               public void SendAsync (string hostNameOrAddress, int timeout, byte [] buffer, PingOptions options, object userToken)
+               {
+               }
+
+               [MonoTODO]
+               public void SendAsync (string hostNameOrAddress, int timeout, object userToken)
+               {
+               }
+
+               [MonoTODO]
+               public void SendAsync (string hostNameOrAddress, object userToken)
+               {
+               }
+
+               [MonoTODO]
+               public void SendAsyncCancel ()
+               {
+               }
+
+               void IDisposable.Dispose ()
+               {
+               }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/PingException.cs b/mcs/class/System/System.Net.NetworkInformation/PingException.cs
new file mode 100644 (file)
index 0000000..65c5f74
--- /dev/null
@@ -0,0 +1,54 @@
+//
+// System.Net.NetworkInformation.PingException
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+using System.Collections;
+using System.Runtime.Serialization;
+
+namespace System.Net.NetworkInformation {
+       [Serializable]
+       public class PingException : InvalidOperationException {
+               public PingException (string message)
+                       : base (message)
+               {
+               }
+
+               public PingException (string message, Exception innerException)
+                       : base (message, innerException)
+               {
+               }
+
+               protected PingException (SerializationInfo serializationInfo, StreamingContext streamingContext)
+                       : base (serializationInfo, streamingContext)
+               {
+               }
+
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/TcpConnectionInformation.cs b/mcs/class/System/System.Net.NetworkInformation/TcpConnectionInformation.cs
new file mode 100644 (file)
index 0000000..272d5d8
--- /dev/null
@@ -0,0 +1,43 @@
+//
+// System.Net.NetworkInformation.TcpConnectionInformation
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System.Net;
+
+namespace System.Net.NetworkInformation {
+       public abstract class TcpConnectionInformation {
+               protected TcpConnectionInformation ()
+               {
+               }
+               
+               public abstract IPEndPoint LocalEndPoint { get; }
+               public abstract IPEndPoint RemoteEndPoint { get; }
+               public abstract TcpState State { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/TcpStatistics.cs b/mcs/class/System/System.Net.NetworkInformation/TcpStatistics.cs
new file mode 100644 (file)
index 0000000..5f8bb3c
--- /dev/null
@@ -0,0 +1,52 @@
+//
+// System.Net.NetworkInformation.TcpStatistics
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Net.NetworkInformation {
+       public abstract class TcpStatistics {
+               protected TcpStatistics ()
+               {
+               }
+               
+               public abstract long ConnectionsAccepted { get; }
+               public abstract long ConnectionsInitiated { get; }
+               public abstract long CumulativeConnections { get; }
+               public abstract long CurrentConnections { get; }
+               public abstract long ErrorsReceived { get; }
+               public abstract long FailedConnectionAttempts { get; }
+               public abstract long MaximumConnections { get; }
+               public abstract long MaximumTransmissionTimeout { get; }
+               public abstract long MinimumTransmissionTimeout { get; }
+               public abstract long ResetConnections { get; }
+               public abstract long ResetsSent { get; }
+               public abstract long SegmentsReceived { get; }
+               public abstract long SegmentsResent { get; }
+               public abstract long SegmentsSent { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/UdpStatistics.cs b/mcs/class/System/System.Net.NetworkInformation/UdpStatistics.cs
new file mode 100644 (file)
index 0000000..8055046
--- /dev/null
@@ -0,0 +1,43 @@
+//
+// System.Net.NetworkInformation.UdpStatistics
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+namespace System.Net.NetworkInformation {
+       public abstract class UdpStatistics {
+               protected UdpStatistics ()
+               {
+               }
+
+               public abstract long DatagramsReceived { get; }
+               public abstract long DatagramsSent { get; }
+               public abstract long IncomingDatagramsDiscarded { get; }
+               public abstract long IncomingDatagramsWithErrors { get; }
+               public abstract int UdpListeners { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/UnicastIPAddressInformation.cs b/mcs/class/System/System.Net.NetworkInformation/UnicastIPAddressInformation.cs
new file mode 100644 (file)
index 0000000..87238c9
--- /dev/null
@@ -0,0 +1,47 @@
+//
+// System.Net.NetworkInformation.UnicastIPAddressInformation
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+
+namespace System.Net.NetworkInformation {
+       public abstract class UnicastIPAddressInformation : IPAddressInformation {
+               protected UnicastIPAddressInformation ()
+               {
+               }
+               
+               public abstract long AddressPreferredLifetime { get; }
+               public abstract long AddressValidLifetime { get; }
+               public abstract long DhcpLeaseLifetime { get; }
+               public abstract DuplicateAddressDetectionState DuplicateAddressDetectionState { get; }
+               public abstract IPAddress IPv4Mask { get; }
+               public abstract PrefixOrigin PrefixOrigin { get; }
+               public abstract SuffixOrigin SuffixOrigin { get; }
+       }
+}
+#endif
+
diff --git a/mcs/class/System/System.Net.NetworkInformation/UnicastIPAddressInformationCollection.cs b/mcs/class/System/System.Net.NetworkInformation/UnicastIPAddressInformationCollection.cs
new file mode 100644 (file)
index 0000000..282ad04
--- /dev/null
@@ -0,0 +1,92 @@
+//
+// System.Net.NetworkInformation.UnicastIPAddressInformationCollection
+//
+// Author:
+//     Gonzalo Paniagua Javier (gonzalo@novell.com)
+//
+// Copyright (c) 2006 Novell, Inc. (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+#if NET_2_0
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace System.Net.NetworkInformation {
+       public class UnicastIPAddressInformationCollection : ICollection<UnicastIPAddressInformation>,
+                                               IEnumerable<UnicastIPAddressInformation> {
+
+               List<UnicastIPAddressInformation> list;
+
+               protected internal UnicastIPAddressInformationCollection ()
+               {
+               }
+
+               public virtual void Add (UnicastIPAddressInformation address)
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               public virtual void Clear ()
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               public virtual bool Contains (UnicastIPAddressInformation address)
+               {
+                       return list.Contains (address);
+               }
+
+               public virtual void CopyTo (UnicastIPAddressInformation [] array, int offset)
+               {
+                       list.CopyTo (array, offset);
+               }
+
+               public virtual IEnumerator<UnicastIPAddressInformation> GetEnumerator ()
+               {
+                       return ((IEnumerable<UnicastIPAddressInformation>)list).GetEnumerator ();
+               }
+
+               public virtual bool Remove (UnicastIPAddressInformation address)
+               {
+                       throw new NotSupportedException ("The collection is read-only.");
+               }
+
+               IEnumerator IEnumerable.GetEnumerator ()
+               {
+                       return list.GetEnumerator ();
+               }
+
+               public virtual int Count {
+                       get { return list.Count; }
+               }
+
+               public virtual bool IsReadOnly {
+                       get { return true; }
+               }
+
+               public virtual UnicastIPAddressInformation this [int index] {
+                       get { return list [index]; }
+               }
+       }
+}
+#endif
+
index 6c9f716cc4fe2c3a2b1225f0cdea6cb7c363b771..95b7657dc09ee1cf0049680570c7a2a9676fe69c 100644 (file)
@@ -628,22 +628,50 @@ System.Net/NetConfig.cs
 System.Net/NetworkAccess.cs
 System.Net/NetworkCredential.cs
 System.Net.NetworkInformation/DuplicateAddressDetectionState.cs
+System.Net.NetworkInformation/GatewayIPAddressInformationCollection.cs
+System.Net.NetworkInformation/GatewayIPAddressInformation.cs
+System.Net.NetworkInformation/IcmpV4Statistics.cs
+System.Net.NetworkInformation/IcmpV6Statistics.cs
+System.Net.NetworkInformation/IPAddressCollection.cs
+System.Net.NetworkInformation/IPAddressInformationCollection.cs
+System.Net.NetworkInformation/IPAddressInformation.cs
+System.Net.NetworkInformation/IPGlobalProperties.cs
+System.Net.NetworkInformation/IPGlobalStatistics.cs
+System.Net.NetworkInformation/IPInterfaceProperties.cs
 System.Net.NetworkInformation/IPStatus.cs
+System.Net.NetworkInformation/IPv4InterfaceProperties.cs
+System.Net.NetworkInformation/IPv4InterfaceStatistics.cs
+System.Net.NetworkInformation/IPv6InterfaceProperties.cs
+System.Net.NetworkInformation/MulticastIPAddressInformationCollection.cs
+System.Net.NetworkInformation/MulticastIPAddressInformation.cs
 System.Net.NetworkInformation/NetBiosNodeType.cs
-System.Net.NetworkInformation/NetworkAvailabilityEventArgs.cs
-System.Net.NetworkInformation/NetworkAvailabilityChangedEventHandler.cs
 System.Net.NetworkInformation/NetworkAddressChangedEventHandler.cs
+System.Net.NetworkInformation/NetworkAvailabilityChangedEventHandler.cs
+System.Net.NetworkInformation/NetworkAvailabilityEventArgs.cs
+System.Net.NetworkInformation/NetworkChange.cs
 System.Net.NetworkInformation/NetworkInformationAccess.cs
+System.Net.NetworkInformation/NetworkInformationException.cs
+System.Net.NetworkInformation/NetworkInformationPermissionAttribute.cs
+System.Net.NetworkInformation/NetworkInformationPermission.cs
 System.Net.NetworkInformation/NetworkInterfaceComponent.cs
+System.Net.NetworkInformation/NetworkInterface.cs
 System.Net.NetworkInformation/NetworkInterfaceType.cs
 System.Net.NetworkInformation/OperationalStatus.cs
+System.Net.NetworkInformation/PhysicalAddress.cs
 System.Net.NetworkInformation/PingCompletedEventArgs.cs
 System.Net.NetworkInformation/PingCompletedEventHandler.cs
+System.Net.NetworkInformation/Ping.cs
+System.Net.NetworkInformation/PingException.cs
 System.Net.NetworkInformation/PingOptions.cs
 System.Net.NetworkInformation/PingReply.cs
 System.Net.NetworkInformation/PrefixOrigin.cs
 System.Net.NetworkInformation/SuffixOrigin.cs
+System.Net.NetworkInformation/TcpConnectionInformation.cs
 System.Net.NetworkInformation/TcpState.cs
+System.Net.NetworkInformation/TcpStatistics.cs
+System.Net.NetworkInformation/UdpStatistics.cs
+System.Net.NetworkInformation/UnicastIPAddressInformationCollection.cs
+System.Net.NetworkInformation/UnicastIPAddressInformation.cs
 System.Net/NtlmClient.cs
 System/NetPipeStyleUriParser.cs
 System.Net/ProtocolViolationException.cs