aboutsummaryrefslogtreecommitdiff
path: root/core/net/interface_windows.odin
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2024-06-29 19:50:51 +0100
committergingerBill <bill@gingerbill.org>2024-06-29 19:50:51 +0100
commite296d6fb902083fac534bdd4c804e6dbad2fc458 (patch)
tree18e0875791d202dc4dde1d148c0786494e2b2b14 /core/net/interface_windows.odin
parent90244a0849afe9f17e011dc8c3bae571c9f5bb26 (diff)
Fix loads of indentation issues with mixing spaces and tabs
Diffstat (limited to 'core/net/interface_windows.odin')
-rw-r--r--core/net/interface_windows.odin178
1 files changed, 89 insertions, 89 deletions
diff --git a/core/net/interface_windows.odin b/core/net/interface_windows.odin
index f8bac253a..b9abcff48 100644
--- a/core/net/interface_windows.odin
+++ b/core/net/interface_windows.odin
@@ -24,42 +24,42 @@ import strings "core:strings"
_enumerate_interfaces :: proc(allocator := context.allocator) -> (interfaces: []Network_Interface, err: Network_Error) {
context.allocator = allocator
- buf: []u8
- defer delete(buf)
+ buf: []u8
+ defer delete(buf)
- buf_size: u32
- res: u32
+ buf_size: u32
+ res: u32
- gaa: for _ in 1..=MAX_INTERFACE_ENUMERATION_TRIES {
- res = sys.get_adapters_addresses(
- .Unspecified, // Return both IPv4 and IPv6 adapters.
+ gaa: for _ in 1..=MAX_INTERFACE_ENUMERATION_TRIES {
+ res = sys.get_adapters_addresses(
+ .Unspecified, // Return both IPv4 and IPv6 adapters.
sys.GAA_Flags{
.Include_Prefix, // (XP SP1+) Return a list of IP address prefixes on this adapter. When this flag is set, IP address prefixes are returned for both IPv6 and IPv4 addresses.
.Include_Gateways, // (Vista+) Return the addresses of default gateways.
.Include_Tunnel_Binding_Order, // (Vista+) Return the adapter addresses sorted in tunnel binding order.
},
- nil, // Reserved
- (^sys.IP_Adapter_Addresses)(raw_data(buf)),
- &buf_size,
- )
-
- switch res {
- case 111: // ERROR_BUFFER_OVERFLOW:
- delete(buf)
- buf = make([]u8, buf_size)
- case 0:
- break gaa
- case:
- return {}, Platform_Error(res)
- }
- }
-
- if res != 0 {
- return {}, .Unable_To_Enumerate_Network_Interfaces
- }
-
- _interfaces := make([dynamic]Network_Interface, 0, allocator)
- for adapter := (^sys.IP_Adapter_Addresses)(raw_data(buf)); adapter != nil; adapter = adapter.Next {
+ nil, // Reserved
+ (^sys.IP_Adapter_Addresses)(raw_data(buf)),
+ &buf_size,
+ )
+
+ switch res {
+ case 111: // ERROR_BUFFER_OVERFLOW:
+ delete(buf)
+ buf = make([]u8, buf_size)
+ case 0:
+ break gaa
+ case:
+ return {}, Platform_Error(res)
+ }
+ }
+
+ if res != 0 {
+ return {}, .Unable_To_Enumerate_Network_Interfaces
+ }
+
+ _interfaces := make([dynamic]Network_Interface, 0, allocator)
+ for adapter := (^sys.IP_Adapter_Addresses)(raw_data(buf)); adapter != nil; adapter = adapter.Next {
friendly_name, err1 := sys.wstring_to_utf8(sys.wstring(adapter.FriendlyName), 256, allocator)
if err1 != nil { return {}, Platform_Error(err1) }
@@ -71,74 +71,74 @@ _enumerate_interfaces :: proc(allocator := context.allocator) -> (interfaces: []
interface := Network_Interface{
adapter_name = strings.clone(string(adapter.AdapterName)),
- friendly_name = friendly_name,
- description = description,
- dns_suffix = dns_suffix,
+ friendly_name = friendly_name,
+ description = description,
+ dns_suffix = dns_suffix,
- mtu = adapter.MTU,
+ mtu = adapter.MTU,
- link = {
+ link = {
transmit_speed = adapter.TransmitLinkSpeed,
receive_speed = adapter.ReceiveLinkSpeed,
- },
- }
-
- if adapter.PhysicalAddressLength > 0 && adapter.PhysicalAddressLength <= len(adapter.PhysicalAddress) {
- interface.physical_address = physical_address_to_string(adapter.PhysicalAddress[:adapter.PhysicalAddressLength])
- }
-
- for u_addr := (^sys.IP_ADAPTER_UNICAST_ADDRESS_LH)(adapter.FirstUnicastAddress); u_addr != nil; u_addr = u_addr.Next {
- win_addr := parse_socket_address(u_addr.Address)
-
- lease := Lease{
- address = win_addr.address,
- origin = {
- prefix = Prefix_Origin(u_addr.PrefixOrigin),
- suffix = Suffix_Origin(u_addr.SuffixOrigin),
- },
- lifetime = {
- valid = u_addr.ValidLifetime,
- preferred = u_addr.PreferredLifetime,
- lease = u_addr.LeaseLifetime,
- },
- address_duplication = Address_Duplication(u_addr.DadState),
- }
- append(&interface.unicast, lease)
- }
-
- for a_addr := (^sys.IP_ADAPTER_ANYCAST_ADDRESS_XP)(adapter.FirstAnycastAddress); a_addr != nil; a_addr = a_addr.Next {
- addr := parse_socket_address(a_addr.Address)
- append(&interface.anycast, addr.address)
- }
-
- for m_addr := (^sys.IP_ADAPTER_MULTICAST_ADDRESS_XP)(adapter.FirstMulticastAddress); m_addr != nil; m_addr = m_addr.Next {
- addr := parse_socket_address(m_addr.Address)
- append(&interface.multicast, addr.address)
- }
-
- for g_addr := (^sys.IP_ADAPTER_GATEWAY_ADDRESS_LH)(adapter.FirstGatewayAddress); g_addr != nil; g_addr = g_addr.Next {
- addr := parse_socket_address(g_addr.Address)
- append(&interface.gateways, addr.address)
- }
+ },
+ }
+
+ if adapter.PhysicalAddressLength > 0 && adapter.PhysicalAddressLength <= len(adapter.PhysicalAddress) {
+ interface.physical_address = physical_address_to_string(adapter.PhysicalAddress[:adapter.PhysicalAddressLength])
+ }
+
+ for u_addr := (^sys.IP_ADAPTER_UNICAST_ADDRESS_LH)(adapter.FirstUnicastAddress); u_addr != nil; u_addr = u_addr.Next {
+ win_addr := parse_socket_address(u_addr.Address)
+
+ lease := Lease{
+ address = win_addr.address,
+ origin = {
+ prefix = Prefix_Origin(u_addr.PrefixOrigin),
+ suffix = Suffix_Origin(u_addr.SuffixOrigin),
+ },
+ lifetime = {
+ valid = u_addr.ValidLifetime,
+ preferred = u_addr.PreferredLifetime,
+ lease = u_addr.LeaseLifetime,
+ },
+ address_duplication = Address_Duplication(u_addr.DadState),
+ }
+ append(&interface.unicast, lease)
+ }
+
+ for a_addr := (^sys.IP_ADAPTER_ANYCAST_ADDRESS_XP)(adapter.FirstAnycastAddress); a_addr != nil; a_addr = a_addr.Next {
+ addr := parse_socket_address(a_addr.Address)
+ append(&interface.anycast, addr.address)
+ }
+
+ for m_addr := (^sys.IP_ADAPTER_MULTICAST_ADDRESS_XP)(adapter.FirstMulticastAddress); m_addr != nil; m_addr = m_addr.Next {
+ addr := parse_socket_address(m_addr.Address)
+ append(&interface.multicast, addr.address)
+ }
+
+ for g_addr := (^sys.IP_ADAPTER_GATEWAY_ADDRESS_LH)(adapter.FirstGatewayAddress); g_addr != nil; g_addr = g_addr.Next {
+ addr := parse_socket_address(g_addr.Address)
+ append(&interface.gateways, addr.address)
+ }
interface.dhcp_v4 = parse_socket_address(adapter.Dhcpv4Server).address
interface.dhcp_v6 = parse_socket_address(adapter.Dhcpv6Server).address
- switch adapter.OperStatus {
- case .Up: interface.link.state = {.Up}
- case .Down: interface.link.state = {.Down}
- case .Testing: interface.link.state = {.Testing}
- case .Dormant: interface.link.state = {.Dormant}
- case .NotPresent: interface.link.state = {.Not_Present}
- case .LowerLayerDown: interface.link.state = {.Lower_Layer_Down}
- case .Unknown: fallthrough
- case: interface.link.state = {}
- }
-
- interface.tunnel_type = Tunnel_Type(adapter.TunnelType)
-
- append(&_interfaces, interface)
- }
+ switch adapter.OperStatus {
+ case .Up: interface.link.state = {.Up}
+ case .Down: interface.link.state = {.Down}
+ case .Testing: interface.link.state = {.Testing}
+ case .Dormant: interface.link.state = {.Dormant}
+ case .NotPresent: interface.link.state = {.Not_Present}
+ case .LowerLayerDown: interface.link.state = {.Lower_Layer_Down}
+ case .Unknown: fallthrough
+ case: interface.link.state = {}
+ }
+
+ interface.tunnel_type = Tunnel_Type(adapter.TunnelType)
+
+ append(&_interfaces, interface)
+ }
return _interfaces[:], {}
}