Files
2026-06-04 11:42:34 +02:00

154 lines
3.7 KiB
C#

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<IPAddress>();
}
// 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<IPAddress> addresses;
// Token: 0x04000C98 RID: 3224
private byte[] macAddress;
// Token: 0x04000C99 RID: 3225
private NetworkInterfaceType type;
}
}