lotodore
f2c3b2b723
Fixed boost asio stuff. Now working but probably some polishing required.
2009-01-25 21:56:43 +00:00
lotodore
17377f5a6b
New boost::asio based sender thread. Does not work on windows yet, because the completion routine is never called. No idea why not.
2009-01-25 20:19:09 +00:00
lotodore
29061b661c
Fixed one thread per session implementation. Kind of. Still seems to have a handle leak on Windows. However, it does not scale at all and needs to be reverted. It won't even handle 500 players with 500 games on a dual core high end machine.
2009-01-11 20:12:26 +00:00
lotodore
d72cdb6873
One sender thread per client. Requires loads of resources. Kind of hacked, because the internal dependencies are very ugly now. Requires loads of testing. A problem might be the last packet sent by the server to a specific client before closing the connection, for example an error message. It might never even reach the client, because the sender thread is terminated before. I have not yet found a good way to fix this.
2009-01-07 21:52:16 +00:00
lotodore
606158c4f0
Preparing new send engine.
2009-01-07 19:37:05 +00:00
lotodore
23c3ae3849
Enable sending of a global message box through the irc bot, to inform clients about server reboots.
2008-12-26 16:47:14 +00:00
lotodore
4f48fdbe2a
Allow the server to send a global notice to all players (for example if a server reboot is going to happen). Does not work with current client version 0.6.3.
2008-12-26 13:50:09 +00:00
lotodore
0a473245ee
Removed unneeded include.
2008-09-08 21:49:21 +00:00
lotodore
0ef69297d1
Server support for unsubscribing/resubscribing of lobby messages. Not yet used by the client.
2008-05-11 21:41:30 +00:00
lotodore
5beaa816b4
Moving third party sources to third_party folder so that they can be easily distinguished. This should help package maintainers.
2008-03-23 10:36:17 +00:00
lotodore
e107cf98fa
Network timeout system also works from within a game now.
2008-03-06 15:27:31 +00:00
lotodore
9f0d204f56
First test version with network timeout. Only activity timeout and global timeout, no game admin timeout yet. Set to test values (will disconnect rapidly).
...
Modified method for init timeout (if session cannot be established) - now using one non-modifiable timer for each session, and an additional timer which is reset whenever session data is received.
2008-03-04 23:47:45 +00:00
lotodore
7283431c8c
Limit the avatar requests by the server - clients may only upload one avatar within a certain time. This is checked by IP address, so two players within the same NAT system might have to wait for a few seconds.
2008-02-24 12:56:39 +00:00
lotodore
e0b6e16994
Added uptime stat in admin irc.
2007-11-28 23:31:34 +00:00
lotodore
49162870a1
Use one sender thread for everything, as there may occur conflicts with multiple sender threads. This is a temporary solution, the best solution would be having multiple sender threads, but sending all packets for the same target using the same thread, so that no packets are corrupted.
2007-11-22 19:11:45 +00:00
lotodore
6489f28e93
Remove sender thread for avatars, it caused loads of problems, one of these being that packets were "destroyed" because half-sent packets were made invalid. Use main sender instead.
2007-11-22 17:56:49 +00:00
lotodore
bc16e26616
Use server manager to allow SCTP and TCP at the same time.
2007-11-16 22:34:38 +00:00
lotodore
a24a93caba
Use unix linefeeds for all files. Finally. It's about time.
2007-11-16 15:24:25 +00:00
lotodore
f428fb7904
Fixed linefeeds.
2007-11-16 15:01:40 +00:00
lotodore
cdd21250de
Added support for password protected irc channels. Added server IRC mode for admin use, to allow requesting statistics and kicking players.
2007-11-16 00:58:23 +00:00
lotodore
82a1be763b
Use several sender threads with load balancing for sending the avatars. Remember last failed send operation (not yet a list, just the last) and cancel any more low prio sends to that sender.
2007-11-14 22:11:04 +00:00
lotodore
5328bf082f
Use boost::shared_ptr instead of std::auto_ptr where threads are involved, because std::auto_ptr is not thread safe.
2007-11-14 13:19:28 +00:00
lotodore
d905359251
Store server statistics data in a log file and reload it when the server is restarted.
2007-11-11 15:58:35 +00:00
lotodore
b0524a59ff
Fixed two race conditions.
2007-10-30 21:25:10 +00:00
lotodore
219a922c9e
Fixed crash in the server which was caused by not waiting long enough for the termination of threads.
2007-10-29 11:57:17 +00:00
lotodore
f821f9c0a4
No longer delay closing of sessions (not needed any more).
2007-10-28 15:21:24 +00:00
lotodore
cdea81b2ba
Fixed sender again, as it did not work when sending errors.
2007-10-28 15:06:57 +00:00
lotodore
fa7af40a49
Fixed a very nasty bug concerning the sender thread. SOCKETs were assumed to be kind of unique, but Windows tends to return the socket number of a socket which was just closed as new socket number in accept. This led to very strange behavior when the server was flooded with inits, because the sender thread still had entries for this socket number (which were not removed because they should just fail).
...
No longer use socket as key in maps, instead, use the session id. Only use the session id in the sender thread, "resolve" it to the socket only in the moment when it is needed. Outstanding requests will be detected to have an invalid session id then.
Also, as side effect, fixed an issue with two callback classes which were named the same and caused unexpected behavior.
2007-10-28 12:53:54 +00:00
lotodore
ae33299758
If a client does not initialize properly within a certain time, remove the network session.
2007-10-26 14:54:57 +00:00
lotodore
d0c34c572b
Automatically cleanup cache once a day on the dedicated server.
2007-10-25 21:20:35 +00:00
lotodore
4bc57f07d0
Add server statistics which are sent by the server to every client each time they change.
2007-10-20 22:22:11 +00:00
lotodore
4f00333599
Show and update admin player of a game even when in lobby and not in the game.
2007-10-12 14:32:25 +00:00
lotodore
5218e038d4
Don't wait endlessly for player or avatar requests to complete if the other side does not have the required data. Send notifications and react accordingly.
2007-10-11 20:42:44 +00:00
lotodore
310fadefdb
Keep lobby open in the background during internet games. Show the lobby after the game finished. Re-open the game. Start and stop irc thread together with the client thread.
2007-10-08 20:14:44 +00:00
lotodore
dc8f9e0c73
Use player id as request id for avatar requests by the server.
2007-10-08 18:49:13 +00:00
lotodore
0d0d8dc810
Synchronize on network game start, so that everyone has received all avatars and player names before the game starts. Store all computer players in a separate list on the server for name retrieval.
2007-10-07 21:23:37 +00:00
lotodore
d16312111f
Finally: User supplied avatars are transfered! They are stored on the server and clients request them if needed. Make sure the server has write access to the cache dir to make it work.
2007-10-07 18:46:40 +00:00
lotodore
639df29bdc
Server now requests unknown avatar files from client and stores them in the cache dir. Error handling is still missing. Clients not yet request avatar files from the server, this is the next step.
...
AvatarManager is now thread safe.
Default and cached avatars are handled in different lists to prevent deleting the default avatars when clearing the cache.
2007-10-07 15:52:12 +00:00
lotodore
aaf4106c20
Send notification to clients when a game in the lobby was started. Mark games as running in lobby dialog.
2007-09-29 20:20:01 +00:00
lotodore
3c88ba8bbe
Game list in Lobby is now shown and updated even after joining or creating a game. Game updates will be sent by the server at all times (even during the game).
2007-09-29 14:05:41 +00:00
lotodore
9d0edc5eee
Major redesign: The game can not be left without disconnecting from the server. This happens if a player is kicked, if he wishes to leave, or for other reasons. Error packets from the server will always cause a disconnect, however.
...
If joining a game fails, there is a proper failure packet now.
2007-09-06 19:09:05 +00:00
lotodore
d789162a2a
New version of the boost timer (addon lib).
2007-09-05 00:06:20 +00:00
lotodore
dde14654f9
Trying to add computer players in dedicated server. Not fully functional yet (names are not shown).
2007-09-02 20:59:16 +00:00
lotodore
bd53403752
Major redesign: Using game ids and player ids in gui (associated with tree view items).
...
Player list of all network games is now dynamically updated in lobby (no polling, server sends events).
2007-09-02 16:36:52 +00:00
lotodore
56b24e09eb
Major design change in network protocol: Player information is now requested by clients whenever it is needed. The server only sends player ids. The client has a cache with player information.
2007-08-26 22:41:37 +00:00
lotodore
388db7c16a
Game List is now dynamically updated.
2007-08-21 19:50:13 +00:00
lotodore
3a2f3255af
More fixes. Using player name as base for game name now. Removing games which have no players left. Check collision of all player names on connect (kind of slow, but name needs to be unique).
2007-08-21 17:27:13 +00:00
lotodore
839a4f7112
More steps towards supporting multiple games per server. Player rights still broken, so starting the game is not possible. Games are not yet terminated after all players have left.
2007-08-21 12:34:33 +00:00
lotodore
67e81d1631
More work on the server code. Still broken.
2007-08-20 20:37:54 +00:00
lotodore
9d63df9218
More work on server redesign. Network mode still broken.
2007-08-20 15:30:22 +00:00