Commit Graph

290 Commits (348f2d35beef61c85f218d899b103ae07672d42d)

Author SHA1 Message Date
glx da49105b9e (svn r15974) -Fix (r15969): win32 compilation was broken (again) 15 years ago
rubidium bc072884b0 (svn r15972) -Codechange: remove unneeded parameter 15 years ago
rubidium e1a7fad295 (svn r15971) -Codechange: make it possible for UDP socket handlers to bind to multiple sockets. 15 years ago
rubidium e3d183f3dd (svn r15970) -Codechange: make it possible to resolve a single address into multiple sockets. 15 years ago
rubidium f6e27e7274 (svn r15969) -Codechange: make the list of broadcast addresses virtually unlimited. 15 years ago
rubidium d66827b289 (svn r15968) -Codechange: do not allocate a buffer for NetworkAddresses so passing it around is easier. 15 years ago
rubidium a25684b833 (svn r15967) -Codechange: do not access NetworkSocketHandler::has_quit directly 15 years ago
rubidium 22ab962baf (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. 15 years ago
rubidium 3e6d3ff9a2 (svn r15954) -Fix: comparing addresses kinda fails (sometimes) causing duplicates in the game list 15 years ago
rubidium 3ce836c4af (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. 15 years ago
glx d5e4f8152f (svn r15950) -Fix (r15946): mingw compilation 15 years ago
rubidium 2f220d09bb (svn r15948) -Fix: resolve network addresses before comparing them 15 years ago
rubidium a5576bc6e1 (svn r15946) -Codechange: move netmask matching to NetworkAddress and add some support for IPv6 netmask matching. 15 years ago
glx a1b6c34623 (svn r15945) -Fix (r15944): win32 compilation 15 years ago
rubidium 1a0249f9d8 (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 15 years ago
rubidium c3af69eb9d (svn r15941) -Codechange: jonty-comp's wish partly implemented (content server) ;) 15 years ago
rubidium e8852635ab (svn r15940) -Codechange: move setting reuse address to the binding process. 15 years ago
glx d3db002a4f (svn r15938) -Fix: broadcast addresses detection was broken for win32 15 years ago
rubidium cda1cb02ed (svn r15935) -Codechange: function to compare IP addresses (to sort them) 15 years ago
rubidium 627163b785 (svn r15934) -Fix: work around Solaris' inability to "parse" 0 as defined in the specifications. 15 years ago
glx cfac582c36 (svn r15933) -Fix (r15920): mingw doesn't know getaddrinfo() and freeaddrinfo() either 15 years ago
glx 825aa87e80 (svn r15930) -Fix (r15926): MSVC compilation 15 years ago
rubidium 2b7a30f209 (svn r15926) -Codechange: make the broadcast IP list less AF dependent. 15 years ago
rubidium be8919c968 (svn r15925) -Codechange: remove _network_server_bind_ip as it's pretty AF dependant. 15 years ago
rubidium 197eff1fa9 (svn r15924) -Codechange: replace NetworkResolveHost with something less AF dependant. 15 years ago
rubidium 3e6c6d7294 (svn r15922) -Codechange: unify the ways to listen on a socket 15 years ago
rubidium 020b1f9328 (svn r15921) -Fix: some OSes don't like sizeof(sockaddr_storage) but want sizeof(sockaddr) or whatever is 'valid' for the given protocol 15 years ago
rubidium 34f9223f6a (svn r15920) -Codechange: make the (TCP) connecting less AF dependent. 15 years ago
glx c56767317f (svn r15919) -Fix (r15916): mingw doesn't know getnameinfo() (unless you compile for XP SP2+). Also fix a MSVC warning. 15 years ago
rubidium 6664998667 (svn r15918) -Fix (r15917): comparing IPs sometimes failed due to 'random' data (as spotted by SpComb) 15 years ago
rubidium f22566f8df (svn r15917) -Codechange: remove the latest traces of NetworkAddress::GetIP. 15 years ago
rubidium 785779ca62 (svn r15916) -Codechange: let the network game list use NetworkAddress 15 years ago
rubidium bdf3611d02 (svn r15915) -Codechange: let the udp code use NetworkAddress. 15 years ago
rubidium 822ff14d73 (svn r15914) -Codechange: let the content handling make use of NetworkAddress. 15 years ago
rubidium c3e87f345d (svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too 16 years ago
rubidium 34bd9ee636 (svn r15626) -Fix [FS#2698]: UTF8 string handling could cause buffer overruns. 16 years ago
rubidium 2722cabcce (svn r15242) -Feature: allow moving clients between companies/spectators by the server and the clients themselves (dihedral) 16 years ago
rubidium bf47489d58 (svn r15206) -Fix [FS#2567]: memory corruption due to not properly cleanup up the mess when cancelling a download 16 years ago
rubidium fd7063530c (svn r15178) -Change: rename 'update' to 'upgrade' as that's a bit more clear 16 years ago
rubidium 7c5a618639 (svn r15176) -Fix [FS#2554]: querying the content server could free when resolving the hostname or connecting takes long/is timing out. 16 years ago
rubidium 206841ba5f (svn r15163) -Change/Fix: use a non-blocking method to resolve the hostname and connect to game servers. 16 years ago
rubidium ad43d72a3e (svn r15161) -Change: bump url to 96 bytes 16 years ago
rubidium 1bc8e3f536 (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. 16 years ago
rubidium 72b0341ed0 (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. 16 years ago
rubidium 850a2735cc (svn r15079) -Codechange: split tcp 'backend' and in-game handling like it is for UDP. 16 years ago
rubidium 737c187f79 (svn r15053) -Cleanup: remove some unneeded includes 16 years ago
rubidium 01e92ac32a (svn r15052) -Codechange: move the implementation of Send_CompanyInformation to network_server.cpp as the server's the one that sends that information 16 years ago
rubidium 28ea38ae55 (svn r14949) -Cleanup: pointer coding style 16 years ago
rubidium 0e1127e8b5 (svn r14915) -Codechange: unify the receiving and sending of commands, and thus unifying most of the validity checking too. 16 years ago
rubidium 42fb037005 (svn r14766) -Fix (r14730ish): remove unused typedef. 16 years ago
rubidium 3b08d2ecaa (svn r14760) -Fix (rlongago): network connection of clients being closed twice (found due to added assertion in r14730) 16 years ago
rubidium 5fe023cb1b (svn r14759) -Fix (r14730): tab completion causing out-of-bounds read. 16 years ago
rubidium 54f23ed0b3 (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.
16 years ago
rubidium e267bee098 (svn r14724) -Codechange: move some NetworkClientSocket related function/definitions closer together. 16 years ago
rubidium 97662a0fff (svn r14723) -Codechange: shuffling some stuff around to reduce indirect #include dependencies. 16 years ago
rubidium cb8b31c3c1 (svn r14721) -Codechange: s/NetworkTCPSocketHandler/NetworkClientSocket/ as it's (way) more descriptive what it's used for. 16 years ago
rubidium 9a96557763 (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) 16 years ago
rubidium d146b48063 (svn r14712) -Codechange: split server and client side w.r.t. the storage of network related company information. 16 years ago
rubidium 6d23f48bb6 (svn r14709) -Codechange: make a clearer distinction between 'unique' client identification ids and the indices into the clients/client info arrays. 16 years ago
smatz a5b33d1f3b (svn r14671) -Fix: compilation was broken for some systems 16 years ago
rubidium f56e630e5c (svn r14421) -Codechange: rename all player variables/types to company *or* client so it is immediatelly clear which one you are working with. 16 years ago
rubidium 5ab74534da (svn r14414) -Fix: replace instances of strncpy with strecpy as strncpy doesn't guarantee the resulting string is '\0'-terminated. 16 years ago
smatz eeaeecd255 (svn r14177) -Fix: define INADDR_NONE only when it hasn't been defined yet 16 years ago
smatz 1294253d68 (svn r14174) -Fix: since now, we are 'losing' things, not 'loosing' 16 years ago
rubidium c816cc37fd (svn r14063) -Codechange: replace some "magic" constants with enumified constants. 16 years ago
rubidium 6199dc987b (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. 16 years ago
rubidium 0fab1dc699 (svn r14045) -Codechange: move the network's limitation to chat messages to a more logical location and give it a more consistent name. 16 years ago
glx 812ab1279a (svn r14026) -Cleanup (r13995, r14004): trailing whitespaces 16 years ago
rubidium 12037a8b38 (svn r13997) -Fix (r13988): in some cases no broadcast addresses would be found. 16 years ago
rubidium b32b101b8c (svn r13995) -Fix (r13988): some warnings of the compile farm. 16 years ago
glx b9bbcfcb9b (svn r13990) -Fix (r13988): win32 compilation failed 16 years ago
rubidium eb5fb4443a (svn r13988) -Codechange: move the to IP resolving functions to a separate file. 16 years ago
rubidium 348600eca9 (svn r13713) -Fix: possible crash on creating a network packet. 16 years ago
rubidium 03afcec36f (svn r13712) -Fix: enforce the length restrictions of company and president name in the commands too. 16 years ago
smatz 1f1eea4873 (svn r13378) -Fix (r13375): compilation without network support was broken 16 years ago
rubidium 994779e9e2 (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.
16 years ago
rubidium bae02e8c67 (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. 16 years ago
rubidium f1820a5708 (svn r12930) -Add: build support for NetBSD and HP-UX. Patch by ahoka. 16 years ago
smatz 3fe8c58257 (svn r12777) -Codechange: rename fatal() and error() in strgen, so it can always have the NORETURN attribute 16 years ago
rubidium d46d8d9c9d (svn r12765) -Codechange: move some stuff out of variables.h that required including other headers in variables.h. 16 years ago
rubidium cd23dd64bf (svn r12637) -Fix [FS#1913]: possible NULL pointer dereference when reading some NewGRF data. 16 years ago
glx 15cd2931f3 (svn r12407) -Add [FS#1866]: more language flags for servers 17 years ago
rubidium 90acd52f22 (svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h. 17 years ago
rubidium 2fc62eab05 (svn r11818) -Codechange: split player.h into smaller pieces. 17 years ago
rubidium b09d957f31 (svn r11777) -Codechange: split the string header and make do not include it when it's not necessary. 17 years ago
rubidium db73addb43 (svn r11702) -Codechange: move all date related stuff to date*. 17 years ago
rubidium 81bf9f8503 (svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h' 17 years ago
rubidium 00c9d3ef20 (svn r11691) -Codechange: move+rename helpers.hpp and only include it when it is really needed. 17 years ago
rubidium 8ebdfb258f (svn r11674) -Codechange: refactor some functions out of macros.h into more logical locations. 17 years ago
rubidium 49e6247de8 (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.
17 years ago
skidd13 c0a2c0c23e (svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style 17 years ago
skidd13 7a4d96f629 (svn r11480) -Codechange: Rename the function ALIGN fitting to the naming style
This fixes also FS#1450
17 years ago
skidd13 98f66552be (svn r11475) -Codechange: rename clamp and clampu to Clamp and ClampU to fit with the coding style 17 years ago
truelight 9cf6fe8bca (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 ;) 17 years ago
rubidium 6f75794b0f (svn r11290) -Fix: obiwan in the assertion that checked for overflows when writing a packet, causing still correctly sized packets to cause assertions. 17 years ago
rubidium 364d42f2cd (svn r10729) -Fix: some hardware (PS(P|3)) seems to loose the non-blocking state of UDP sockets. 17 years ago
rubidium 3ba01bec84 (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. 17 years ago
glx 9113b5721a (svn r10017) -Add (FS#790): more languages flags for servers 17 years ago
rubidium 7577954ced (svn r9672) -Cleanup: lots of coding style fixes around operands. 17 years ago
rubidium 979ccd45ba (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {}; 18 years ago
rubidium 4169bfba06 (svn r9050) -Codechange: Foo(void) -> Foo() 18 years ago
rubidium 4b75a29766 (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. 18 years ago
celestar dfa3c0aae1 (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). 18 years ago
truelight c8c9c0c831 (svn r8674) [PSP] -Add: added network code for PSP, based on the work of Turulo
-Add: added general header-inclusing for PSP
18 years ago
rubidium 9d545a69c5 (svn r8673) -Codechange: use SetNonBlocking instead of implementing yet another version. 18 years ago
truelight bc5d3ef3b0 (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.
18 years ago
rubidium 2f249e650b (svn r8546) -Codechange: add a seperate (wrapper) functions to send/receive booleans. 18 years ago
rubidium 922a623402 (svn r8525) -Codechange: make NetworkSend_Packet(s) and NetworkRecv_Packet functions of NetworkTCPSocketHandler. 18 years ago
rubidium 105cd53868 (svn r8523) -Codechange: move all the Network(Recv|Send)_(uintXX|string) functions to Packet. 18 years ago
rubidium 51c2af6e5e (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. 18 years ago
KUDr 02f17406b1 (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'
18 years ago
rubidium 6787514d62 (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. 18 years ago
rubidium cd6a826ecf (svn r8459) -Codechange: move (Send|Recv)GRFIdentifier to NetworkSocketHandler, so it can also be used the TCP socket handler. 18 years ago
rubidium f78d463f07 (svn r8446) -Fix (8445): accidentally made a function that should not be abstract abstract. 18 years ago
rubidium 66f46b71a1 (svn r8445) -Cleanup: remove some @params from comments as the parameters did not exist anymore and add comments to several variables/functions. 18 years ago
rubidium 3e6bd9c2e9 (svn r8437) -Codechange: move often duplicated (in MSU) define to the udp header. 18 years ago
truelight ef37b30674 (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. 18 years ago
rubidium 89865658b1 (svn r8372) -Fix (8361): NUM_LANDSCAPE comes (via some detour) from openttd.h, which does not exist in the masterserver/updater. 18 years ago
rubidium daeadd9a0e (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
18 years ago
rubidium a93eb4b8d8 (svn r8316) -Codechange: move the GRF ID and MD5 checksum from GRFConfig to GRFIdentifier so it can be reused. 18 years ago
rubidium 98e462e564 (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. 18 years ago
rubidium cf01dc9b16 (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. 18 years ago
KUDr 28e969924b (svn r8066) - Codechange: MallocT(), CallocT(), ReallocT() now return the pointer to allocated memory instead of modifying the pointer given as parameter 18 years ago
rubidium a7d0cdf95f (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b. 18 years ago
KUDr 07c30785ab (svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp) 18 years ago
rubidium 13c922d8e4 (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. 18 years ago
rubidium acdeae8cc8 (svn r7932) -Fix (r7931): committed a few files too much :( (the ones I used to test the new masterserver) 18 years ago
rubidium 2a596e09f1 (svn r7931) -Fix (r7759): multiple (different) -O flags made compilations with the wrong optimisations. 18 years ago
rubidium 3f3af614a4 (svn r7888) -Change: add documentation about the 'on-the-wire' structure of the network game information request and reply packets. 18 years ago
truelight 82efaa7469 (svn r7882) -Fix: OS2 is defined as UNIX too, but not for networking 18 years ago
rubidium 5e4c157282 (svn r7847) -Codechange: use NetworkUDPClose instead of calling closesocket directly. 18 years ago
rubidium e534f747b5 (svn r7836) -Codechange: some constness for network/core. 18 years ago
rubidium 2a2020c34c (svn r7834) -Codechange: cleanup the includes of network/core a little; include headers in headers when the header needs types/constants defined in them. 18 years ago
rubidium 35b7e0a1b8 (svn r7833) -Fix (r7829): forgot to add debug.h to the includes. 18 years ago
rubidium 5e276359a4 (svn r7830) -Codechange: let NetworkCoreInitialize return a bool, so we have to set _network_available only once. 18 years ago
rubidium b722317116 (svn r7829) -Codechange: move the network (core) initialization/shutdown functions into network/core, so the can be reused in the masterserver_updater. 18 years ago
rubidium 72b2b15cbd (svn r7825) -Codechange: make NetworkUDPClose close a single UDP socket. Use NetworkUDPStop to close all opened udp sockets (those were called NetworkUDPClose). 18 years ago
rubidium 81235fc16b (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. 18 years ago
bjarni 9db571c6db (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
18 years ago
rubidium 013df98f79 (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.
18 years ago