using System; using System.Collections.Generic; using System.Net.Sockets; using System.Runtime.InteropServices; namespace System.Net.NetworkInformation { // Token: 0x020001A3 RID: 419 internal abstract class UnixNetworkInterface : NetworkInterface { // Token: 0x06000DF2 RID: 3570 RVA: 0x00026FE8 File Offset: 0x000251E8 internal UnixNetworkInterface(string name) { this.name = name; this.addresses = new List(); } // Token: 0x06000DF3 RID: 3571 [DllImport("libc")] private static extern int if_nametoindex(string ifname); // Token: 0x06000DF4 RID: 3572 RVA: 0x00027004 File Offset: 0x00025204 public static int IfNameToIndex(string ifname) { return UnixNetworkInterface.if_nametoindex(ifname); } // Token: 0x06000DF5 RID: 3573 RVA: 0x0002700C File Offset: 0x0002520C internal void AddAddress(IPAddress address) { this.addresses.Add(address); } // Token: 0x06000DF6 RID: 3574 RVA: 0x0002701C File Offset: 0x0002521C internal void SetLinkLayerInfo(int index, byte[] macAddress, NetworkInterfaceType type) { this.index = index; this.macAddress = macAddress; this.type = type; } // Token: 0x06000DF7 RID: 3575 RVA: 0x00027034 File Offset: 0x00025234 public override PhysicalAddress GetPhysicalAddress() { if (this.macAddress != null) { return new PhysicalAddress(this.macAddress); } return PhysicalAddress.None; } // Token: 0x06000DF8 RID: 3576 RVA: 0x00027054 File Offset: 0x00025254 public override bool Supports(NetworkInterfaceComponent networkInterfaceComponent) { bool flag = networkInterfaceComponent == NetworkInterfaceComponent.IPv4; bool flag2 = !flag && networkInterfaceComponent == NetworkInterfaceComponent.IPv6; foreach (IPAddress ipaddress in this.addresses) { if (flag && ipaddress.AddressFamily == global::System.Net.Sockets.AddressFamily.InterNetwork) { return true; } if (flag2 && ipaddress.AddressFamily == global::System.Net.Sockets.AddressFamily.InterNetworkV6) { return true; } } return false; } // Token: 0x1700048C RID: 1164 // (get) Token: 0x06000DF9 RID: 3577 RVA: 0x00027104 File Offset: 0x00025304 public override string Description { get { return this.name; } } // Token: 0x1700048D RID: 1165 // (get) Token: 0x06000DFA RID: 3578 RVA: 0x0002710C File Offset: 0x0002530C public override string Id { get { return this.name; } } // Token: 0x1700048E RID: 1166 // (get) Token: 0x06000DFB RID: 3579 RVA: 0x00027114 File Offset: 0x00025314 public override bool IsReceiveOnly { get { return false; } } // Token: 0x1700048F RID: 1167 // (get) Token: 0x06000DFC RID: 3580 RVA: 0x00027118 File Offset: 0x00025318 public override string Name { get { return this.name; } } // Token: 0x17000490 RID: 1168 // (get) Token: 0x06000DFD RID: 3581 RVA: 0x00027120 File Offset: 0x00025320 public override NetworkInterfaceType NetworkInterfaceType { get { return this.type; } } // Token: 0x17000491 RID: 1169 // (get) Token: 0x06000DFE RID: 3582 RVA: 0x00027128 File Offset: 0x00025328 [global::System.MonoTODO("Parse dmesg?")] public override long Speed { get { return 1000000L; } } // Token: 0x04000C93 RID: 3219 protected IPv4InterfaceStatistics ipv4stats; // Token: 0x04000C94 RID: 3220 protected IPInterfaceProperties ipproperties; // Token: 0x04000C95 RID: 3221 private string name; // Token: 0x04000C96 RID: 3222 private int index; // Token: 0x04000C97 RID: 3223 protected List addresses; // Token: 0x04000C98 RID: 3224 private byte[] macAddress; // Token: 0x04000C99 RID: 3225 private NetworkInterfaceType type; } }