mirror of
https://git.zaroz.cloud/nintendo-back-up/Ryujinx.git
synced 2025-06-07 19:55:29 +00:00

* dotnet format style --severity info Some changes were manually reverted. * dotnet format analyzers --serverity info Some changes have been minimally adapted. * Restore a few unused methods and variables * Silence dotnet format IDE0060 warnings * Silence dotnet format IDE0059 warnings * Address or silence dotnet format IDE1006 warnings * Address dotnet format CA1816 warnings * Address or silence dotnet format CA2211 warnings * Silence CA1806 and CA1834 issues * Fix formatting for switch expressions * Address most dotnet format whitespace warnings * Apply dotnet format whitespace formatting A few of them have been manually reverted and the corresponding warning was silenced * Revert formatting changes for while and for-loops * Format if-blocks correctly * Run dotnet format whitespace after rebase * Run dotnet format style after rebase * Run dotnet format analyzers after rebase * Run dotnet format after rebase and remove unused usings - analyzers - style - whitespace * Add comments to disabled warnings * Remove a few unused parameters * Replace MmeShadowScratch with Array256<uint> * Simplify properties and array initialization, Use const when possible, Remove trailing commas * Run dotnet format after rebase * Address IDE0251 warnings * Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas" This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e. * dotnet format whitespace after rebase * First dotnet format pass * Second dotnet format pass * Fix build issues * Fix StructArrayHelpers.cs * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * Fix return statements * Fix naming rule violations * Update src/Ryujinx.Common/Utilities/StreamUtils.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Add trailing commas * Address review feedback * Address review feedback * Rename remaining type parameters to TKey and TValue * Fix manual formatting for logging levels * Fix spacing before comments --------- Co-authored-by: Ac_K <Acoustik666@gmail.com>
67 lines
2.4 KiB
C#
67 lines
2.4 KiB
C#
using System.Net.NetworkInformation;
|
|
|
|
namespace Ryujinx.Common.Utilities
|
|
{
|
|
public static class NetworkHelpers
|
|
{
|
|
private static (IPInterfaceProperties, UnicastIPAddressInformation) GetLocalInterface(NetworkInterface adapter, bool isPreferred)
|
|
{
|
|
IPInterfaceProperties properties = adapter.GetIPProperties();
|
|
|
|
if (isPreferred || (properties.GatewayAddresses.Count > 0 && properties.DnsAddresses.Count > 0))
|
|
{
|
|
foreach (UnicastIPAddressInformation info in properties.UnicastAddresses)
|
|
{
|
|
// Only accept an IPv4 address
|
|
if (info.Address.GetAddressBytes().Length == 4)
|
|
{
|
|
return (properties, info);
|
|
}
|
|
}
|
|
}
|
|
|
|
return (null, null);
|
|
}
|
|
|
|
public static (IPInterfaceProperties, UnicastIPAddressInformation) GetLocalInterface(string lanInterfaceId = "0")
|
|
{
|
|
if (!NetworkInterface.GetIsNetworkAvailable())
|
|
{
|
|
return (null, null);
|
|
}
|
|
|
|
IPInterfaceProperties targetProperties = null;
|
|
UnicastIPAddressInformation targetAddressInfo = null;
|
|
|
|
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
|
|
|
|
string guid = lanInterfaceId;
|
|
bool hasPreference = guid != "0";
|
|
|
|
foreach (NetworkInterface adapter in interfaces)
|
|
{
|
|
bool isPreferred = adapter.Id == guid;
|
|
|
|
// Ignore loopback and non IPv4 capable interface.
|
|
if (isPreferred || (targetProperties == null && adapter.NetworkInterfaceType != NetworkInterfaceType.Loopback && adapter.Supports(NetworkInterfaceComponent.IPv4)))
|
|
{
|
|
(IPInterfaceProperties properties, UnicastIPAddressInformation info) = GetLocalInterface(adapter, isPreferred);
|
|
|
|
if (properties != null)
|
|
{
|
|
targetProperties = properties;
|
|
targetAddressInfo = info;
|
|
|
|
if (isPreferred || !hasPreference)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return (targetProperties, targetAddressInfo);
|
|
}
|
|
}
|
|
}
|