1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-22 22:13:35 +02:00
Commit Graph

20 Commits

Author SHA1 Message Date
Ivan Savenko
35954dc41b Simple workaround to fix vcmiserver shutdown procedure
At the moment, vcmilobby *requires* async writes in order to handle
multiple connections with different speeds and at optimal performance,
without hanging if one player is too slow and can't eat all data server
sent to him at once.

However server (and potentially - client) can not handle this mode and
may shutdown either socket or entire asio service too early, before all
writes are performed, leading to weird freeze on ending scenario where
client would not receive notifications about end of game.
2024-05-14 19:40:20 +00:00
Ivan Savenko
6d08ec6323 More robust handling of connection errors
Fixes potentially hanging by heartbeat sockets
2024-05-12 19:13:17 +00:00
Ivan Savenko
0403626c93 Fix excessive calls of steady_timer::async_wait 2024-05-11 16:10:07 +00:00
Ivan Savenko
67604e1e01 Reapply "Simple implementation of heartbeat package"
This reverts commit ede92c1a9c.
2024-05-11 16:10:08 +00:00
Ivan Savenko
4c3aac8f19 Use async_write to prevent locks if receiver is too slow 2024-05-11 16:09:03 +00:00
Ivan Savenko
66e2e13ba1 Add few more safety checks to network connection logic 2024-05-07 08:34:47 +00:00
Ivan Savenko
ede92c1a9c Revert "Simple implementation of heartbeat package"
This reverts commit 5f344e410a.
2024-05-07 08:31:08 +00:00
Ivan Savenko
5f344e410a Simple implementation of heartbeat package 2024-04-30 22:44:31 +03:00
Ivan Savenko
6901945b6e Fix possible thread race on sending packet from two threads 2024-02-25 20:05:28 +02:00
Ivan Savenko
779625415f Guard against concurrent writes on same asio::socket instance 2024-02-19 13:47:06 +02:00
Ivan Savenko
7dee24edae Cleanup 2024-02-03 23:30:16 +02:00
Ivan Savenko
2c2bec791c Fixes and cleanup of game client network shutdown and restart 2024-02-03 19:27:04 +02:00
Ivan Savenko
f97ffd8e9a Better handling of disconnects, code cleanup 2024-02-02 15:32:06 +02:00
Ivan Savenko
29c0989849 Use std::byte to manage network data 2024-02-02 02:02:09 +02:00
Ivan Savenko
80e960bc8e Finalized new TCP networking API 2024-01-19 23:52:28 +02:00
Ivan Savenko
22f0ca67c6 Fix connection to game lobby & map load 2024-01-19 23:49:59 +02:00
Ivan Savenko
0a1153e1c6 Switch client-server communication to new API 2024-01-19 23:49:59 +02:00
Ivan Savenko
de5227142b Implemented message receiving / broadcasting 2024-01-19 23:49:59 +02:00
Ivan Savenko
dff9cf39c0 Implemented connection handling 2024-01-19 23:49:59 +02:00
Ivan Savenko
c2c43602ea Initial version of global lobby server available in client 2024-01-19 23:49:59 +02:00