187 Commits

Author SHA1 Message Date
Benau
2199679ac2 Add support for joining server with ongoing game 2018-08-31 16:27:32 +08:00
Benau
8fc2bdcc3f Show game started info in server screen with icon 2018-08-28 14:43:48 +08:00
Benau
54bac1bf83 Fix compiler warnings 2018-08-28 01:54:25 +08:00
Benau
732fd7a4c9 Don't show timer warning if voting timeout is not default 2018-08-27 13:49:52 +08:00
Benau
0f39add432 Convert time-related code in network to 64bit to avoid overflow 2018-08-27 13:49:11 +08:00
Benau
e5925a53b7 Use the network timer synchronizer to start game 2018-08-27 09:16:35 +08:00
Benau
35b167a824 Add network timer synchronizer 2018-08-23 16:11:05 +08:00
Benau
4d2e79da4c Implement auto-kick high ping player (default off) 2018-08-03 19:50:49 +08:00
Benau
9d78173ec6 Use 32bit for server version 2018-08-03 14:01:36 +08:00
Benau
7ebd1fabd9 Add exception handling to prevent player hacking network string 2018-07-19 14:23:35 +08:00
Benau
d6672b64c5 Don't use 0 host id for starting 2018-07-05 01:37:50 +08:00
Benau
e1dfe2e7e0 Show ping of remote players in lobby 2018-07-04 00:54:40 +08:00
Benau
a44ce60991 Send our own reliable packet for a more accurate ping 2018-07-03 14:20:35 +08:00
Benau
d68111af51 Pass timeout to enet other than unconditional sleep 2018-06-22 13:27:37 +08:00
Benau
d89c65b0c9 Remove token in network string 2018-06-04 13:25:10 +08:00
Benau
b43a5e4d18 Add AES encryption and validation for wan player 2018-06-02 12:28:29 +08:00
Benau
056e596d5a Fix debug build and clean up 2018-05-22 02:06:16 +08:00
Benau
1a975f9ef4 Offer a way to know accurate ping to server within 3 seconds 2018-05-22 01:31:08 +08:00
hiker
59b796a7f5 Since broadcasting to 255.255.255.255 does not work in all cases,
add code to create a set of potential broadcast addresses and
use them all. Duplicated will be filtered out (since likely a server
will replace more than all).
2018-04-23 23:30:48 +10:00
Benau
0ecc6e34b9 Add deve request for auto-server port detection 2018-04-20 12:19:58 +08:00
Benau
266898ca28 Display server port in log for connect-now GUI later 2018-04-20 12:19:58 +08:00
Benau
852c78729f Adjust connect-now for new lobby 2018-03-31 16:14:22 +08:00
Benau
47a86cc36f Add initial support for GP and soccer info in lobby 2018-03-31 01:19:23 +08:00
Benau
70def13ca2 Use a more sophiscated server-client token validation 2018-03-27 01:02:31 +08:00
Benau
42e1873458 Fix possible null pointer dereference 2018-03-26 00:32:26 +08:00
Benau
076fb3273f Add 1500ms timeout for direct connection to wan server
This way player can instantly connect to firewall-less server
without waiting for polling in stk addons server
2018-03-24 00:53:42 +08:00
Benau
3ee3d8d5bd Randomly use stun servers of the low ping from top-half of the list 2018-03-23 18:51:26 +08:00
Benau
e63124ea3e Rename stun list to avoid conflicts with old config 2018-03-21 10:48:37 +08:00
Benau
d436446de2 Add no-kart-selection network splitscreen 2018-03-20 02:54:10 +08:00
Benau
1b8d4c80dc Initial work to port network profile to use weak_ptr 2018-03-14 15:48:02 +08:00
Benau
c73536263f Add password protected and version info to server 2018-03-13 14:39:20 +08:00
Benau
b72cf4f406 Don't assert peer size for client as the listening thread is delayed-start 2018-03-13 01:03:02 +08:00
Benau
3bbec8aa27 Initial work on lobby redesign 2018-03-12 00:18:53 +08:00
Benau
4dea283965 Only run enet command in listening thread
And use sleep instead of timeout for new code
2018-03-10 14:56:32 +08:00
Benau
c50cdd9d68 Only start listening after trying connect to a server 2018-03-10 13:20:18 +08:00
Benau
98e3d82921 Add kicking players and properly recieve disconnect events 2018-03-10 12:34:33 +08:00
Benau
5600d01b2c Use shared_ptr of STKPeer if needed 2018-03-09 23:54:13 +08:00
Benau
e439e68b60 Move protocol start after creation of STKHost 2018-03-09 23:01:20 +08:00
Benau
5756fd5f48 Use a mutex to make only 1 enet_peer_send happening
In reality we need mutex to protect enet_host_service, but it leads
to seriously increased locked time
2018-03-09 23:00:47 +08:00
Benau
dd2e32a953 Implement a thread-safe list of STKPeer
Block re-connect from the same ip and port and clean up add or
remove of peers
2018-03-09 18:33:19 +08:00
Benau
269c9318e5 Send a broadcast in case of lan connection for wan server 2018-03-07 00:51:59 +08:00
Benau
177c7b147c Fix connect to wan server in lan network 2018-03-06 16:18:57 +08:00
Benau
eec166c90d Always clean up server id file in case client failed to connect 2018-03-05 13:55:35 +08:00
Benau
2b56a97b08 Clean up Server, ServersManager and quick play
For now we choose the server with the least player for quick play
2018-03-05 01:54:44 +08:00
Benau
4e2863294d Use stun servers that return XOR mapped address 2018-03-02 22:38:04 +08:00
Benau
efa294d4f4 Clean up lan and wan server code 2018-03-02 15:21:27 +08:00
Benau
cd5cb5ef6d Use STKHost to determine graphics-client-server 2018-02-27 14:10:44 +08:00
Benau
0e2d5ab460 Allow server and client together in graphics 2018-02-27 02:40:50 +08:00
Benau
2a117d8e44 Don't lock in async update in protocol manager
It allows GUI interacts with protocol more actively

Also don't handle lan connection request if we are not waiting for
players
2018-02-25 02:07:24 +08:00
Benau
b26b784b6a Various improvements to WAN and LAN connection 2018-02-24 15:48:30 +08:00