diff options
author | sfan5 <sfan5@live.de> | 2021-01-31 20:36:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-31 20:36:47 +0100 |
commit | 112a6adb10d3a5a2e55012a36580607d12ce9758 (patch) | |
tree | 344696315dbb8e261477e15d2e13421173fca8ba /src/clientiface.h | |
parent | 6e0e0324a48130376ab3c9fef03b84ee25608242 (diff) | |
download | minetest-112a6adb10d3a5a2e55012a36580607d12ce9758.tar.gz minetest-112a6adb10d3a5a2e55012a36580607d12ce9758.tar.bz2 minetest-112a6adb10d3a5a2e55012a36580607d12ce9758.zip |
Cache client IP in RemoteClient so it can always be retrieved (#10887)
specifically: after the peer has already disappeared
Diffstat (limited to 'src/clientiface.h')
-rw-r--r-- | src/clientiface.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/clientiface.h b/src/clientiface.h index eabffb0b6..cc5292b71 100644 --- a/src/clientiface.h +++ b/src/clientiface.h @@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "serialization.h" // for SER_FMT_VER_INVALID #include "network/networkpacket.h" #include "network/networkprotocol.h" +#include "network/address.h" #include "porting.h" #include <list> @@ -188,7 +189,6 @@ enum ClientStateEvent { CSE_Hello, CSE_AuthAccept, - CSE_InitLegacy, CSE_GotInit2, CSE_SetDenied, CSE_SetDefinitionsSent, @@ -338,17 +338,24 @@ public: u8 getMajor() const { return m_version_major; } u8 getMinor() const { return m_version_minor; } u8 getPatch() const { return m_version_patch; } - const std::string &getFull() const { return m_full_version; } + const std::string &getFullVer() const { return m_full_version; } void setLangCode(const std::string &code) { m_lang_code = code; } const std::string &getLangCode() const { return m_lang_code; } + + void setCachedAddress(const Address &addr) { m_addr = addr; } + const Address &getAddress() const { return m_addr; } + private: // Version is stored in here after INIT before INIT2 u8 m_pending_serialization_version = SER_FMT_VER_INVALID; /* current state of client */ ClientState m_state = CS_Created; - + + // Cached here so retrieval doesn't have to go to connection API + Address m_addr; + // Client sent language code std::string m_lang_code; @@ -412,7 +419,7 @@ private: /* client information - */ + */ u8 m_version_major = 0; u8 m_version_minor = 0; u8 m_version_patch = 0; |