Commit Graph

55 Commits

Author SHA1 Message Date
Shauren
97a79af470 Core/Networking: Rewrite networking threading model
Each network thread has its own io_service - this means that all operations on a given socket except queueing packets run from a single thread, removing the need for locking
Sending packets now writes to a lockfree intermediate queue directly, encryption is applied in network thread if it was required at the time of sending the packet
2016-02-19 19:23:04 +01:00
Vincent-Michael
478cc756eb Update copyright note for 2016
Happy new year (Again new year with idiots ...)
2016-01-01 00:34:25 +01:00
Shauren
590c6e399d Core/Networking: Fixed possible crashes happening if async query retrieving account data takes too long
Closes #14944
2015-08-09 15:30:06 +02:00
Shauren
f6bc87fe5d Core/Threading: Fixed possible data races after making auth queries async by moving their processing to boost::asio::io_service::run threads 2015-06-21 02:13:08 +02:00
Shauren
e4abbc0926 Core/Networking: Fixed possible msvc debug assertions in vector 2015-05-02 00:02:57 +02:00
Shauren
59e9bcf0bf Core/Socket: Removed unused synchronous read method 2015-04-24 00:10:04 +02:00
Shauren
5659db6f03 Core/Bnet: Fixed crash on shutdown happening when there were still players connected 2015-04-11 01:55:45 +02:00
Shauren
76cbf05a2e Misc: Fixed license header formatting 2015-04-04 13:11:32 +02:00
Shauren
bed88e0dd4 Core/Networking: Fixed unsafe access to _worldSession member in WorldSocket 2015-03-28 21:45:27 +01:00
Shauren
5ac0b7844c Core/PacketIO: Implemented CMSG_ENABLE_NAGLE 2015-03-28 20:51:01 +01:00
click
be078fd8a9 Core: WARN instead of INFO - this is actually something we'd want to be informed of...
(cherry picked from commit d5718f3372)
2015-03-18 00:33:20 +00:00
Vincent-Michael
ab90f74486 Update copyright note for 2015
Happy new year
2015-01-01 00:28:09 +01:00
jackpoz
3cdc66bec6 Shared/Networking: Fix buffer overflow in Socket handling
Fix a buffer overflow caused by Boost trying to store too much data in a buffer too small.

(cherry picked from commit cdf6c88462)
2014-12-28 15:56:55 +00:00
Intel
518c744336 Core/Packets: Add connection indexes for server packets
Fixed IOCP define for linux
Minor code style change in inventory loading
2014-12-07 15:14:43 +02:00
Nayd
3eb120ab50 Core/Networking: Catch possible boost exception in StartNetwork
Closes #13557
2014-11-16 20:08:53 +00:00
Shauren
bacc90b6ba Core/NetworkIO: Added second connection to WorldSession, handle AuthContinuedSession and enabled ConnectTo and ResumeComms 2014-11-09 00:37:33 +01:00
Shauren
e57a63939e Core/NetworkIO: Fixed queued packets not being properly sent causing players to be stuck during loading
Closes #13120
2014-09-17 23:06:34 +02:00
Vincent-Michael
b0270d547f Core: Remove whitespace 2014-09-14 21:42:39 +02:00
jackpoz
16f0f05d44 Core/Misc: Fix issues reported by static analysis 2014-09-14 16:34:15 +02:00
Vincent-Michael
11bb300c69 Script/CoS: Fix quest credit for mal ganis (but @Aokromes like more HACKS) 2014-09-13 19:14:32 +02:00
Shauren
8f5ae1fb90 Core/Misc: Added const modifier to MessageBuffer::Write parameter 2014-09-12 20:20:35 +02:00
Vincent-Michael
53ee1eff0b Core: Fix warning 2014-09-12 19:51:29 +02:00
Shauren
6dff6b7425 Core/NetworkIO: Set non blocking mode on sockets properly 2014-09-12 19:34:26 +02:00
w1sht0l1v3
c4ce889344 Core/Misc: Kill few more warnings. 2014-09-12 00:16:04 +03:00
w1sht0l1v3
0392bf9bdf Core/Misc: Get rid of some warnings. 2014-09-11 23:08:02 +03:00
Duarte Duarte
2697b18cf2 Core/Net: Fix GCC build 2014-09-09 22:32:27 +01:00
Shauren
0c40ca8574 Build fix 2014-09-09 21:32:21 +02:00
Shauren
e0ce4528c5 Core/NetworkIO: Use reactor style sending on linux to reduce locking overhead 2014-09-09 19:19:25 +02:00
Shauren
abfd29ab61 Core/WorldSession: Added research notes about CMSG_AUTH_SESSION values and reordered checks during login to always initialize encryption first to make sure the client can read failure packet 2014-08-21 18:18:13 +02:00
Shauren
aab4ab166d Core/Socket: Added helpers to retrieve the size of currently ready data 2014-08-15 18:43:17 +02:00
Shauren
c741d2682a Core/NetworkIO: Prevent queueing more async operations when socket is already closed 2014-08-11 20:43:07 +02:00
leak
1a27ce1267 Core/NetworkIO: Restore networking related scripting hooks
Closes #12607
2014-08-11 17:40:43 +02:00
Vincent-Michael
9aea8046ce Core: Fix non pch build 2014-08-10 21:46:04 +02:00
Shauren
f5bf13295c Core/NetworkIO: Prevent double closing the same socket 2014-08-10 21:32:57 +02:00
Shauren
df11916ad5 Core/NetworkIO: Allow receiving packets bigger than buffer size and properly handle situations where not entire packet was read in one go
Core/Authserver: Restored authenticator functionality
2014-08-10 11:00:27 +02:00
Shauren
936db9d50d Core/NetworkIO: Handle exceptions thrown from socket constructor when retrieving remote address 2014-08-08 14:01:09 +02:00
Duarte Duarte
ca368a781b Core/Socket: Fix typo in constructor
Using moved objects is generally a bad idea

Thanks @Daejiv

Closes #12800
2014-08-07 14:25:43 +01:00
Vincent-Michael
8c73b2dbae Core: Fix non pch build 2014-08-07 07:00:17 +02:00
leak
48b94c3beb Prevent reading address information from potentially closed socket 2014-08-06 23:16:40 +02:00
Shauren
833195062c Update Socket.h
Added missing typename keyword
2014-07-29 02:00:23 +02:00
Shauren
6418789489 Core/Socket: Fixed expected template evaluated type for AsyncWrite if PacketType is a pointer (Bla* const& is not what we want) 2014-07-29 01:52:28 +02:00
DDuarte
100fd82b2b Core/Networking: Attempt to fix some exceptions
Call the non-throwing versions of socket.remote_endpoint in GetRemoteIpAddress
and GetRemotePort. Sh*t will still be broken tho
2014-07-28 02:58:03 +01:00
leak
e502e01f5d Fixed a rare crash case when authserver socket was forcefully closed during read
Closes #12634
2014-07-27 18:36:03 +02:00
Shauren
e77c0b6ed4 Core/Network: Allow storing any packet types in Socket write queue to reduce the amount of copying going on 2014-07-27 14:59:46 +02:00
Shauren
26715795b4 Fixed gcc build 2014-07-27 01:26:03 +02:00
Shauren
c1b1ba44ba Core/Network: Refactored socket code, moved common operations to base Socket class 2014-07-26 23:26:01 +02:00
Subv
f14399d788 More warnings fixes 2014-07-13 16:49:56 -05:00
Subv
f6962f9c68 Fixed some compiler warnings 2014-07-13 16:40:31 -05:00
Shauren
264363e76c Core/Misc: Fixed another compiler segmentation fault when compiling AsyncAcceptor with gcc 4.7.2 2014-07-11 22:24:22 +02:00
Shauren
eaee0f5dd0 Core/Misc: Fixed compiler segmentation fault when compiling AsyncAcceptor with gcc 4.7.2 2014-07-11 22:07:48 +02:00