From bb8438c09b0458533e5b34c1917e97838fce2504 Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Sun, 12 Sep 2010 15:11:08 +0200 Subject: Core/DBLayer: Add GetCString method for PreparedResultSet (dynamic copy is responsibility of the high level code) --HG-- branch : trunk --- src/server/authserver/Server/AuthSocket.cpp | 4 ++-- src/server/shared/Database/QueryResult.cpp | 8 ++++++++ src/server/shared/Database/QueryResult.h | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/server/authserver/Server/AuthSocket.cpp b/src/server/authserver/Server/AuthSocket.cpp index b58082594d4..7029f53386e 100644 --- a/src/server/authserver/Server/AuthSocket.cpp +++ b/src/server/authserver/Server/AuthSocket.cpp @@ -389,7 +389,7 @@ bool AuthSocket::_HandleLogonChallenge() { sLog.outStaticDebug("[AuthChallenge] Account '%s' is locked to IP - '%s'", _login.c_str(), res2->GetString(3)); sLog.outStaticDebug("[AuthChallenge] Player address is '%s'", ip_address.c_str()); - if (strcmp(res2->GetString(3).c_str(), ip_address.c_str())) + if (strcmp(res2->GetCString(3), ip_address.c_str())) { sLog.outStaticDebug("[AuthChallenge] Account IP differs"); pkt << (uint8) WOW_FAIL_SUSPENDED; @@ -753,7 +753,7 @@ bool AuthSocket::_HandleReconnectChallenge() return false; } - K.SetHexStr (result->GetString(0).c_str()); + K.SetHexStr (result->GetCString(0)); ///- Sending response ByteBuffer pkt; diff --git a/src/server/shared/Database/QueryResult.cpp b/src/server/shared/Database/QueryResult.cpp index 9a0cf6293c6..18866e49fac 100644 --- a/src/server/shared/Database/QueryResult.cpp +++ b/src/server/shared/Database/QueryResult.cpp @@ -260,6 +260,14 @@ std::string PreparedResultSet::GetString(uint32 index) return std::string(static_cast(rbind->m_rBind[index].buffer), *rbind->m_rBind[index].length); } +const char* PreparedResultSet::GetCString(uint32 index) +{ + if (!CheckFieldIndex(index)) + return '\0'; + + return static_cast(rbind->m_rBind[index].buffer); +} + bool PreparedResultSet::NextRow() { if (row_position >= num_rows) diff --git a/src/server/shared/Database/QueryResult.h b/src/server/shared/Database/QueryResult.h index bb1a4684acc..805d31f3629 100755 --- a/src/server/shared/Database/QueryResult.h +++ b/src/server/shared/Database/QueryResult.h @@ -211,6 +211,7 @@ class PreparedResultSet int64 GetInt64(uint32 index); float GetFloat(uint32 index); std::string GetString(uint32 index); + const char* GetCString(uint32 index); bool NextRow(); -- cgit v1.2.3