Commit Graph
75 Commits
Author SHA1 Message Date
lotodore 35d0988f78 Removing a buffered delay when the client sends data (no longer necessary with asio). 2009-06-16 22:36:07 +00:00
lotodore 4b5d78af81 The client network code was rewritten to use boost::asio. Some optimization is still required, and some code files can now be removed. 2009-06-14 22:07:41 +00:00
lotodore 5f3369432a Rewriting sender yet again to fit the new asio design. Polling for new send data is no longer needed, this also reduces lag. 2009-06-07 08:51:43 +00:00
lotodore 8ab2fed1a2 More restructuring. Still broken. 2009-05-10 22:21:20 +00:00
lotodore ac4c2e9aef Integrating precompiled headers support (might speed up compilation). Currently disabled (in .pro files). 2009-05-07 22:36:51 +00:00
lotodore 60b5d45c53 Adopting changes from asio branch. Currently broken. 2009-05-04 21:11:29 +00:00
lotodore acd5267412 Compiler error fixes. 2009-04-05 12:37:14 +00:00
lotodore 534b6066a8 More work on server selection. Currently untested. 2009-04-05 12:31:12 +00:00
lotodore 009249e41a Adding stuff for server list (choosing a server). Might not compile (untested yet). 2009-04-05 11:19:50 +00:00
lotodore c3dc770c2e More work to let clients download avatars from an external server. 2009-03-21 11:36:10 +00:00
lotodore ebac9c9574 Fixed nasty cleanup crash on Windows. 2009-03-21 10:28:27 +00:00
lotodore ebce3ee214 Warning: Enables debug mode.
More steps towards downloading avatars from external server. This is currently BROKEN.
2009-03-21 01:39:00 +00:00
lotodore b1bad8d144 Preparing client use of external avatar servers. 2009-03-18 15:01:43 +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 80883dd409 Update number of votes on client. 2008-12-07 12:22:35 +00:00
lotodore bd55b69817 Client side vote kick changes - tab closes now. Server side fixes. 2008-12-07 11:48:01 +00:00
lotodore c57ea0985b Trying to send reason why the player leaves the game. 2008-11-25 23:19:34 +00:00
lotodore b236fa9d62 Vote kick kind of working. Only the forward case - no timeout, no error handling, no display update. 2008-11-25 22:18:17 +00:00
lotodore 1cfe551f19 More work on vote kick. Some network packets are exchanged, but still not functional. 2008-11-16 22:57:11 +00:00
lotodore 269eab4774 Fixed lobby update after leaving a game. 2008-05-16 16:46:45 +00:00
lotodore b5c2399603 Use configuration setting to decide whether to download the server list or directly connect to the server. Accept other server lists. Accept un'zlib'ed server lists. Use IPv6 address from server list if configured. 2008-05-10 15:47:48 +00:00
lotodore 4b04aedc3f Download only md5 of the server list if the list is still in the cache. 2008-04-29 22:46:27 +00:00
lotodore 7a157b682a The client now downloads a zipped server list file from pokerth.net. This is parsed and the first server entry is used for now. Error handling still missing. boost::iostreams now required. 2008-04-19 11:48:09 +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 ee00741931 More avatar related utf8 fixes. 2007-12-12 13:37:45 +00:00
lotodore c14bb9470b More utf8 related fixes (some issues remain). 2007-12-11 20:40:39 +00:00
lotodore b97c56cd26 Use alternate dns name if name resolution fails for internet server (6dns.org seems to be unreliable, but is still the only one to provide both ipv4 and ipv6 name resolution for free). 2007-11-30 21:28: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 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 864af81193 Don't request own avatar from the server. Only request avatars of other players after joining a game. 2007-11-01 18:36:03 +00:00
lotodore 3ea61381ef Use client game id when kicking players during game. 2007-10-28 19:38:49 +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 8f1e5132d6 Added kick function with player name. 2007-10-27 18:51:53 +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 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 076d44b0ae Pass on admin state if the admin leaves the network game, so that someone else can start the game. 2007-10-03 13:36:47 +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 e8eddd3b1b Show avatars in network games. User defined avatars are not transfered yet, but this is already prepared for integration. 2007-09-09 00:00:19 +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 9f6bf5206e The checkbox "fill up with computer players" is now working (protocol has been changed to implement this). Lobby dialog is now also used after joining the game. Leaving game not possible yet. 2007-09-05 19:14:34 +00:00
lotodore 0900d3844b Fixed a bunch of compiler warnings (mingw compiler). 2007-09-04 23:37:32 +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 fa8d7b14ec Information about the game is now shown in lobby, when selecting a game.
Some GUI modifications, GUI update is working properly now if the dialog is shown the second time (after clearing items).
List of players for the game is still missing. With the new on-demand model for player id/player name, this is kind of hard to implement.
2007-08-27 09:57:51 +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 87941c632a Fixed local network game. Now using new config options. Client sends packets deferred to allow initialization. 2007-08-26 12:15:10 +00:00
lotodore 388db7c16a Game List is now dynamically updated. 2007-08-21 19:50: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