diff options
Diffstat (limited to 'src/server/shared')
-rwxr-xr-x | src/server/shared/Common.h | 25 | ||||
-rwxr-xr-x | src/server/shared/Cryptography/ARC4.h | 2 | ||||
-rwxr-xr-x | src/server/shared/Cryptography/Authentication/AuthCrypt.cpp | 3 | ||||
-rwxr-xr-x | src/server/shared/Cryptography/Authentication/AuthCrypt.h | 1 | ||||
-rwxr-xr-x | src/server/shared/Cryptography/BigNumber.cpp | 23 | ||||
-rwxr-xr-x | src/server/shared/Cryptography/BigNumber.h | 2 | ||||
-rwxr-xr-x | src/server/shared/Cryptography/HMACSHA1.h | 3 | ||||
-rwxr-xr-x | src/server/shared/Cryptography/SHA1.h | 4 | ||||
-rwxr-xr-x | src/server/shared/Database/Implementation/CharacterDatabase.cpp | 16 | ||||
-rwxr-xr-x | src/server/shared/Database/Implementation/CharacterDatabase.h | 3 | ||||
-rwxr-xr-x | src/server/shared/Dynamic/TypeContainer.h | 10 | ||||
-rwxr-xr-x | src/server/shared/Dynamic/TypeContainerFunctions.h | 51 | ||||
-rwxr-xr-x | src/server/shared/Dynamic/UnorderedMap.h | 1 | ||||
-rwxr-xr-x | src/server/shared/Logging/Log.cpp | 66 | ||||
-rwxr-xr-x | src/server/shared/Logging/Log.h | 6 | ||||
-rwxr-xr-x | src/server/shared/Utilities/Util.cpp | 7 |
16 files changed, 127 insertions, 96 deletions
diff --git a/src/server/shared/Common.h b/src/server/shared/Common.h index ffecf020d24..bc9c0c62ccc 100755 --- a/src/server/shared/Common.h +++ b/src/server/shared/Common.h @@ -146,12 +146,12 @@ inline float finiteAlways(float f) { return finite(f) ? f : 0.0f; } enum TimeConstants { - MINUTE = 60, - HOUR = MINUTE*60, - DAY = HOUR*24, - WEEK = DAY*7, - MONTH = DAY*30, - YEAR = MONTH*12, + MINUTE = 60, + HOUR = MINUTE*60, + DAY = HOUR*24, + WEEK = DAY*7, + MONTH = DAY*30, + YEAR = MONTH*12, IN_MILLISECONDS = 1000 }; @@ -203,4 +203,17 @@ typedef std::vector<std::string> StringVector; #endif #define MAX_QUERY_LEN 32*1024 + +#define TRINITY_GUARD(MUTEX, LOCK) \ + ACE_Guard< MUTEX > TRINITY_GUARD_OBJECT (LOCK); \ + if (TRINITY_GUARD_OBJECT.locked() == 0) ASSERT(false); + +# define TRINITY_WRITE_GUARD(MUTEX, LOCK) \ + ACE_Write_Guard< MUTEX > TRINITY_GUARD_OBJECT (LOCK); \ + if (TRINITY_GUARD_OBJECT.locked() == 0) ASSERT(false); + +# define TRINITY_READ_GUARD(MUTEX, LOCK) \ + ACE_Read_Guard< MUTEX > TRINITY_GUARD_OBJECT (LOCK); \ + if (TRINITY_GUARD_OBJECT.locked() == 0) ASSERT(false); + #endif diff --git a/src/server/shared/Cryptography/ARC4.h b/src/server/shared/Cryptography/ARC4.h index 777dbb8cb99..abf753be02f 100755 --- a/src/server/shared/Cryptography/ARC4.h +++ b/src/server/shared/Cryptography/ARC4.h @@ -19,7 +19,7 @@ #ifndef _AUTH_SARC4_H #define _AUTH_SARC4_H -#include "Common.h" +#include "Define.h" #include <openssl/evp.h> class ARC4 diff --git a/src/server/shared/Cryptography/Authentication/AuthCrypt.cpp b/src/server/shared/Cryptography/Authentication/AuthCrypt.cpp index 146f4e992b7..a2db02dfbe3 100755 --- a/src/server/shared/Cryptography/Authentication/AuthCrypt.cpp +++ b/src/server/shared/Cryptography/Authentication/AuthCrypt.cpp @@ -18,12 +18,11 @@ #include "AuthCrypt.h" #include "Cryptography/HMACSHA1.h" -#include "Logging/Log.h" #include "Cryptography/BigNumber.h" AuthCrypt::AuthCrypt() : _clientDecrypt(SHA_DIGEST_LENGTH), _serverEncrypt(SHA_DIGEST_LENGTH) + , _initialized(false) { - _initialized = false; } AuthCrypt::~AuthCrypt() diff --git a/src/server/shared/Cryptography/Authentication/AuthCrypt.h b/src/server/shared/Cryptography/Authentication/AuthCrypt.h index 0304ef6b69e..e7463b0d962 100755 --- a/src/server/shared/Cryptography/Authentication/AuthCrypt.h +++ b/src/server/shared/Cryptography/Authentication/AuthCrypt.h @@ -19,7 +19,6 @@ #ifndef _AUTHCRYPT_H #define _AUTHCRYPT_H -#include <Common.h> #include "Cryptography/ARC4.h" class BigNumber; diff --git a/src/server/shared/Cryptography/BigNumber.cpp b/src/server/shared/Cryptography/BigNumber.cpp index 6149a680594..76cb74d5e13 100755 --- a/src/server/shared/Cryptography/BigNumber.cpp +++ b/src/server/shared/Cryptography/BigNumber.cpp @@ -18,31 +18,30 @@ #include "Cryptography/BigNumber.h" #include <openssl/bn.h> +#include <openssl/crypto.h> #include <algorithm> BigNumber::BigNumber() -{ - _bn = BN_new(); - _array = NULL; -} + : _bn(BN_new()) + , _array(NULL) +{ } BigNumber::BigNumber(const BigNumber &bn) -{ - _bn = BN_dup(bn._bn); - _array = NULL; -} + : _bn(BN_dup(bn._bn)) + , _array(NULL) +{ } BigNumber::BigNumber(uint32 val) + : _bn(BN_new()) + , _array(NULL) { - _bn = BN_new(); BN_set_word(_bn, val); - _array = NULL; } BigNumber::~BigNumber() { BN_free(_bn); - if (_array) delete[] _array; + delete[] _array; } void BigNumber::SetDword(uint32 val) @@ -76,6 +75,8 @@ void BigNumber::SetRand(int numbits) BigNumber BigNumber::operator=(const BigNumber &bn) { + if (this == &bn) + return *this; BN_copy(_bn, bn._bn); return *this; } diff --git a/src/server/shared/Cryptography/BigNumber.h b/src/server/shared/Cryptography/BigNumber.h index 485d4ced470..eb450c27777 100755 --- a/src/server/shared/Cryptography/BigNumber.h +++ b/src/server/shared/Cryptography/BigNumber.h @@ -19,7 +19,7 @@ #ifndef _AUTH_BIGNUMBER_H #define _AUTH_BIGNUMBER_H -#include "Common.h" +#include "Define.h" struct bignum_st; diff --git a/src/server/shared/Cryptography/HMACSHA1.h b/src/server/shared/Cryptography/HMACSHA1.h index 180ac6f4262..2d6e0c276a8 100755 --- a/src/server/shared/Cryptography/HMACSHA1.h +++ b/src/server/shared/Cryptography/HMACSHA1.h @@ -19,7 +19,8 @@ #ifndef _AUTH_HMAC_H #define _AUTH_HMAC_H -#include "Common.h" +#include "Define.h" +#include <string> #include <openssl/hmac.h> #include <openssl/sha.h> diff --git a/src/server/shared/Cryptography/SHA1.h b/src/server/shared/Cryptography/SHA1.h index 27e2d3290d0..9cb9b7b90f9 100755 --- a/src/server/shared/Cryptography/SHA1.h +++ b/src/server/shared/Cryptography/SHA1.h @@ -19,9 +19,9 @@ #ifndef _AUTH_SHA1_H #define _AUTH_SHA1_H -#include "Common.h" +#include "Define.h" +#include <string> #include <openssl/sha.h> -#include <openssl/crypto.h> class BigNumber; diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp index 816dc25f1b3..f93c4a70d7c 100755 --- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp @@ -300,4 +300,20 @@ void CharacterDatabaseConnection::DoPrepareStatements() // For loading and deleting expired auctions at startup PREPARE_STATEMENT(CHAR_LOAD_EXPIRED_AUCTIONS, "SELECT id, auctioneerguid, itemguid, itemEntry, itemowner, buyoutprice, time, buyguid, lastbid, startbid, deposit FROM auctionhouse ah INNER JOIN item_instance ii ON ii.guid = ah.itemguid WHERE ah.time <= ?", CONNECTION_SYNCH) + // Player saving + PREPARE_STATEMENT(CHAR_ADD_CHARACTER, "INSERT INTO characters (guid, account, name, race, class, gender, level, xp, money, playerBytes, playerBytes2, playerFlags, " + "map, instance_id, instance_mode_mask, position_x, position_y, position_z, orientation, " + "taximask, cinematic, " + "totaltime, leveltime, rest_bonus, logout_time, is_logout_resting, resettalents_cost, resettalents_time, " + "extra_flags, stable_slots, at_login, zone, " + "death_expire_time, taxi_path, arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, " + "todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk, health, power1, power2, power3, " + "power4, power5, power6, power7, latency, speccount, activespec, exploredZones, equipmentCache, ammoId, knownTitles, actionBars, grantableLevels) VALUES " + "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", CONNECTION_ASYNC); + PREPARE_STATEMENT(CHAR_UPD_CHARACTER, "UPDATE characters SET name=?,race=?,class=?,gender=?,level=?,xp=?,money=?,playerBytes=?,playerBytes2=?,playerFlags=?," + "map=?,instance_id=?,instance_mode_mask=?,position_x=?,position_y=?,position_z=?,orientation=?,taximask=?,cinematic=?,totaltime=?,leveltime=?,rest_bonus=?," + "logout_time=?,is_logout_resting=?,resettalents_cost=?,resettalents_time=?,extra_flags=?,stable_slots=?,at_login=?,zone=?,death_expire_time=?,taxi_path=?," + "arenaPoints=?,totalHonorPoints=?,todayHonorPoints=?,yesterdayHonorPoints=?,totalKills=?,todayKills=?,yesterdayKills=?,chosenTitle=?,knownCurrencies=?," + "watchedFaction=?,drunk=?,health=?,power1=?,power2=?,power3=?,power4=?,power5=?,power6=?,power7=?,latency=?,speccount=?,activespec=?,exploredZones=?," + "equipmentCache=?,ammoId=?,knownTitles=?,actionBars=?,grantableLevels=?,online=? WHERE guid=?", CONNECTION_ASYNC); } diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.h b/src/server/shared/Database/Implementation/CharacterDatabase.h index dd752914138..f06a17aa924 100755 --- a/src/server/shared/Database/Implementation/CharacterDatabase.h +++ b/src/server/shared/Database/Implementation/CharacterDatabase.h @@ -275,6 +275,9 @@ enum CharacterDatabaseStatements CHAR_LOAD_EXPIRED_AUCTIONS, + CHAR_ADD_CHARACTER, + CHAR_UPD_CHARACTER, + MAX_CHARACTERDATABASE_STATEMENTS, }; diff --git a/src/server/shared/Dynamic/TypeContainer.h b/src/server/shared/Dynamic/TypeContainer.h index 0fb3eb25347..7f6f5fa661c 100755 --- a/src/server/shared/Dynamic/TypeContainer.h +++ b/src/server/shared/Dynamic/TypeContainer.h @@ -108,11 +108,11 @@ class TypeMapContainer } /// Removes the object from the container, and returns the removed object - template<class SPECIFIC_TYPE> bool remove(SPECIFIC_TYPE* obj) - { - SPECIFIC_TYPE* t = Trinity::Remove(i_elements, obj); - return (t != NULL); - } + //template<class SPECIFIC_TYPE> bool remove(SPECIFIC_TYPE* obj) + //{ + // SPECIFIC_TYPE* t = Trinity::Remove(i_elements, obj); + // return (t != NULL); + //} ContainerMapList<OBJECT_TYPES> & GetElements(void) { return i_elements; } const ContainerMapList<OBJECT_TYPES> & GetElements(void) const { return i_elements;} diff --git a/src/server/shared/Dynamic/TypeContainerFunctions.h b/src/server/shared/Dynamic/TypeContainerFunctions.h index 981cd82197f..9bfbf47da93 100755 --- a/src/server/shared/Dynamic/TypeContainerFunctions.h +++ b/src/server/shared/Dynamic/TypeContainerFunctions.h @@ -62,7 +62,7 @@ namespace Trinity template<class SPECIFIC_TYPE> SPECIFIC_TYPE* Insert(ContainerMapList<SPECIFIC_TYPE> &elements, SPECIFIC_TYPE *obj) { //elements._element[hdl] = obj; - obj->GetGridRef().link(&elements._element, obj); + obj->AddToGrid(elements._element); return obj; }; @@ -84,31 +84,30 @@ namespace Trinity return (t != NULL ? t : Insert(elements._TailElements, obj)); } - // non-const remove method - template<class SPECIFIC_TYPE> SPECIFIC_TYPE* Remove(ContainerMapList<SPECIFIC_TYPE> & /*elements*/, SPECIFIC_TYPE *obj) - { - obj->GetGridRef().unlink(); - return obj; - } - - template<class SPECIFIC_TYPE> SPECIFIC_TYPE* Remove(ContainerMapList<TypeNull> &/*elements*/, SPECIFIC_TYPE * /*obj*/) - { - return NULL; - } - - // this is a missed - template<class SPECIFIC_TYPE, class T> SPECIFIC_TYPE* Remove(ContainerMapList<T> &/*elements*/, SPECIFIC_TYPE * /*obj*/) - { - return NULL; // a missed - } - - template<class SPECIFIC_TYPE, class T, class H> SPECIFIC_TYPE* Remove(ContainerMapList<TypeList<H, T> > &elements, SPECIFIC_TYPE *obj) - { - // The head element is bad - SPECIFIC_TYPE* t = Remove(elements._elements, obj); - return ( t != NULL ? t : Remove(elements._TailElements, obj) ); - } - + //// non-const remove method + //template<class SPECIFIC_TYPE> SPECIFIC_TYPE* Remove(ContainerMapList<SPECIFIC_TYPE> & /*elements*/, SPECIFIC_TYPE *obj) + //{ + // obj->GetGridRef().unlink(); + // return obj; + //} + + //template<class SPECIFIC_TYPE> SPECIFIC_TYPE* Remove(ContainerMapList<TypeNull> &/*elements*/, SPECIFIC_TYPE * /*obj*/) + //{ + // return NULL; + //} + + //// this is a missed + //template<class SPECIFIC_TYPE, class T> SPECIFIC_TYPE* Remove(ContainerMapList<T> &/*elements*/, SPECIFIC_TYPE * /*obj*/) + //{ + // return NULL; // a missed + //} + + //template<class SPECIFIC_TYPE, class T, class H> SPECIFIC_TYPE* Remove(ContainerMapList<TypeList<H, T> > &elements, SPECIFIC_TYPE *obj) + //{ + // // The head element is bad + // SPECIFIC_TYPE* t = Remove(elements._elements, obj); + // return ( t != NULL ? t : Remove(elements._TailElements, obj) ); + //} } #endif diff --git a/src/server/shared/Dynamic/UnorderedMap.h b/src/server/shared/Dynamic/UnorderedMap.h index c698cc0a823..92a7dddf8a8 100755 --- a/src/server/shared/Dynamic/UnorderedMap.h +++ b/src/server/shared/Dynamic/UnorderedMap.h @@ -71,4 +71,3 @@ namespace __gnu_cxx using std::hash_map; #endif #endif - diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp index 56c02a8e77b..697e7616c40 100755 --- a/src/server/shared/Logging/Log.cpp +++ b/src/server/shared/Logging/Log.cpp @@ -139,7 +139,7 @@ void Log::Initialize() { bool m_gmlog_timestamp = ConfigMgr::GetBoolDefault("GmLogTimestamp", false); - size_t dot_pos = m_gmlog_filename_format.find_last_of("."); + size_t dot_pos = m_gmlog_filename_format.find_last_of('.'); if (dot_pos!=m_gmlog_filename_format.npos) { if (m_gmlog_timestamp) @@ -556,10 +556,10 @@ void Log::outSQLDriver(const char* str, ...) { outTimestamp(sqlLogFile); - va_list ap; - va_start(ap, str); - vfprintf(sqlLogFile, str, ap); - va_end(ap); + va_list apSQL; + va_start(apSQL, str); + vfprintf(sqlLogFile, str, apSQL); + va_end(apSQL); fprintf(sqlLogFile, "\n"); fflush(sqlLogFile); @@ -646,11 +646,11 @@ void Log::outBasic(const char * str, ...) if (logfile) { outTimestamp(logfile); - va_list ap; - va_start(ap, str); - vfprintf(logfile, str, ap); + va_list ap2; + va_start(ap2, str); + vfprintf(logfile, str, ap2); fprintf(logfile, "\n" ); - va_end(ap); + va_end(ap2); fflush(logfile); } } @@ -690,10 +690,10 @@ void Log::outDetail(const char * str, ...) if (logfile) { outTimestamp(logfile); - va_list ap; - va_start(ap, str); - vfprintf(logfile, str, ap); - va_end(ap); + va_list ap2; + va_start(ap2, str); + vfprintf(logfile, str, ap2); + va_end(ap2); fprintf(logfile, "\n"); fflush(logfile); @@ -720,10 +720,10 @@ void Log::outDebugInLine(const char * str, ...) if (logfile) { - va_list ap; - va_start(ap, str); - vfprintf(logfile, str, ap); - va_end(ap); + va_list ap2; + va_start(ap2, str); + vfprintf(logfile, str, ap2); + va_end(ap2); } } } @@ -742,10 +742,10 @@ void Log::outSQLDev(const char* str, ...) if (sqlDevLogFile) { - va_list ap; - va_start(ap, str); - vfprintf(sqlDevLogFile, str, ap); - va_end(ap); + va_list ap2; + va_start(ap2, str); + vfprintf(sqlDevLogFile, str, ap2); + va_end(ap2); fprintf(sqlDevLogFile, "\n"); fflush(sqlDevLogFile); @@ -790,10 +790,10 @@ void Log::outDebug(DebugLogFilters f, const char * str, ...) if (logfile) { outTimestamp(logfile); - va_list ap; - va_start(ap, str); - vfprintf(logfile, str, ap); - va_end(ap); + va_list ap2; + va_start(ap2, str); + vfprintf(logfile, str, ap2); + va_end(ap2); fprintf(logfile, "\n" ); fflush(logfile); @@ -835,10 +835,10 @@ void Log::outStaticDebug(const char * str, ...) if (logfile) { outTimestamp(logfile); - va_list ap; - va_start(ap, str); - vfprintf(logfile, str, ap); - va_end(ap); + va_list ap2; + va_start(ap2, str); + vfprintf(logfile, str, ap2); + va_end(ap2); fprintf(logfile, "\n" ); fflush(logfile); @@ -900,11 +900,11 @@ void Log::outCommand(uint32 account, const char * str, ...) if (logfile) { outTimestamp(logfile); - va_list ap; - va_start(ap, str); - vfprintf(logfile, str, ap); + va_list ap2; + va_start(ap2, str); + vfprintf(logfile, str, ap2); fprintf(logfile, "\n" ); - va_end(ap); + va_end(ap2); fflush(logfile); } } diff --git a/src/server/shared/Logging/Log.h b/src/server/shared/Logging/Log.h index 5c23616ac5c..5b2eb6aafb6 100755 --- a/src/server/shared/Logging/Log.h +++ b/src/server/shared/Logging/Log.h @@ -102,8 +102,10 @@ const int Colors = int(WHITE)+1; class Log { friend class ACE_Singleton<Log, ACE_Thread_Mutex>; - Log(); - ~Log(); + + private: + Log(); + ~Log(); public: void Initialize(); diff --git a/src/server/shared/Utilities/Util.cpp b/src/server/shared/Utilities/Util.cpp index 187258e41b3..5919529c6bf 100755 --- a/src/server/shared/Utilities/Util.cpp +++ b/src/server/shared/Utilities/Util.cpp @@ -17,7 +17,6 @@ */ #include "Util.h" - #include "utf8.h" #ifdef USE_SFMT_FOR_RNG #include "SFMT.h" @@ -162,13 +161,13 @@ std::string secsToTimeString(uint64 timeInSecs, bool shortText, bool hoursOnly) std::ostringstream ss; if (days) - ss << days << (shortText ? "d " : " Day(s) "); + ss << days << (shortText ? "d" : " Day(s) "); if (hours || hoursOnly) - ss << hours << (shortText ? "h " : " Hour(s) "); + ss << hours << (shortText ? "h" : " Hour(s) "); if (!hoursOnly) { if (minutes) - ss << minutes << (shortText ? "m " : " Minute(s) "); + ss << minutes << (shortText ? "m" : " Minute(s) "); if (secs || (!days && !hours && !minutes) ) ss << secs << (shortText ? "s" : " Second(s)."); } |