diff --git a/Modules/Net/main.swift b/Modules/Net/main.swift index 5794e733..9dad744a 100644 --- a/Modules/Net/main.swift +++ b/Modules/Net/main.swift @@ -30,6 +30,7 @@ public struct Network_interface: Codable { public struct Network_addr: Codable { var v4: String? = nil var v6: String? = nil + var countryCode: String? = nil } public struct Network_wifi: Codable { diff --git a/Modules/Net/popup.swift b/Modules/Net/popup.swift index 15b9aa8a..8e38d2e9 100644 --- a/Modules/Net/popup.swift +++ b/Modules/Net/popup.swift @@ -388,7 +388,11 @@ internal class Popup: PopupWrapper { } if let interface = value.interface { - self.interfaceField?.stringValue = "\(interface.displayName) (\(interface.BSDName))" + self.interfaceField?.stringValue = "\(interface.displayName) (\(interface.BSDName)" + if let cc = value.wifiDetails.countryCode { + self.interfaceField?.stringValue += ", \(cc)" + } + self.interfaceField?.stringValue += ")" self.macAddressField?.stringValue = interface.address } else { self.interfaceField?.stringValue = localizedString("Unknown") @@ -462,7 +466,10 @@ internal class Popup: PopupWrapper { self.recalculateHeight() } if self.publicIPv4Field?.stringValue != addr { - self.publicIPv4Field?.stringValue = (value.wifiDetails.countryCode != nil) ? "\(addr) (\(value.wifiDetails.countryCode!))" : addr + self.publicIPv4Field?.stringValue = addr + if let cc = value.raddr.countryCode { + self.publicIPv4Field?.stringValue += " (\(cc))" + } } } else if view.superview != nil { view.removeFromSuperview() diff --git a/Modules/Net/readers.swift b/Modules/Net/readers.swift index 2168903c..b915db53 100644 --- a/Modules/Net/readers.swift +++ b/Modules/Net/readers.swift @@ -416,6 +416,7 @@ internal class UsageReader: Reader, CWEventDelegate { struct Addr_s: Decodable { let ipv4: String? let ipv6: String? + let country: String? } DispatchQueue.global(qos: .userInitiated).async { @@ -425,6 +426,9 @@ internal class UsageReader: Reader, CWEventDelegate { if let ip = addr.ipv4, self.isIPv4(ip) { self.usage.raddr.v4 = ip } + if let countryCode = addr.country { + self.usage.raddr.countryCode = countryCode + } } } DispatchQueue.global(qos: .userInitiated).async { @@ -434,6 +438,9 @@ internal class UsageReader: Reader, CWEventDelegate { if let ip = addr.ipv6, !self.isIPv4(ip) { self.usage.raddr.v6 = ip } + if let countryCode = addr.country { + self.usage.raddr.countryCode = countryCode + } } } }