diff options
author | Machiavelli <none@none> | 2010-09-12 15:11:08 +0200 |
---|---|---|
committer | Machiavelli <none@none> | 2010-09-12 15:11:08 +0200 |
commit | bb8438c09b0458533e5b34c1917e97838fce2504 (patch) | |
tree | 95f8fb04de6120cbaa73adcd46e9829f1501e7d4 | |
parent | 855ec1cd0196e5b137eab6cb90a3feeb9a67d430 (diff) |
Core/DBLayer: Add GetCString method for PreparedResultSet (dynamic copy is responsibility of the high level code)
--HG--
branch : trunk
-rw-r--r-- | src/server/authserver/Server/AuthSocket.cpp | 4 | ||||
-rw-r--r-- | src/server/shared/Database/QueryResult.cpp | 8 | ||||
-rwxr-xr-x | src/server/shared/Database/QueryResult.h | 1 |
3 files changed, 11 insertions, 2 deletions
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<char const*>(rbind->m_rBind[index].buffer), *rbind->m_rBind[index].length); } +const char* PreparedResultSet::GetCString(uint32 index) +{ + if (!CheckFieldIndex(index)) + return '\0'; + + return static_cast<char const*>(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(); |