diff --git a/r5dev/engine/server/sv_rcon.cpp b/r5dev/engine/server/sv_rcon.cpp index fc2d58c3..fbb60934 100644 --- a/r5dev/engine/server/sv_rcon.cpp +++ b/r5dev/engine/server/sv_rcon.cpp @@ -53,8 +53,15 @@ void CRConServer::Init(void) return; } } + else + { + // Already initialized. + return; + } - m_Address.SetFromString(Format("[%s]:%i", NET_IPV6_UNSPEC, hostport->GetInt()).c_str(), true); + const char* pszAddress = net_usesocketsforloopback->GetBool() ? NET_IPV6_UNSPEC : NET_IPV6_LOOPBACK; + + m_Address.SetFromString(Format("[%s]:%i", pszAddress, hostport->GetInt()).c_str(), true); m_Socket.CreateListenSocket(m_Address); DevMsg(eDLL_T::SERVER, "Remote server access initialized ('%s')\n", m_Address.ToString()); diff --git a/r5dev/public/tier1/NetAdr.h b/r5dev/public/tier1/NetAdr.h index f3f343db..71e14b94 100644 --- a/r5dev/public/tier1/NetAdr.h +++ b/r5dev/public/tier1/NetAdr.h @@ -3,6 +3,7 @@ #define NET_IPV4_UNSPEC "0.0.0.0" #define NET_IPV6_UNSPEC "::" +#define NET_IPV6_LOOPBACK "::1" enum class netadrtype_t {