Commit Graph

525 Commits

Author SHA1 Message Date
rubidium 536c581923 (svn r22401) -Codechange: replace some defines in the udp code so doxygen can create better documentation 2011-05-01 12:18:34 +00:00
rubidium 2e572b98de (svn r22400) -Codechange: replace some defines in the tcp/game code so doxygen can create better documentation 2011-05-01 11:30:03 +00:00
rubidium d4737e0724 (svn r22399) -Codechange: replace some defines in the tcp/content code so doxygen can create better documentation 2011-05-01 11:13:11 +00:00
rubidium b2efd73773 (svn r22398) -Codechange: remove some defines from the tcp/admin code, so doxygen can create better documentation 2011-05-01 11:01:57 +00:00
rubidium ce91f6b45e (svn r22370) -Codechange/fix: keep better accounting of the order in which clients joined:
* Clients can't be starved from joining the game
 * Clients will see the amount of clients actually waiting in front of them, instead of the amount of waiting clients in total
2011-04-22 16:07:47 +00:00
rubidium adfd648031 (svn r22068) -Codechange/Fix: return "connection lost" instead of "okay" when SendPackets closed the connection 2011-02-12 21:09:34 +00:00
rubidium 6ff844e7c4 (svn r21887) -Fix-ish: some headers weren't including the headers they depend on 2011-01-22 10:10:03 +00:00
rubidium eb299736c1 (svn r21886) -Codechange: move documentation towards the code to make it more likely to be updated [n]. 2011-01-22 09:53:15 +00:00
smatz 656caf16db (svn r21875) -Codechange: indentation of some comments was wrong 2011-01-21 01:38:30 +00:00
rubidium 6546561360 (svn r21668) -Feature: command logging using the admin interface (dihedral) 2010-12-30 18:14:37 +00:00
alberth 7303f7d199 (svn r21595) -Codechange: Some header files had their name changed, update the ifndef/define/endif lines. 2010-12-22 11:46:41 +00:00
alberth f65a9a5515 (svn r21593) -Codechange: endif comment correcttions. 2010-12-22 10:50:32 +00:00
rubidium 0c23b0b3a4 (svn r21429) -Fix [FS#3771]: the server didn't check for the paused state when allowing to execute commands 2010-12-07 21:12:23 +00:00
rubidium 54f3e04590 (svn r21418) -Fix: core.h needs config.h 2010-12-06 11:53:05 +00:00
rubidium cf61c2f11f (svn r21412) -Codechange: limit company name by amount of characters, not bytes 2010-12-05 22:24:50 +00:00
rubidium 9139a6c858 (svn r21405) -Codechange: prepare sending of company information in the UDP packet for longer company names (in bytes), by truncating the names if needed 2010-12-05 22:21:13 +00:00
rubidium 216e48cd07 (svn r21399) -Change/Feature/Fix [FS#4284]: perform the compression of savegames to send to the client asynchroniously. This will reduce the lag of the other clients to the time it takes to make the memory dump and it will speed up downloading the map as the download starts earlier (possibly with a slightly lower bandwidth due to slow compression). This should also fix the lag message people get when the savegame compression takes more than a few seconds. 2010-12-05 14:48:39 +00:00
rubidium 97434f0e06 (svn r21392) -Change: prepare the network protocol for getting the file size later in the download process 2010-12-05 14:34:19 +00:00
rubidium fd752ca2b0 (svn r21363) -Add: support for limiting the amount of (accepted) incoming data 2010-11-30 20:01:26 +00:00
rubidium 31c8ab0ed8 (svn r21361) -Change: make sure the client is listening, or rather receiving, our frames 2010-11-30 14:18:20 +00:00
rubidium b6c2216749 (svn r21358) -Codechange: make some network function names conform to coding style 2010-11-30 13:38:46 +00:00
rubidium 9c83a8975f (svn r21357) -Codechange: make it possible to resize the packet's buffer 2010-11-30 13:22:29 +00:00
rubidium 374fc308de (svn r21322) -Fix [FS#4268] (r20924): packets were leaked 2010-11-25 16:00:04 +00:00
smatz 3302a520f4 (svn r21302) -Fix (r18994): do not add HTTP connection to list of connections when it fails in the beginning 2010-11-23 22:16:11 +00:00
smatz 752aab7e11 (svn r21285) -Codechange: prevent ICC warning 2010-11-21 16:32:53 +00:00
rubidium 6d09f4a3cb (svn r21254) -Change: show a different "lag" message when a client is lagging because of connection trouble or lagging because the client is just slow 2010-11-19 12:33:19 +00:00
rubidium 673b3711b4 (svn r21182) -Fix: possible just-freed memory reads 2010-11-14 12:05:24 +00:00
rubidium d970eac2f2 (svn r21071) -Fix: ofcourse the svn properties weren't set properly either :( 2010-11-01 14:26:57 +00:00
rubidium dcc4d7a747 (svn r21070) -Fix: file not being picked up by doxygen 2010-11-01 14:18:22 +00:00
rubidium f24c91c487 (svn r21030) -Codechange: move ClientStatus into the network server socket class 2010-10-24 20:07:32 +00:00
rubidium 2cd67a51ac (svn r21029) -Codechange: split the map downloading packet + 3-state enum into 3 separate packets 2010-10-24 20:03:33 +00:00
rubidium 3317f1c01e (svn r21025) -Codechange: document PacketGameType's enums and reshuffle them slightly to make the whole more readable and easier to understand 2010-10-24 15:22:59 +00:00
rubidium d71f590ed6 (svn r20993) -Codechange: some shuffling of game protocol packet description so they're documented in the "same" place as UDP, content and admin packets (dihedral) 2010-10-18 20:41:53 +00:00
rubidium a5d414a734 (svn r20975) -Add: logging of console output for remote admins (dihedral) 2010-10-17 17:43:01 +00:00
rubidium ad12a91cda (svn r20974) -Add: remote console (rcon) for remote admins (dihedral) 2010-10-17 17:41:52 +00:00
rubidium d9602f4ef9 (svn r20973) -Add: chat sending and receiving support for remote admins (dihedral) 2010-10-17 17:40:18 +00:00
rubidium 459514afe4 (svn r20972) -Add: company statistics updates at intervals to remote admins (dihedral) 2010-10-17 17:38:41 +00:00
rubidium ca5d9f7002 (svn r20971) -Add: company economy updates at intervals to remote admins (dihedral) 2010-10-17 17:38:16 +00:00
rubidium ae20cb4f3d (svn r20970) -Add: company change notification to remote admins (dihedral) 2010-10-17 17:37:45 +00:00
rubidium fe44944f32 (svn r20969) -Add: client info change notification to remote admins (dihedral) 2010-10-17 17:37:26 +00:00
rubidium 901c4a56bd (svn r20968) -Add: date notification of remote admins (dihedral) 2010-10-17 17:36:59 +00:00
rubidium b4ce7fad7f (svn r20967) -Add: infrastructure to send information to remote admins at specific intervals (dihedral) 2010-10-17 17:36:23 +00:00
rubidium 33ed4ddbfb (svn r20963) -Add: stubs for a remote administration connection 2010-10-17 17:31:03 +00:00
frosch 98250ad8da (svn r20951) -Codechange: Add SmallMap::Contains() and use it. 2010-10-16 20:34:43 +00:00
rubidium 5ed77b4919 (svn r20939) -Fix: some MSVC warnings 2010-10-15 22:08:57 +00:00
rubidium 234bee0858 (svn r20938) -Codechange: make the code for listening on a socket (more) reusable 2010-10-15 21:56:06 +00:00
rubidium c9cbab14ea (svn r20937) -Codechange: move some variables from client/server to server only 2010-10-15 20:29:59 +00:00
rubidium 9858d699a3 (svn r20935) -Codechange: only let the server side use a pool of connected sockets 2010-10-15 19:58:56 +00:00
rubidium f555e6d72e (svn r20933) -Codechange: move some more client related methods and such to network_client.cpp 2010-10-15 19:33:08 +00:00
rubidium 7ba07d9573 (svn r20929) -Codechange: make NetworkCloseClient a class method 2010-10-15 18:42:52 +00:00
rubidium 0ca7e4e82e (svn r20924) -Codechange: make the game connection packet handling look more like UDP/content packet handling 2010-10-15 13:47:37 +00:00
rubidium 8eb07d097e (svn r20923) -Codechange: prepare creating sub-classes of NetworkClientSocket for server and client side 2010-10-15 13:22:00 +00:00
rubidium 30f2afac9b (svn r20632) -Cleanup: remove "a few" unneeded includes, and add them to some headers 2010-08-26 22:01:16 +00:00
rubidium a4c6d07edc (svn r20553) -Feature: allow rate limiting of incoming commands 2010-08-19 08:59:36 +00:00
rubidium b594990071 (svn r20549) -Codechange: centralise the handling of the incoming commands (from clients and the server) 2010-08-18 22:40:17 +00:00
rubidium e8e22c99fd (svn r20548) -Codechange: rename some variables giving them slightly more meaningful names 2010-08-18 21:30:38 +00:00
rubidium 926594b599 (svn r20547) -Change: the way order backups are performed. Now restoring an order doesn't require up to 765 commands. 2010-08-18 20:48:38 +00:00
rubidium 1c3d42598e (svn r20510) -Codechange: unify packet queue handling and make insertion O(1) instead of O(n) 2010-08-15 23:44:45 +00:00
alberth 35fec79700 (svn r20499) -Doc: Spelling fixes, and one doxygen comment addition. 2010-08-15 14:06:43 +00:00
terkhen 80c43f52e8 (svn r20289) -Codechange: Unify fall through coding style. 2010-08-01 20:52:11 +00:00
frosch 4bd32799f1 (svn r20286) -Codechange: Unify end of doxygen comments. 2010-08-01 19:44:49 +00:00
frosch ed4f806f1d (svn r20283) -Codechange: Unify start of doygen comments. 2010-08-01 19:22:34 +00:00
alberth a825b4fa5f (svn r20266) -Doc: Mostly typo fixes, a few doxygen-related improvements. 2010-07-31 21:02:56 +00:00
terkhen 88ca183191 (svn r20239) -Doc: Give a common name to all fall throughs (FALL THROUGH). 2010-07-29 14:26:28 +00:00
frosch 4ce5c6d93d (svn r20089) -Fix [FS#3932]: Access of already freed memory, esp. due to hidden destructor call from Swap(). 2010-07-08 18:38:38 +00:00
michi_cc 22357624ff (svn r20030) -Fix: MSVC 2010 defines more POSIX error constants that we define as well. 2010-06-28 18:14:00 +00:00
rubidium 2555522eab (svn r19809) -Codechange: make some unnamed network related enums/defines static const variables 2010-05-13 09:04:41 +00:00
rubidium a8fa3dd3ce (svn r19781) -Fix [FS#3809]: compilation on NetBSD failed (Krille) 2010-05-10 17:11:24 +00:00
smatz f48f4c8293 (svn r19693) -Codechange: split STATUS_INACTIVE to two states 2010-04-22 17:26:57 +00:00
rubidium df4d8b3bc9 (svn r19678) -Fix (r19607): client status was shown incorrect in the console 2010-04-19 19:50:56 +00:00
smatz 0ef33548c2 (svn r19614) -Codechange: "it's" => "its" where appropriate 2010-04-12 14:12:47 +00:00
smatz 7f3844d3aa (svn r19610) -Codechange: rename STATUS_AUTH to STATUS_AUTHORIZED 2010-04-11 17:32:14 +00:00
smatz 11d6e21c3a (svn r19607) -Codechange: use different packet types instead of packet subtypes 2010-04-11 17:17:12 +00:00
smatz 837913aa5a (svn r19508) -Codechange: remove semicolon after DEFINE_UNAVAILABLE_CONTENT_RECEIVE_COMMAND and DEFINE_UNAVAILABLE_UDP_RECEIVE_COMMAND 2010-03-23 22:36:02 +00:00
rubidium 6b35de215c (svn r19385) -Fix [FS#3684]: [IPv6] Netmask calculations were wrong if cidr >= 32. 2010-03-11 17:57:14 +00:00
yexo 7ff55502f0 (svn r19256) -Codechange: use a constructor/destructor for GRFConfig to make sure all members are properly initialized 2010-02-25 20:06:11 +00:00
yexo a9c8dbc0a0 (svn r19255) -Codechange: encapsulate GRFIdentifier in GRFConfig instead of subclassing it 2010-02-25 20:05:31 +00:00
rubidium 7a73a7490d (svn r19090) -Codechange: some comment coding style fixes 2010-02-10 21:06:05 +00:00
rubidium ab35d95b5a (svn r19072) -Fix [FS#3599]: possible read/write after free when the client triggered the server to close the connection 2010-02-09 23:49:19 +00:00
rubidium f47f3a4157 (svn r19054) -Fix [FS#3598]: when banning yourself via rcon do not send the 'command response' to the client as the connection has already been terminated 2010-02-07 18:28:09 +00:00
rubidium 228da0ccd3 (svn r19001) -Fix: some GCC compile warnings 2010-02-04 13:35:20 +00:00
rubidium d818c7c7b1 (svn r18996) -Fix (r18993, r18994): MSVC 64 bits had somethings to complain about 2010-02-03 21:45:48 +00:00
rubidium 2db44fc18e (svn r18994) -Change: content mirroring support (based on work by TrueBrain). 2010-02-03 18:42:23 +00:00
rubidium f608ad7baf (svn r18875) -Codechange: remove some unneeded bits from the network protocol and improve the naming of some variables 2010-01-21 11:17:40 +00:00
rubidium 15adbad2f4 (svn r18834) -Fix [FS#3538]: compilation failed on OpenBSD (matze) 2010-01-16 22:01:33 +00:00
rubidium 82fc28f77f (svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header 2010-01-15 16:41:15 +00:00
rubidium f89d6bea0e (svn r18801) -Fix: in some cases error messages weren't properly sent to the client before closing the connection. As a result the client would say 'connection lost' when the cause was something completely different. 2010-01-14 21:48:42 +00:00
rubidium 83c8c562bb (svn r18800) -Fix: in some cases with invalid packets one can crash recent trunk and 1.0.0 betas; 0.7.5 and before can't be crashed though. 2010-01-14 21:47:31 +00:00
rubidium a8d6d18b22 (svn r18608) -Change: add the concept of music sets 2009-12-22 21:40:29 +00:00
rubidium b00a5f1069 (svn r18330) -Cleanup: remove some unneeded includes 2009-11-28 20:35:25 +00:00
rubidium d79439fb3c (svn r17963) -Codechange: some documentation style 2009-11-03 17:30:08 +00:00
smatz eb72a0095f (svn r17746) -Codechange: 'operator new' doesn't return NULL, NetworkSend_Init() is useless 2009-10-09 11:03:00 +00:00
rubidium df75db67eb (svn r17742) -Codechange: remove unused variable from Recv_Packet 2009-10-07 20:58:14 +00:00
rubidium 5ff6053326 (svn r17699) -Codechange: move #ifdef ENABLE_NETWORK till after the 'generic' includes so compilation without network support doesn't get broken as easily by changes in header files 2009-10-04 20:00:56 +00:00
rubidium d6cded5380 (svn r17693) -Cleanup: remove some unneeded includes 2009-10-04 17:16:41 +00:00
smatz 32cbe57178 (svn r17692) -Codechange: minor coding style fixes 2009-10-04 17:10:57 +00:00
rubidium 01ab1c6001 (svn r17606) -Add: initial support for Haiku; a dedicated server with zlib and libpng compiles and links (for me). Something's fishy with the network so it doesn't actually work (yet) 2009-09-21 18:36:33 +00:00
glx 8a367f1ff4 (svn r17350) -Fix (r17336): broken compilation with mingw 2009-09-01 14:20:35 +00:00
rubidium 07d2af338e (svn r17339) -Codechange: move thread related files to their own directory (like done for video, music, sound, etc) 2009-09-01 10:07:22 +00:00
rubidium 7fbc33dae1 (svn r17248) -Fix: add GPL license notice where appropriate 2009-08-21 20:21:05 +00:00
smatz 2d3ddab7ca (svn r17169) -Codechange: apply coding style to some for statements 2009-08-14 17:14:04 +00:00
smatz c5533ae470 (svn r17168) -Codechange: apply coding style to if and while statements 2009-08-14 17:11:59 +00:00
rubidium 9ee2a66c86 (svn r17139) -Change: add the concept of sound sets 2009-08-09 19:50:44 +00:00
rubidium 1fe3ad3288 (svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives 2009-08-05 17:59:21 +00:00
rubidium ae71df349e (svn r17015) -Fix [FS#3075]: infinite recursion in content dependency checking 2009-07-31 23:54:43 +00:00
rubidium 9b156c1bd4 (svn r16601) -Fix [FS#2880]: try 2... hopefully better this time 2009-06-19 20:26:18 +00:00
rubidium 4cd94e17a1 (svn r16574) -Codechange: reorder stuff in NetworkGameInfo so compilers waste less bytes aligning stuff and fix the comment of the structs. 2009-06-13 22:48:41 +00:00
alberth bab70a823d (svn r16491) -Codechange: Added parentheses around bitwise operators for code style. 2009-06-01 11:43:36 +00:00
smatz 56a7b70591 (svn r16380) -Codechange: rename pool.hpp to pool_type.hpp 2009-05-22 15:39:22 +00:00
smatz 62a7948af0 (svn r16378) -Codechange: replace OldPool with simpler Pool. Compilation time, binary size and run time (with asserts disabled) should be improved 2009-05-22 15:13:50 +00:00
smatz 04723b240e (svn r16377) -Codechange: unify FOR_ALL_* macros, use separate index variable instead of var->index 2009-05-22 14:23:36 +00:00
smatz 871107f529 (svn r16327) -Codechange: replace IsValidPoolItemID(index) by PoolItem::IsValidID(index) 2009-05-17 01:00:56 +00:00
smatz ed1e54bd84 (svn r16326) -Codechange: replace GetPoolItemPoolSize() by PoolItem::GetPoolSize() 2009-05-16 23:44:36 +00:00
smatz 6221d74644 (svn r16325) -Codechange: replace GetPoolItem(index) by PoolItem::Get(index) 2009-05-16 23:34:14 +00:00
smatz d4971a22d0 (svn r16265) -Fix (r16238): wrong format string for debug output 2009-05-10 13:23:23 +00:00
rubidium 951b9e7615 (svn r16238) -Change: improve/clarify some network related debug "error" messages by adding more information to them. Also give some clues on how to fix certain issues (like failing advertising). 2009-05-06 09:52:52 +00:00
yexo c8ce3f7ef0 (svn r16175) -Fix: Disable the join button in the multiplayer lobby for AI companies, since joining an AI company is not possible. 2009-04-26 19:48:42 +00:00
rubidium 5db32d1dc5 (svn r16134) -Change: do not add duplicates to the broadcast list 2009-04-24 10:33:16 +00:00
rubidium d04ebf2fa5 (svn r16065) -Fix: don't readd (and resolve) the last joined server each time the window gets repainted 2009-04-15 20:37:00 +00:00
glx 532fca65ef (svn r16050) -Fix (r15933): little typo causing OTTDfreeaddrinfo to use the fallback even when freeaddrinfo is available 2009-04-12 22:13:05 +00:00
rubidium 47e2901e18 (svn r16034) -Fix: compile warnings generated by 64 bits MSVC. 2009-04-11 20:26:25 +00:00
rubidium 460fbc7c92 (svn r16007) -Fix (r16004): when we want to bind to both IPv4 and IPv6, make the master socket do that too; too bad getaddrinfo can't handle binding to any address on any port at the same time :( 2009-04-10 09:23:35 +00:00
rubidium 28bce241fd (svn r16005) -Fix: assertion when there is no last joined server; when you've got an unresolved address, the hostname cannot be resolved either so return it as-is. 2009-04-09 21:36:09 +00:00
rubidium 8477e92386 (svn r16004) -Fix (r16000): explicitly binding to an IPv4 socket would try to register an IPv6 address (only if it could ofcourse) 2009-04-09 21:26:29 +00:00
rubidium c0f9af5607 (svn r16000) -Feature: IPv6 support 2009-04-09 01:22:45 +00:00
rubidium 882e495f5c (svn r15993) -Codechange: clean up/generalise the handling of the server list 2009-04-08 23:41:48 +00:00
rubidium 0f0cc67d62 (svn r15990) -Codechange: provide a thread safe variant of GetAddressAsString. 2009-04-08 21:11:16 +00:00
rubidium 080095ade5 (svn r15984) -Codechange: prepare the UDP receiver to process multiple types of returned server lists. 2009-04-08 17:51:04 +00:00
rubidium cd8da0d69e (svn r15982) -Codechange: use GetAddressAsString to get the name instead of passing the hostname and the IP into a string. 2009-04-08 12:52:53 +00:00
rubidium 9d6edae94d (svn r15981) -Fix: don't print the address family when writing the IP+port to the config file. 2009-04-08 12:09:07 +00:00
rubidium 18146572b0 (svn r15980) -Codechange: don't try to bind to the same socket twice; it's quite pointless. 2009-04-08 11:57:00 +00:00
rubidium c2152fa31f (svn r15979) -Codechange: tweak the debug/warning levels of some of the messages when binding 2009-04-08 01:23:44 +00:00
rubidium a5a424ce28 (svn r15978) -Codechange: support parsing [] enclosed IPv6 addresses. 2009-04-08 01:22:57 +00:00
rubidium 20e82c46d3 (svn r15976) -Codechange: make it a bit more clear for what (type of) address binding fails 2009-04-08 00:41:35 +00:00
rubidium 1eb4aa971e (svn r15975) -Codechange: register each of the IPs we have bound to to the masterserver 2009-04-08 00:26:49 +00:00
glx d466fa9672 (svn r15974) -Fix (r15969): win32 compilation was broken (again) 2009-04-08 00:10:20 +00:00
rubidium c0f8214218 (svn r15972) -Codechange: remove unneeded parameter 2009-04-08 00:03:05 +00:00
rubidium 2a6e9288fd (svn r15971) -Codechange: make it possible for UDP socket handlers to bind to multiple sockets. 2009-04-07 20:27:13 +00:00
rubidium 6db7f15b3a (svn r15970) -Codechange: make it possible to resolve a single address into multiple sockets. 2009-04-07 19:52:01 +00:00
rubidium 82f8badc07 (svn r15969) -Codechange: make the list of broadcast addresses virtually unlimited. 2009-04-07 19:06:36 +00:00
rubidium fdddfd6269 (svn r15968) -Codechange: do not allocate a buffer for NetworkAddresses so passing it around is easier. 2009-04-07 19:04:37 +00:00
rubidium 22d9306889 (svn r15967) -Codechange: do not access NetworkSocketHandler::has_quit directly 2009-04-07 18:23:14 +00:00
rubidium 0678cb561d (svn r15961) -Codechange: prepare the 'client' side for receiving 'session keys' from the masterserver so servers can register with multiple IPs as the same server. 2009-04-05 19:43:41 +00:00
rubidium edfc2e536e (svn r15954) -Fix: comparing addresses kinda fails (sometimes) causing duplicates in the game list 2009-04-04 13:09:36 +00:00
rubidium 616cac0c54 (svn r15951) -Fix (r15946) [FS#2803]: ofcourse a couple of OSes/compilers do not provide a nice 'interface', so we have to do it the ugly way. 2009-04-04 08:48:12 +00:00
glx 5eed35ef54 (svn r15950) -Fix (r15946): mingw compilation 2009-04-04 03:45:02 +00:00
rubidium a779611665 (svn r15948) -Fix: resolve network addresses before comparing them 2009-04-04 01:51:32 +00:00
rubidium 2fd9f0fffa (svn r15946) -Codechange: move netmask matching to NetworkAddress and add some support for IPv6 netmask matching. 2009-04-04 00:47:08 +00:00
glx e460d3f4d0 (svn r15945) -Fix (r15944): win32 compilation 2009-04-03 23:44:31 +00:00
rubidium 7cf4639255 (svn r15944) -Codechange: disable IPv4 over IPv6 sockets as there is no default value and not all OSes actually support IPv4 over IPv6 so making it the same on all OSes eases debugging and such 2009-04-03 21:46:52 +00:00
rubidium ce06df313d (svn r15941) -Codechange: jonty-comp's wish partly implemented (content server) ;) 2009-04-03 17:20:57 +00:00
rubidium 1463b00b48 (svn r15940) -Codechange: move setting reuse address to the binding process. 2009-04-03 17:02:29 +00:00
glx 2dafb9dd57 (svn r15938) -Fix: broadcast addresses detection was broken for win32 2009-04-03 16:22:34 +00:00
rubidium e05e1822d6 (svn r15935) -Codechange: function to compare IP addresses (to sort them) 2009-04-03 15:42:41 +00:00
rubidium 2bfc9ca50c (svn r15934) -Fix: work around Solaris' inability to "parse" 0 as defined in the specifications. 2009-04-03 15:24:39 +00:00
glx 65d10e66f0 (svn r15933) -Fix (r15920): mingw doesn't know getaddrinfo() and freeaddrinfo() either 2009-04-03 14:01:45 +00:00
glx d84fb358f5 (svn r15930) -Fix (r15926): MSVC compilation 2009-04-03 12:48:11 +00:00
rubidium 11723c40b2 (svn r15926) -Codechange: make the broadcast IP list less AF dependent. 2009-04-03 11:02:41 +00:00
rubidium 47602d7b60 (svn r15925) -Codechange: remove _network_server_bind_ip as it's pretty AF dependant. 2009-04-03 10:29:56 +00:00
rubidium dccfba6e20 (svn r15924) -Codechange: replace NetworkResolveHost with something less AF dependant. 2009-04-03 09:07:16 +00:00
rubidium 632d74c6b1 (svn r15922) -Codechange: unify the ways to listen on a socket 2009-04-03 01:24:52 +00:00
rubidium ba5aafb9bb (svn r15921) -Fix: some OSes don't like sizeof(sockaddr_storage) but want sizeof(sockaddr) or whatever is 'valid' for the given protocol 2009-04-03 00:33:00 +00:00
rubidium c7b6469dab (svn r15920) -Codechange: make the (TCP) connecting less AF dependent. 2009-04-02 23:59:43 +00:00
glx 521bf687ee (svn r15919) -Fix (r15916): mingw doesn't know getnameinfo() (unless you compile for XP SP2+). Also fix a MSVC warning. 2009-04-02 23:22:59 +00:00
rubidium beef5da970 (svn r15918) -Fix (r15917): comparing IPs sometimes failed due to 'random' data (as spotted by SpComb) 2009-04-02 23:03:18 +00:00
rubidium c5160c7c8e (svn r15917) -Codechange: remove the latest traces of NetworkAddress::GetIP. 2009-04-02 20:39:30 +00:00
rubidium 1e205e01b8 (svn r15916) -Codechange: let the network game list use NetworkAddress 2009-04-02 20:17:46 +00:00
rubidium c0c6e07081 (svn r15915) -Codechange: let the udp code use NetworkAddress. 2009-04-02 19:21:26 +00:00
rubidium 804370d964 (svn r15914) -Codechange: let the content handling make use of NetworkAddress. 2009-04-02 18:35:59 +00:00
rubidium b25a4f8231 (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too 2009-03-15 00:32:18 +00:00
rubidium 86ca408d46 (svn r15626) -Fix [FS#2698]: UTF8 string handling could cause buffer overruns. 2009-03-06 01:23:25 +00:00
rubidium 04709f2798 (svn r15242) -Feature: allow moving clients between companies/spectators by the server and the clients themselves (dihedral) 2009-01-23 22:18:06 +00:00
rubidium 4f5a8b15ed (svn r15206) -Fix [FS#2567]: memory corruption due to not properly cleanup up the mess when cancelling a download 2009-01-22 10:09:56 +00:00
rubidium ff328bf68b (svn r15178) -Change: rename 'update' to 'upgrade' as that's a bit more clear 2009-01-20 21:05:13 +00:00
rubidium eeb38a8e3a (svn r15176) -Fix [FS#2554]: querying the content server could free when resolving the hostname or connecting takes long/is timing out. 2009-01-20 16:51:55 +00:00
rubidium 28a641066e (svn r15163) -Change/Fix: use a non-blocking method to resolve the hostname and connect to game servers. 2009-01-20 11:28:18 +00:00
rubidium 99b1f1a8f4 (svn r15161) -Change: bump url to 96 bytes 2009-01-20 09:52:11 +00:00
rubidium 07e135547e (svn r15135) -Fix/Change: allow str_validate (part of receiving strings from the network) to pass newlines instead of replacing them with question marks, but only when asked to do so. 2009-01-18 13:12:57 +00:00
rubidium 3a13b75e37 (svn r15126) -Feature: downloading content from a central server (content.openttd.org) where authors can upload they NewGRFS/AI etc. This should make joining servers that use only NewGRFs that are distributed via this system easier as the players can download the NewGRFs from in the game. It should also make it easier to see whether there are updates for NewGRFs and make the necessary updates. 2009-01-17 16:53:32 +00:00
rubidium e18c24cdb5 (svn r15079) -Codechange: split tcp 'backend' and in-game handling like it is for UDP. 2009-01-14 12:50:13 +00:00
rubidium 04ea0b9316 (svn r15053) -Cleanup: remove some unneeded includes 2009-01-13 11:53:33 +00:00
rubidium fc696a7e29 (svn r15052) -Codechange: move the implementation of Send_CompanyInformation to network_server.cpp as the server's the one that sends that information 2009-01-13 11:46:29 +00:00
rubidium 11da45ee55 (svn r14949) -Cleanup: pointer coding style 2009-01-10 00:31:47 +00:00
rubidium 427e2d30c5 (svn r14915) -Codechange: unify the receiving and sending of commands, and thus unifying most of the validity checking too. 2009-01-08 14:40:18 +00:00
rubidium e198bf02ab (svn r14766) -Fix (r14730ish): remove unused typedef. 2008-12-29 11:17:12 +00:00
rubidium 105b84e343 (svn r14760) -Fix (rlongago): network connection of clients being closed twice (found due to added assertion in r14730) 2008-12-28 21:45:41 +00:00
rubidium e626e07bd3 (svn r14759) -Fix (r14730): tab completion causing out-of-bounds read. 2008-12-28 21:07:45 +00:00
rubidium afddfcb2b1 (svn r14730) -Codechange: remove the need for networkclientsockets and networkclientinfo structs to be in a contiguous piece of memory and put them in a pool.
-Note: 255 should really be enough for now... making it any more means network protocol bumps.
2008-12-23 20:52:27 +00:00
rubidium 52fb6b7d7c (svn r14724) -Codechange: move some NetworkClientSocket related function/definitions closer together. 2008-12-23 11:43:32 +00:00
rubidium 9476a49763 (svn r14723) -Codechange: shuffling some stuff around to reduce indirect #include dependencies. 2008-12-23 11:06:52 +00:00
rubidium ae96ca635c (svn r14721) -Codechange: s/NetworkTCPSocketHandler/NetworkClientSocket/ as it's (way) more descriptive what it's used for. 2008-12-23 09:47:42 +00:00
rubidium b4734ee9a4 (svn r14719) -Codechange: replace DEREF_CLIENT with an instance function and replace looping socket structs with info structs when the loop is only interested in the info structs (i.e. not derefing the info from sockets when one can loop info directly and the socket isn't used) 2008-12-23 08:39:30 +00:00
rubidium abc903d625 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information. 2008-12-22 18:40:57 +00:00
rubidium 782b80eff7 (svn r14709) -Codechange: make a clearer distinction between 'unique' client identification ids and the indices into the clients/client info arrays. 2008-12-22 12:59:31 +00:00
smatz d2a050bb29 (svn r14671) -Fix: compilation was broken for some systems 2008-12-13 18:19:44 +00:00
rubidium 3b798599b6 (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with. 2008-09-30 20:39:50 +00:00
rubidium e7829c1a57 (svn r14414) -Fix: replace instances of strncpy with strecpy as strncpy doesn't guarantee the resulting string is '\0'-terminated. 2008-09-29 16:27:02 +00:00
smatz 361292bd23 (svn r14177) -Fix: define INADDR_NONE only when it hasn't been defined yet 2008-08-25 22:10:47 +00:00
smatz c9bef19043 (svn r14174) -Fix: since now, we are 'losing' things, not 'loosing' 2008-08-25 20:10:45 +00:00
rubidium 97c184f8f8 (svn r14063) -Codechange: replace some "magic" constants with enumified constants. 2008-08-13 06:05:01 +00:00
rubidium 72c154fd0f (svn r14052) -Codechange: make the size of the chat message "box" configurable and increase the default size slightly so it can hold the longest chat messages. 2008-08-12 12:23:05 +00:00
rubidium 3b4c3a3df6 (svn r14045) -Codechange: move the network's limitation to chat messages to a more logical location and give it a more consistent name. 2008-08-11 22:07:26 +00:00
glx 788b625553 (svn r14026) -Cleanup (r13995, r14004): trailing whitespaces 2008-08-08 15:49:16 +00:00
rubidium 0ebcac669e (svn r13997) -Fix (r13988): in some cases no broadcast addresses would be found. 2008-08-04 19:07:37 +00:00
rubidium b1eaf763e1 (svn r13995) -Fix (r13988): some warnings of the compile farm. 2008-08-04 18:27:54 +00:00
glx 0f10939029 (svn r13990) -Fix (r13988): win32 compilation failed 2008-08-04 13:54:10 +00:00
rubidium c88cb1daa0 (svn r13988) -Codechange: move the to IP resolving functions to a separate file. 2008-08-04 12:56:38 +00:00
rubidium 60a6582590 (svn r13713) -Fix: possible crash on creating a network packet. 2008-07-17 11:47:57 +00:00
rubidium 2e4f32023c (svn r13712) -Fix: enforce the length restrictions of company and president name in the commands too. 2008-07-17 11:19:20 +00:00
smatz ce692c16ee (svn r13378) -Fix (r13375): compilation without network support was broken 2008-06-04 11:21:36 +00:00
rubidium abf2b0efc3 (svn r13369) -Codechange: remove duplication of network configuration settings between NetworkSettings and NetworkGameInfo.
-Fix: failure of changing the server password during games because the password wasn't duplicated properly.
2008-06-03 08:04:35 +00:00
rubidium 2f3b88ef9a (svn r13343) -Codechange: reorder/move variable/functions in the network headers so that nothing from the network directory needs to include basically all network headers. 2008-05-30 18:20:26 +00:00
rubidium 4097d81323 (svn r12930) -Add: build support for NetBSD and HP-UX. Patch by ahoka. 2008-04-30 07:39:46 +00:00
smatz f32ecbcadb (svn r12777) -Codechange: rename fatal() and error() in strgen, so it can always have the NORETURN attribute 2008-04-18 21:33:21 +00:00
rubidium 1b2773445d (svn r12765) -Codechange: move some stuff out of variables.h that required including other headers in variables.h. 2008-04-18 10:16:51 +00:00
rubidium ab7b05da50 (svn r12637) -Fix [FS#1913]: possible NULL pointer dereference when reading some NewGRF data. 2008-04-09 14:05:50 +00:00
glx fed6a25799 (svn r12407) -Add [FS#1866]: more language flags for servers 2008-03-24 20:30:08 +00:00
rubidium d4e6a6bf57 (svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h. 2008-01-13 01:21:35 +00:00
rubidium ac528411df (svn r11818) -Codechange: split player.h into smaller pieces. 2008-01-12 14:10:35 +00:00
rubidium a3ccdcea36 (svn r11777) -Codechange: split the string header and make do not include it when it's not necessary. 2008-01-07 14:23:25 +00:00
rubidium b9046c97fb (svn r11702) -Codechange: move all date related stuff to date*. 2007-12-26 13:50:40 +00:00
rubidium 429521a7d1 (svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h' 2007-12-25 11:26:07 +00:00
rubidium bf98e25e43 (svn r11691) -Codechange: move+rename helpers.hpp and only include it when it is really needed. 2007-12-25 09:48:53 +00:00
rubidium 01e20c9140 (svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations. 2007-12-21 19:21:21 +00:00
rubidium b5a902703e (svn r11557) -Codechange: send and store the passwords a little more secure to/in the servers.
Each server and game yield a (usually) different 'salt'. This salt is used by the clients to hash their passwords. This way the passwords are not sent in clear text and it is not trivial to use those hashes on other servers.
NOTE: It is still NOT safe to use your trusted passwords and it will not stop people from being able to 'hijack' your password, it only makes it harder to do and certainly much less trivial than just dumping passwords from the memory.
2007-12-02 15:12:19 +00:00
skidd13 71c4325c50 (svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style 2007-11-19 21:02:30 +00:00
skidd13 58bb5c7525 (svn r11480) -Codechange: Rename the function ALIGN fitting to the naming style
This fixes also FS#1450
2007-11-19 20:40:14 +00:00
skidd13 8be526e499 (svn r11475) -Codechange: rename clamp and clampu to Clamp and ClampU to fit with the coding style 2007-11-19 18:38:10 +00:00
truelight e288b2456f (svn r11357) -Fix: NetworkUniqueID could be 80 chars, while the max size we generate is 32. So reduce the size a bit. Pointed out by dihedral, so give him a big hug ;) 2007-10-30 11:29:01 +00:00
rubidium 8795050ff7 (svn r11290) -Fix: obiwan in the assertion that checked for overflows when writing a packet, causing still correctly sized packets to cause assertions. 2007-10-18 17:44:59 +00:00
rubidium 809238e634 (svn r10729) -Fix: some hardware (PS(P|3)) seems to loose the non-blocking state of UDP sockets. 2007-07-29 22:21:26 +00:00
rubidium 872e74c028 (svn r10501) -Fix [FS#1015]: error dialog was sometimes shown on all clients when a command failed instead of only the client that actually did the command. 2007-07-10 20:59:41 +00:00
glx 6e653cd1ab (svn r10017) -Add (FS#790): more languages flags for servers 2007-06-01 23:06:01 +00:00
rubidium 80c259f64f (svn r9672) -Cleanup: lots of coding style fixes around operands. 2007-04-18 22:10:36 +00:00
rubidium 24c4d5b06d (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {}; 2007-03-07 12:11:48 +00:00
rubidium 36bb92ae24 (svn r9050) -Codechange: Foo(void) -> Foo() 2007-03-07 11:47:46 +00:00
rubidium a2b5b74b83 (svn r9038) -Fix [FS#115]: inactive connections are not automatically kicked, i.e. people who only open a telnet (or similar) connection to a server. 2007-03-06 22:00:42 +00:00
celestar 0ed4b64e64 (svn r8857) -Documentation: Added some doxygen @file tags, repaired others (the @file tag MUST be found before any line of code, that includes preprocessor directives). 2007-02-23 08:37:33 +00:00
truelight 0d91ed68a9 (svn r8674) [PSP] -Add: added network code for PSP, based on the work of Turulo
-Add: added general header-inclusing for PSP
2007-02-11 13:57:35 +00:00
rubidium b71d6e1401 (svn r8673) -Codechange: use SetNonBlocking instead of implementing yet another version. 2007-02-11 13:39:23 +00:00
truelight c46a1cc2f6 (svn r8631) -Add: added parameter -l ip[:port] to ./openttd, which redirects DEBUG() to a remote connection over TCP
For example, launch on 192.168.0.1 with, say, netcat a listener: netcat -l -p 3982
  Launch OpenTTD on a remote host (say, PSP): ./openttd -l 192.168.0.1 -d9
  And you get all debug information on 192.168.0.1. Very useful for debugging Portable systems.
2007-02-08 12:27:53 +00:00
rubidium 500f9a971a (svn r8546) -Codechange: add a seperate (wrapper) functions to send/receive booleans. 2007-02-02 23:16:58 +00:00
rubidium 59f4f056df (svn r8525) -Codechange: make NetworkSend_Packet(s) and NetworkRecv_Packet functions of NetworkTCPSocketHandler. 2007-02-01 23:50:15 +00:00
rubidium 16ce6def09 (svn r8523) -Codechange: move all the Network(Recv|Send)_(uintXX|string) functions to Packet. 2007-02-01 23:26:44 +00:00
rubidium 99f860e686 (svn r8521) -Codechange: initial step in converting Packet to a class; make and use constructors and functions related to the reading/saving the packet size. 2007-02-01 22:30:35 +00:00
KUDr f9462a50e9 (svn r8479) -Fix (r8459): Silenced VC warning C4099: 'Packet' : type name first seen using 'class' now seen using 'struct'
-Codechange: 'typedef struct Packet' changed to 'struct Packet'
2007-01-31 09:51:22 +00:00
rubidium 86b046864a (svn r8461) -Feature: check for NewGRF compatability before actually downloading the map from a game server when connecting from the command prompt and internal console. 2007-01-30 17:22:56 +00:00
rubidium 291b7925ee (svn r8459) -Codechange: move (Send|Recv)GRFIdentifier to NetworkSocketHandler, so it can also be used the TCP socket handler. 2007-01-30 17:12:46 +00:00
rubidium 00782c089d (svn r8446) -Fix (8445): accidentally made a function that should not be abstract abstract. 2007-01-28 20:54:30 +00:00
rubidium f72dde5236 (svn r8445) -Cleanup: remove some @params from comments as the parameters did not exist anymore and add comments to several variables/functions. 2007-01-28 20:47:25 +00:00
rubidium 5d3ad5601d (svn r8437) -Codechange: move often duplicated (in MSU) define to the udp header. 2007-01-28 13:07:24 +00:00
truelight cf07eafb97 (svn r8411) [MorphOS] -Fix: tons of unneeded warnings in networking code, because MorphOS wants UBYTE arrays and we use char arrays. Solution is a bit hackish. 2007-01-26 08:27:59 +00:00
rubidium 269c1a58a0 (svn r8372) -Fix (8361): NUM_LANDSCAPE comes (via some detour) from openttd.h, which does not exist in the masterserver/updater. 2007-01-23 14:47:38 +00:00
rubidium 3e10a726e5 (svn r8361) -Codechange: make sure the range of the dates coming from the network are valid in OpenTTD
-Codechange: use_password is a boolean variable
-Codechange: move range checking for server_lang and map_set to Recv_NetworkGameInfo
2007-01-22 21:38:16 +00:00
rubidium cf83a9f065 (svn r8316) -Codechange: move the GRF ID and MD5 checksum from GRFConfig to GRFIdentifier so it can be reused. 2007-01-21 17:29:38 +00:00
rubidium f66b373b52 (svn r8083) -Codechange: make a NetworkSocketHandler as base for all sockets and move a little of NetworkClientState functionality to the NetworkSocketHandler. Move the rest of the NetworkClientState to the new NetworkTCPSocketHandler class/struct, which is not yet implemented in an object oriented manner. The UDP socket handler now extends the NetworkSocketHandler instead of having a reference to a NetworkClientState. 2007-01-12 20:19:49 +00:00
rubidium c48aa5db45 (svn r8078) -Codechange: rewrite UDP part of the network code to make use classes. This is only one of the many steps to really cleanup the network code. 2007-01-12 14:30:01 +00:00
KUDr 33be1ecfb1 (svn r8066) - Codechange: MallocT(), CallocT(), ReallocT() now return the pointer to allocated memory instead of modifying the pointer given as parameter 2007-01-11 17:29:39 +00:00
rubidium f35ed4bbc2 (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b. 2007-01-10 18:56:51 +00:00
KUDr e373ea7096 (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp) 2007-01-10 18:12:09 +00:00
rubidium 293d8ba826 (svn r8000) -Codechange: drop UDP packets when their internal size does not match the received size. If that is the case, the packet was not received in one piece (or got somehow mangled with another packet), which will cause us to drop the packet later on because we are (for example) trying to read beyond the end of the packet. 2007-01-09 14:48:21 +00:00
rubidium 432ea5bbd6 (svn r7932) -Fix (r7931): committed a few files too much :( (the ones I used to test the new masterserver) 2007-01-06 23:00:21 +00:00
rubidium 8d41fe225e (svn r7931) -Fix (r7759): multiple (different) -O flags made compilations with the wrong optimisations. 2007-01-06 22:58:01 +00:00
rubidium 8ce23a5881 (svn r7888) -Change: add documentation about the 'on-the-wire' structure of the network game information request and reply packets. 2007-01-05 21:33:58 +00:00
truelight 27ccf59460 (svn r7882) -Fix: OS2 is defined as UNIX too, but not for networking 2007-01-05 18:03:30 +00:00
rubidium 7b8032d6d4 (svn r7847) -Codechange: use NetworkUDPClose instead of calling closesocket directly. 2007-01-05 01:23:03 +00:00
rubidium 73079f83bc (svn r7836) -Codechange: some constness for network/core. 2007-01-04 21:48:52 +00:00
rubidium b2f85eb044 (svn r7834) -Codechange: cleanup the includes of network/core a little; include headers in headers when the header needs types/constants defined in them. 2007-01-04 21:21:14 +00:00
rubidium bfe4dcbc39 (svn r7833) -Fix (r7829): forgot to add debug.h to the includes. 2007-01-04 20:33:50 +00:00
rubidium 85d1768b34 (svn r7830) -Codechange: let NetworkCoreInitialize return a bool, so we have to set _network_available only once. 2007-01-04 19:12:45 +00:00
rubidium 627ebe8430 (svn r7829) -Codechange: move the network (core) initialization/shutdown functions into network/core, so the can be reused in the masterserver_updater. 2007-01-04 18:50:40 +00:00
rubidium ae9750e69b (svn r7825) -Codechange: make NetworkUDPClose close a single UDP socket. Use NetworkUDPStop to close all opened udp sockets (those were called NetworkUDPClose). 2007-01-04 18:10:40 +00:00
rubidium 6851608c00 (svn r7821) -Fix: be more strict about the socket from where packets arrive. Do not accept requests about the game server on the master/client socket, do not accept master server acks on the client/server socket, etc. 2007-01-04 15:42:09 +00:00
bjarni e13f5c19c1 (svn r7767) -Fix r7751: [OSX] nameclash in includes. ALIGN was defined in both a library and macros.h
we undefines the library one since we don't need that one anyway
2007-01-02 21:27:28 +00:00
rubidium 66bbf336c6 (svn r7759) -Merge: makefile rewrite. This merge features:
- A proper ./configure, so everything needs to be configured only once, not for every make.
 - Usage of makedepend when available. This greatly reduces the time needed for generating the dependencies.
 - A generator for all project files. There is a single file with sources, which is used to generate Makefiles and the project files for MSVC.
 - Proper support for OSX universal binaries.
 - Object files for non-MSVC compiles are also placed in separate directories, making is faster to switch between debug and release compiles and it does not touch the directory with the source files.
 - Functionality to make a bundle of all needed files for for example a nightly or distribution of a binary with all needed GRFs and language files.

Note: as this merge moves almost all files, it is recommended to make a backup of your working copy before updating your working copy.
2007-01-02 19:19:48 +00:00