Commit Graph

65 Commits

Author SHA1 Message Date
Machiavelli 5864a2e151 Core/Packets: Add some additional movementflag filtering to eliminate some packet spoof attempts. 2011-06-27 00:10:53 +02:00
Machiavelli ad81d4132c Core/Packets: Remove MOVEMENTFLAG_ROOT flag from movementinfo that is sent from client to server. This flag is not valid in this case and is a packet spoofing attempt. When used in conjunction with any of the moving movement flags such as MOVEMENTFLAG_FORWARD this will freeze surrounding clients that receive the cheater's movementinfo.
Thanks to Dvlpr for help with research.
2011-06-26 21:27:10 +02:00
click f7b0e58a14 Core: Remove a few warnings (unused variables), clean up tabs whitespaces 2011-06-23 09:13:58 +02:00
Machiavelli 9b17b9c3ba Core/DBLayer: Fix possible crashes from fe8cb7 2011-06-22 18:04:12 +02:00
Machiavelli fe8cb75bf1 Core/DBLayer: Make database interaction after create character packet completely asynchronous. This is more performant and fixes a DoS loophole and possible data desynchronisation caused by spamming this packet.
Closes #584
Closes #2089
2011-06-22 14:22:08 +02:00
click da03bbbdab Core: Yet more cleanups in codestyle... 2011-06-12 02:06:07 +02:00
leak ea06dcf418 Core/ObjectMgr: Refactor guild related functions into dedicated class 2011-05-04 10:08:09 +02:00
leak 1003f30448 Add spaces after commas 2011-04-29 20:47:02 +02:00
Shauren ed48364c04 Core/Accounts: Fixed saving account tutorials 2011-04-26 11:56:21 +02:00
Shauren 8898db8b27 Core: Corrected NULL usage, it should only be used with pointers, not integers 2011-04-23 15:53:48 +02:00
click d92fb9ad65 Core: Clean up some rogue whitespace and tabs 2011-02-27 18:34:24 +01:00
Azazel bcd7e45e12 CharDB Schema/Cleanup: cleanup character_tutorial table:
* rename table to account_tutorial, because it holds account specific data;
* rename column account to accountId;
* introduce prepared statements for table.
2011-02-25 00:45:57 +06:00
Azazel 20ab3e4bda CharDB Schema/Cleanup: cleanup account_data and character_account_data tables:
* rename column account to accountId;
* introduce prepared statements for both tables.
2011-02-25 00:44:33 +06:00
Machiavelli e07e20ffca Core/Log: Implement log masks for debug log level, to allow selective debug output. Update your worldserver.conf. 2011-02-20 20:16:34 +01:00
Machiavelli eae88577da Core/WorldSession: Fix logic in WriteMoveMentInfo in regards to sending pitch coordinate to client. 2011-02-17 20:51:02 +01:00
Azazel 4dc1eaa47c Core/Misc: improve error log messages by adding more info. Specially for Aokromes. 2011-02-17 19:47:08 +06:00
leak 137b079eea Core: Generic cleanup (tab2spaces/trailing whitespace removal) 2011-01-26 01:03:35 +01:00
Shauren 820f87f365 Core/Instances: Implemented confirmation dialog for players upon entering instance which would permanently bind the player to it, players can now choose to get saved or leave the instance
Also fixes broken build
2011-01-24 11:38:59 +01:00
leak b8210f4396 SQL: Characters db storage type cleanup #1 - Note:
- MySQL numeric types can NOT be altered in value range or or storage size at all, so things like INT(32) are entirely pointless. As TC currently doesn't use the display width of numeric types, use the default width to avoid confusion. (see MySQL numeric types docs)

- Timestamps can be stored as INT(10) UNSIGNED. As the max value of this type is 4294967295 which translates into year 2106 using it as timestamp we are NOT affected by the year 2038 bug. If the timestamp needs to be negative in some cases, i.e. for displaying infinity using -1, use BIGINT(20) instead.

- Do NOT set ROW_FORMAT for InnoDB tables unless you specifically want COMPRESSED tables (which we don't for performance reasons). MySQL will chose the appropriate ROW_FORMAT by itself depending on the innodb_file_format setting of the server. (FIXED is only available for MyISAM)

- Even though VARCHAR does require less storage space than CHAR for values with variable length, the length still needs to be chosen wisely as this doesn't apply to memory consumption.
2011-01-19 02:53:44 +01:00
Machiavelli 957c69de83 Update copyright note for 2011.
Happy new year.
2011-01-01 15:01:13 +01:00
silinoron e522fbe7ce Core/WorldSession: Cleanup. 2010-12-29 20:20:09 -08:00
Machiavelli 68c6189201 Core/Vehicles:
- Set MovementFlagsExtra (2) correctly depending on vehicle 'template' flags. This makes certain vehicles such as demolishers unable to jump/strafe (as intended)
- Fix SMSG_MONSTER_MOVE_TRANSPORT stucture, prevents a client crash when entering certain vehicles, as well as *properly* broadcast position relative to the vehicle.
- Send SMSG_BREAK_TARGET to player when entering vehicle.
- Set MOVEMENTFLAG_ROOT on passenger when entering vehicle
- Cleanup in affected code
2010-12-29 05:45:38 +01:00
Machiavelli 398d71285d Core: Fix a possible crash in WorldSession::ProcessQueryCallbacks
Author: Cyberbrest
Closes issue #5262

--HG--
branch : trunk
2010-12-24 19:46:11 +01:00
Shauren 928443d899 Core: Removed more operator workarounds for ACE_Singleton (missed previously because of inconsistent naming)
--HG--
branch : trunk
2010-12-23 23:25:44 +01:00
Shauren 0f3b9019a8 Core: Get rid of dirty operator workaround for ACE_Singleton class implementation
--HG--
branch : trunk
2010-12-22 21:25:23 +01:00
Spp 382fef1958 Core: Some warning fixes
--HG--
branch : trunk
2010-12-15 10:44:06 +01:00
click 2642894342 Core: Add new system for parallelizing client packet processing. Handle WorldSession updates in Map::Update() where we are safe to proceed. Patch by Ambal.
(And clean up tabs and whitespace while rummaging around in there)
Closes issue 5084.

--HG--
branch : trunk
2010-12-13 22:37:56 +01:00
click 20ffbcfa28 Fix missing change in SendNotification() (forgot to diff it)
--HG--
branch : trunk
2010-11-24 14:00:23 +01:00
Shauren b96a206dc3 Core/Scripts: Moved OnPlayerLogout hook call before removing player, fixes crashes in scripts using this hook
--HG--
branch : trunk
2010-10-25 11:17:17 +02:00
Spp 3fc2d414b1 Core/Dungeon Finder: Use scripts to interact between groups and LFG
--HG--
branch : trunk
2010-10-25 07:29:53 +02:00
azazel c0faed2251 Core/Guilds: guild code was completely refactored and rewritten.
* OOP desing and implementation;
* all the queries are moved to prepared statements;
* guild loading is optimized;
* all the possible interaction with guild's data is done inside the guild class;
* added more hooks to GuildScript class;

WARNING: Make sure you backup your characters database before applying this change (just in case).

Known problems with guilds:
* when new member is added to the guild, MOTD is not displayed for him in guild tab of social window;
* if you add item with random property to guild bank visual representation of item below it becomes wrong (it displays wrong stack number);
* packets order differs from official: currently guild bank packet traffic is twice as more than on offy.

--HG--
branch : trunk
2010-10-17 19:54:13 +06:00
click f0c4241ea4 Remove the accidental additions of CRLF-crap from the header updates
--HG--
branch : trunk
2010-10-07 15:35:36 +02:00
click 8ea4b32fab Update copyright headers (following the same standard in all files = good)
--HG--
branch : trunk
2010-10-07 12:41:56 +02:00
Shocker 78803c9f09 Magic numbers cleanup:
- Replace many magic numbers with constants
- Use enum for vehicle flags/seat flags
- Correct structure for ItemRandomSuffixEntry

--HG--
branch : trunk
2010-09-28 08:21:51 +03:00
Machiavelli 3c6dc32030 Core/DBLayer:
- Rewrite Field class to be able to store both binary prepared statement data and data from adhoc query resultsets
- Buffer the data of prepared statements using ResultSet and Field classes and let go of mysql c api structures after PreparedResultSet constructor. Fixes a race condition and thus a possible crash/data corruption (issue pointed out to Derex, basic suggestion by raczman)
- Conform PreparedResultSet and ResultSet to the same design standards, and using Field class as data buffer class for both
* NOTE: This means the fetching methods are uniform again, using ¨Field* fields = result->Fetch();¨ and access to elements trough fields[x].
* NOTE: for access to the correct row in prepared statements, ¨Field* fields = result->Fetch();¨ must ALWAYS be called inside the do { }while(result->NextRow()) loop.
* NOTE: This means that Field::GetString() returns std::string object and Field::GetCString() returns const char* pointer.

Still experimental and all that jazz, not recommended for production servers until feedback is given.

--HG--
branch : trunk
2010-09-24 22:16:21 +02:00
Spp b8cc05f747 Core/Opcodes: Re-enable error log for received opcodes marked as not allowed
--HG--
branch : trunk
2010-09-24 15:08:52 +02:00
Spp 9b56aadde1 Core/Opcodes: Add unhandled status, by balrok
--HG--
branch : trunk
2010-09-24 14:41:07 +02:00
Shauren a509976369 Core/DBLayer: Converted player login queries into prepared statements
Core/DBLayer: Added missing implementation for SQLQueryHolder::SetPreparedQuery

--HG--
branch : trunk
2010-09-20 18:20:40 +02:00
linencloth 19a76020bc Core: more cleanup at locale handling.
Also fixes some problems mainly with non English languages.

--HG--
branch : trunk
2010-09-17 19:55:54 +02:00
Spp cc3d4cc823 Core/Scripts: Add OnPlayerLogin, OnPlayerLogout, OnPlayerCreate and OnPlayerDelete
--HG--
branch : trunk
2010-09-15 13:23:07 +02:00
click bf664b7a44 Cleanup/Core: Remove whitespace and tabs
--HG--
branch : trunk
2010-09-12 01:40:27 +02:00
Machiavelli a41e99223e Core/DBLayer:
* Rename QueryResult class to ResultSet
* Rename QueryResult_AutoPtr to QueryResult
* Declare ACE refcounted auto pointer for PreparedResultSet class

--HG--
branch : trunk
2010-09-11 21:10:54 +02:00
Spp 405f312918 Core: Fix more warnings
--HG--
branch : trunk
2010-08-30 15:25:15 +02:00
azazel e3c2bdb722 Core/Cleanup: move repeating code for locale strings retrieval into separate method. Related code cleanup.
--HG--
branch : trunk
2010-08-27 00:57:49 +06:00
Machiavelli bb5f7b6492 More async queries in stable master opcode handlers instead of blocking queries
Please report any issues that pop up.

--HG--
branch : trunk
2010-08-25 21:03:28 +02:00
Machiavelli e8a7a53bfa Fix crash added in 9c655c11b7
--HG--
branch : trunk
2010-08-25 19:12:53 +02:00
Machiavelli 4185bb3181 DBLayer:
- Implement QueryCallback_2 template for ACE_Future callbacks using 2 parameters for the callback function
- Make MSG_LIST_STABLED_PETS´s handler use async query instead of blocking query

--HG--
branch : trunk
2010-08-24 19:04:25 +02:00
Spp 572f7bbd1d Core: Remove "may be used uninitialized in this function", "unused parameter ‘xxx’" and "'xxx' defined but not used" warnings
--HG--
branch : trunk
2010-08-21 23:08:54 +02:00
Spp c3343638cb Core: Remove lots warnings:
- All "'xxx' will be initialized after 'yyy' when initialized here"
- Some "unused variable"
- Some "enumeration value 'xxx' not handled in switch"

--HG--
branch : trunk
2010-08-21 20:08:47 +02:00
Machiavelli 994186f267 DB Layer:
- Make SQL Transactions actual objects used in code. (Thanks to Derex for the idea)
* Uncommitted transactions will be automatically rolled back and cleaned up using ACE_Refcounted_Auto_Ptr, so no need to call Rollback() in the code.
* Prevents recursive transactions and makes developers aware of transactions going on.
* Gets rid of unneccesary overhead iterating over a concurrent map.
- Some cleanups in affected code, including better usage of transaction control in AH / mail related code to prevent data loss.

*** Experimental, use at own risk, recommended to backup your DBs. ***

--HG--
branch : trunk
2010-08-21 03:19:25 +02:00