IF_TYPE_ETHERNET_CSMACD

This commit is contained in:
ssrlive 2023-10-01 10:04:35 +08:00
parent a948b9c572
commit fb5db87a3f

View file

@ -21,8 +21,8 @@ use windows::{
NetworkManagement::{ NetworkManagement::{
IpHelper::{ IpHelper::{
GetAdaptersAddresses, SetInterfaceDnsSettings, DNS_INTERFACE_SETTINGS, DNS_INTERFACE_SETTINGS_VERSION1, GetAdaptersAddresses, SetInterfaceDnsSettings, DNS_INTERFACE_SETTINGS, DNS_INTERFACE_SETTINGS_VERSION1,
DNS_SETTING_NAMESERVER, GAA_FLAG_INCLUDE_GATEWAYS, GAA_FLAG_INCLUDE_PREFIX, IF_TYPE_IEEE80211, DNS_SETTING_NAMESERVER, GAA_FLAG_INCLUDE_GATEWAYS, GAA_FLAG_INCLUDE_PREFIX, IF_TYPE_ETHERNET_CSMACD,
IP_ADAPTER_ADDRESSES_LH, IF_TYPE_IEEE80211, IP_ADAPTER_ADDRESSES_LH,
}, },
Ndis::IfOperStatusUp, Ndis::IfOperStatusUp,
}, },
@ -379,8 +379,9 @@ pub(crate) fn set_interface_dns_settings(interface: GUID, dns: &[IpAddr]) -> io:
pub(crate) fn get_active_network_interface_gateways() -> io::Result<Vec<SocketAddr>> { pub(crate) fn get_active_network_interface_gateways() -> io::Result<Vec<SocketAddr>> {
let mut addrs = vec![]; let mut addrs = vec![];
get_adapters_addresses(|adapter| { get_adapters_addresses(|adapter| {
log::trace!("adapter: {:?}", unsafe { adapter.FriendlyName.to_string() }); if adapter.OperStatus == IfOperStatusUp
if adapter.OperStatus == IfOperStatusUp && adapter.IfType == IF_TYPE_IEEE80211 { && [IF_TYPE_ETHERNET_CSMACD, IF_TYPE_IEEE80211].contains(&adapter.IfType)
{
let mut current_gateway = adapter.FirstGatewayAddress; let mut current_gateway = adapter.FirstGatewayAddress;
while !current_gateway.is_null() { while !current_gateway.is_null() {
let gateway = unsafe { &*current_gateway }; let gateway = unsafe { &*current_gateway };