1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-07-22 17:18:39 +00:00

Cache client IP in RemoteClient so it can always be retrieved (#10887)

specifically: after the peer has already disappeared
This commit is contained in:
sfan5 2021-01-31 20:36:47 +01:00 committed by GitHub
parent 6e0e0324a4
commit 112a6adb10
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 83 additions and 98 deletions

View file

@ -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;