summaryrefslogtreecommitdiff
path: root/src/clientiface.h
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2021-01-31 20:36:47 +0100
committerGitHub <noreply@github.com>2021-01-31 20:36:47 +0100
commit112a6adb10d3a5a2e55012a36580607d12ce9758 (patch)
tree344696315dbb8e261477e15d2e13421173fca8ba /src/clientiface.h
parent6e0e0324a48130376ab3c9fef03b84ee25608242 (diff)
downloadminetest-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.h15
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;