diff --git a/Source/IO/Net/AuNetSrvInterfaces.cpp b/Source/IO/Net/AuNetSrvInterfaces.cpp index 7447a4cd..aa901921 100644 --- a/Source/IO/Net/AuNetSrvInterfaces.cpp +++ b/Source/IO/Net/AuNetSrvInterfaces.cpp @@ -13,41 +13,40 @@ namespace Aurora::IO::Net { const AuString &NetSrvInterfaces::GetHostname() { - AU_LOCK_GUARD(this->lock); - if (this->bShouldUpdateCache) + AU_LOCK_GUARD(NetSrvInterfaces::gLock); + if (NetSrvInterfaces::bShouldUpdateCache) { UpdateCache(); } - - return hostname; + return NetSrvInterfaces::gHostname; } void NetSrvInterfaces::ResetAdapterCache() { - AU_LOCK_GUARD(this->lock); - this->bShouldUpdateCache = true; + AU_LOCK_GUARD(NetSrvInterfaces::gLock); + NetSrvInterfaces::bShouldUpdateCache = true; } void NetSrvInterfaces::UpdateCache() { - this->hostname = NetAdapter::GetHostname(); + NetSrvInterfaces::gHostname = NetAdapter::GetHostname(); auto ipv4s = NetAdapter::GetIPv4s(); auto ipv6s = NetAdapter::GetIPv6s(); - this->adapters.clear(); - this->adapters.insert(this->adapters.end(), ipv4s.begin(), ipv4s.end()); - this->adapters.insert(this->adapters.end(), ipv6s.begin(), ipv6s.end()); + NetSrvInterfaces::gAdapters.clear(); + NetSrvInterfaces::gAdapters.insert(NetSrvInterfaces::gAdapters.end(), ipv4s.begin(), ipv4s.end()); + NetSrvInterfaces::gAdapters.insert(NetSrvInterfaces::gAdapters.end(), ipv6s.begin(), ipv6s.end()); } AuList> NetSrvInterfaces::GetAdapters() { - AU_LOCK_GUARD(this->lock); + AU_LOCK_GUARD(NetSrvInterfaces::gLock); if (this->bShouldUpdateCache) { UpdateCache(); } - return this->adapters; + return this->NetSrvInterfaces::gAdapters; } bool NetSrvInterfaces::IsSupportedOnOS() diff --git a/Source/IO/Net/AuNetSrvInterfaces.hpp b/Source/IO/Net/AuNetSrvInterfaces.hpp index a7ae8a17..b19c8f58 100644 --- a/Source/IO/Net/AuNetSrvInterfaces.hpp +++ b/Source/IO/Net/AuNetSrvInterfaces.hpp @@ -11,20 +11,18 @@ namespace Aurora::IO::Net { struct NetSrvInterfaces : INetSrvInterfaces { - const AuString &GetHostname() override; + const AuString & GetHostname() override; void ResetAdapterCache() override; AuList> GetAdapters() override; bool IsSupportedOnOS(); - private: - void UpdateCache(); - AuThreadPrimitives::SpinLock lock; - AuString hostname; - bool bShouldUpdateCache { true }; - AuList> adapters; + cstatic AuMutex gLock; + cstatic AuString gHostname; + cstatic bool bShouldUpdateCache { true }; + cstatic AuList> gAdapters; }; } \ No newline at end of file