Guangcong Luo
6e52b9a01d
Fix bug reported by Beau - NetPlay.playercount could be decremented in situations where it should not, and underflow.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7855 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:32 +02:00
Christian Ohm
bd85f32ba5
Prevent possible out-of-bounds access when out of sockets in NETallowJoining.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7854 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:32 +02:00
Christian Ohm
d70c4a8de2
Initialize some possibly uninitalized variables to make optimized debug builds
...
easier.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7853 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:32 +02:00
Guangcong Luo
89bdf5d8cc
Apply patch #716 - make exceptionhandler.c C90-compliant - patch by stiv.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7850 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:31 +02:00
Guangcong Luo
924ef17242
Fix bug #713 : Can't compile.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7848 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:31 +02:00
Guangcong Luo
76ee950a03
Fix bug #711 - didn't compile
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7843 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:30 +02:00
Guangcong Luo
d5dfdc17e0
Fix bug #691 : Cannot display more than one game from lobby. Also fix a lobby display issue that I thought I already fixed.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7840 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:30 +02:00
Per Inge Mathisen
75026a21ee
Fix bad use of variable inside a debug message. Noticed by cybersphinx.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7838 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:30 +02:00
Per Inge Mathisen
11335e28a9
Add assert-or-return workarounds for some crashes reported by zydonk on the forums.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7835 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:30 +02:00
Per Inge Mathisen
b86f0f85cc
Improve documentation of PLAYER.allocated field. Improve asserts for indexing into some player methods.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7826 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:27 +02:00
Per Inge Mathisen
edcc7f79a8
Fix erronous description of ASSERT_OR_RETURN.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7821 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:27 +02:00
Per Inge Mathisen
4966ae5c6a
Fix compile failure on MSVC. Patch by stiv, reported by i-NoD. Closes ticket:662.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7818 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:27 +02:00
Per Inge Mathisen
4d33f6a51d
Add new function to output grayscale PNG images. Needed for ticket:652 net map/savegame format.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7817 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:26 +02:00
Freddie Witherden
54f3d2e9b8
Get Mesa offf of my lawn. Update the Xcode project.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7789 4a71c877-e1ca-e34f-864e-861f7616d084
2009-09-27 19:06:24 +02:00
Buginator
69dfc7fc36
Change some LOG_ERROR(s) to info (LOG_INFO), since they are not really errors. As you may recall, info() displays in both debug & release builds.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7744 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-16 22:28:35 +02:00
Buginator
c349a34865
Add a timestamp to addDumpInfo().
...
Remove the separator bars in the report file
We now log, map name (for SP/MP), the language that is read from the config file, and if they are using a cheat.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7743 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-16 22:28:35 +02:00
Buginator
27bdf48197
slight cleanup of r7738
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7739 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-16 22:28:35 +02:00
Buginator
1ccb1487de
Create a new function, addDumpInfo(), to be used to add custom information to the crash dump report file.
...
Currently, we query openAL & openGL vendor/version info.
This should give us more descriptive crash reports on the user's hardware.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7738 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-16 22:28:34 +02:00
Buginator
11ab9125ad
Add new macro, info(), it is shorthand for debug(LOG_INFO,...). This is used to *always* display informational messages on both debug & release builds.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7734 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-16 22:28:34 +02:00
Buginator
79a8dbf4f4
Add #define NET_TIMEOUT_DELAY 2500 to allow for easier changing of the constant.
...
No real code changes.
closes ticket:613
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7719 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-16 22:28:32 +02:00
Per Inge Mathisen
d93e1751c0
Add new utility function PHYSFS_printf() to easily write text files with PhysicsFS.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7704 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-09 23:44:28 +02:00
Christian Ohm
1dd96730f4
Fix the "Mesa" string that was wrong for testing.
...
Actually fixes #608 .
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7695 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-09 23:44:26 +02:00
Christian Ohm
b9b1a4bac7
Move the "Mesa hack" from GLee.c into screen.c:screenInitialise()
...
There we can check the GL_RENDERER string for more fine control. Currently it
is enabled when the string starts with "Mesa", so it doesn't affect any other
drivers. It might need more checks if new Mesa versions break this.
Fixes #608 .
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7694 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-09 23:44:26 +02:00
Buginator
51a28557b9
Make sure pointer is valid before attempting to remove it from the list.
...
Remove more useless abort()s.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7688 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-09 23:44:24 +02:00
Buginator
5a8cab42d9
Bump up timeout period to 2500ms from 1000ms for dial-up modem users.
...
Fixes ticket:543
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7687 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-09 23:44:24 +02:00
Buginator
70ebec41b0
Fix compile issue
...
Thanks to stiv for the report.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7679 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-09 23:44:18 +02:00
Buginator
cdbe56c1c5
Merge netplay (anti-dpid) branch to trunk.
...
netplay branch ceases to exists anymore.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7678 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-09 23:44:17 +02:00
Per Inge Mathisen
8c16a47ef0
Fix broken sources after 'make clean' in tarball generated by 'make dist'. Reported by 'JimPansen' in the forums.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7671 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-09 23:44:11 +02:00
Buginator
cbe998956a
Slight cleanup of glOrtho parameters that should be double floats.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7660 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-05 16:21:06 +02:00
Buginator
bff6a7c84e
Change texLoad to a bool function, to correctly handle tertiles that are of the wrong depth.
...
This is in response to refs ticket:578 where the wrong tertile depth is used on some tiles, causing GL drivers to crash.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7658 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-05 16:21:06 +02:00
Guangcong Luo
d6e036a25d
Fix compile error.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7651 4a71c877-e1ca-e34f-864e-861f7616d084
2009-06-05 16:21:05 +02:00
Buginator
2fd30d2818
The hack from r7341 seems to break Mac OS X compiles.
...
Added #if guards around the hack.
Thanks to Vermithrax for the heads up.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7593 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-30 19:24:49 +02:00
Giel van Schijndel
452c507de1
Networking:
...
* Only clean up the IPv4 socket if we are able to enable IPv4 mapping of IPv6 addresses ''and'' are able to create an IPv6 socket
* Add some more debug messages to be able to see what sockets could be created
* Close sockets when they've become useless/invalid
This should fix #534 for real (unlike r7541, which fixed it and then reintroduced another bug causing the same symptom).
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7543 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:31 +02:00
Giel van Schijndel
c2f8273762
Make setting up of the IPv4 and IPv6 sockets indepent:
...
* Allow failure for setting up of one of the sockets
- More accurately: require only one socket to succeed
* Try to use the IPv4 to IPv6 mapping feature if the host OS provides it
- This allows us to use only a single socket on those systems for both listening to IPv4 and IPv6
This should fix #534 .
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7541 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:30 +02:00
Giel van Schijndel
7e6afc09cb
#include all required headers (<netinet/in.h> for sockaddr_in and sockaddr_in6)
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7540 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:30 +02:00
Giel van Schijndel
1b11d622f1
Exceptionhandler: Remove signal descriptions for signals that are either non fatal or simply not handled by our signal handler
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7539 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:29 +02:00
Giel van Schijndel
7bb1474692
FreeBSD #defines alloca() in <stdlib.h>, not <alloc.h> (that's a Linux/glibc thing), so make the #included file platform dependent
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7538 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:29 +02:00
Giel van Schijndel
9182f1161b
Make the fact that we're stripping NUL chars more explicit (see r7437)
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7496 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:23 +02:00
Buginator
bebb4e773a
set the volume of the FMV based on the user's preferences
...
fixes ticket:526
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7490 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:23 +02:00
Buginator
8a87d1985e
Fix strlcpy() & strlcat() to use ASSERT_OR_RETURN
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7478 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:21 +02:00
Buginator
9a3f1046be
Fix windows crash dump report, by returning back a c_str() instead of a string.
...
Fixes ticket:519
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7476 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-28 09:59:21 +02:00
Per Inge Mathisen
fb980b636c
Ease up on the volume of repeat testing done on the audio code.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7407 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-15 22:29:32 +02:00
Giel van Schijndel
52c8ba24e4
Revert accidentilly committed revisions r7394, r7395 and r7396 (part of a private branch)
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7398 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-15 22:29:31 +02:00
Giel van Schijndel
af40e39f77
Move construction/allocation code for JSON structures to json_value.[ch]
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7396 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-15 22:29:30 +02:00
Giel van Schijndel
ef5a01eeb9
Add a JSON tokenizer (lexer), parser and serializer
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7395 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-15 22:29:30 +02:00
Giel van Schijndel
aaa1efe4bb
Add a function for UTF-8 encoding
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7394 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-15 22:29:30 +02:00
Buginator
1855990fa8
Change non-fatal debug messages in the sound code from LOG_ERROR to LOG_WARNING instead.
...
fixes ticket:427
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7382 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-10 19:18:13 +02:00
Buginator
b60b1ad10b
Fix prototype to match function's definition.
...
(was missing a const)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7381 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-10 19:18:13 +02:00
Giel van Schijndel
3e5254af26
Only (attempt to) disable IPV6_V6ONLY on systems where it's #defined
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7378 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-10 19:18:11 +02:00
Giel van Schijndel
3dfb215c8b
Add IPv6 support to the lobby protocol
...
* Add a new field: secondaryHosts, an array of two fallback hosts
- Canibalize the entire "misc" field and part of the "extra" field for this
- When connecting, first try the primary "host" field, then fall back to the hosts in secondaryHosts (in order)
* Add a new field: gameId, used on the lobby server to link multiple lobby connections to a single game entry
- First (attempt to) connect to the lobby with all available address families (currently IPv4 and IPv6)
- Then ask for a gameId from the lobby server using the first established lobby connection
- Set the gameId field in the GAMESTRUCT to the one retrieved
- Transmit the GAMESTRUCT using a "addg" command to the lobby over each lobby connection
- The lobby then compares all incoming ID numbers with ID numbers already present
- If there's a match it will use the GAMESTRUCT already present and only add a new hostname to the list
This is the last change, part of, and closes #452
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7364 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-09 23:29:55 +02:00
Giel van Schijndel
3b80e3a63c
Add client side IPv6 support
...
* Properly format IPv6 addresses (so that parsing later on will work again)
* Resolve names to all address families, not just IPv4
Addresses #452
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7363 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-09 23:29:54 +02:00
Giel van Schijndel
4a90601536
Add partial server side IPv6 support
...
Implement a "dual stack", i.e. listen on both IPv4 and IPv6 addresses.
This change doesn't affect the socket API itself.
Addresses #452
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7362 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-09 23:29:54 +02:00
Giel van Schijndel
6739e6aa20
When drawing formatted text treat *real* newline characters ('\n') as newlines as well
...
- Not just the special formatting character '@'
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7346 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:42 +02:00
Giel van Schijndel
6fdc07b3f9
For the purpose of error messages set the error to ECONNRESET when we got disconnected while doing a readAll()
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7345 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:42 +02:00
Buginator
3042114be5
Work around for drivers that report VBO, but don't have full openGL 1.5 implementation.
...
This is the case for the current radeon open source drivers, and possibly others.
Patch by: suokko (Pauli Nieminen)
see: http://developer.wz2100.net/ticket/216
reference ticket:216
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7341 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:41 +02:00
Buginator
b9aea91c74
Move 'server_not_there' to a more correct location.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7333 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:40 +02:00
Buginator
e26ca45678
When we get a error in readLobbyResponse(), we need to put a stop to hitting the server, since this will cause massive slowdowns.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7330 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:40 +02:00
Giel van Schijndel
d02f591709
Lobby protocol; change the way the "addg" command works:
...
* Make the "addg" command return a status code (ranging 200-299 on success) and message (MOTD on succes)
* Don't use the "motd" command anymore to check the lobby status, instead use the returned status code for that purpose.
* Allow MOTD strings of arbitrary length (by sending along the length)
This modification ensures that ''proper'' connectivity checking is being performed on the game server (and reported to the user accurately).
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7323 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:40 +02:00
Per Inge Mathisen
870c18b66d
Make sure game time variables are properly initialized first time we refer to them. Detected by valgrind.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7318 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:39 +02:00
Buginator
967b1bcb74
Reset version string back to "trunk", accidentally changed in r7079.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7315 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:39 +02:00
Giel van Schijndel
38cfef4e6d
Make sure to #undef the errno Exxxx symbols on Windows to prevent collision with the predefined ones by MinGW
...
Also lets :sort the Exxxx #define list
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7308 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:38 +02:00
Buginator
7e1a1d714c
Slight fixes for the BSD socket overhaul to make it compile OK on MSVC again.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7307 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:38 +02:00
Giel van Schijndel
9fa9402919
Work around MSVC's weak & stinky preprocessor:
...
* Duplicate the entire ASSERT() call instead of conditionally expanding its parameter
- Depending on whether we are or are not compiling on Windows
Thanks go to Buginator for reporting this.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7306 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:38 +02:00
Giel van Schijndel
fcf40c7eb2
For incoming connections print the address from which the connection originates.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7303 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:38 +02:00
Giel van Schijndel
a3cbe4c0c3
Use a single function for address to text translation (instead of duplicating code)
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7302 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:37 +02:00
Giel van Schijndel
dc70524cd2
Take advantage of SocketAccept's non-blocking nature
...
Just go ahead and try to accept incoming connections without waiting for
a notification that connections are pending.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7301 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:37 +02:00
Giel van Schijndel
63b6d37a94
Make SocketAccept non-blocking
...
This way it is no longer required to first explicitly check whether
connections are pending (through checkSockets, which select(2)s) and
only then accept(2) it. Now you can attempt to accept the connection,
and if one is available it'll get returned, NULL otherwise.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7300 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:37 +02:00
Giel van Schijndel
36f536fcdb
Check for EAGAIN as well to confirm connect(2) has started
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7299 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:37 +02:00
Giel van Schijndel
73a29daefd
* Use camelCase instead of CamelCase and under_squores (as requested by Per, see #435 )
...
* Rename read_all to readNoInt because that function is a read(2) variant that doesn't get interrupted by signals (EINTR)
* Add Doxygen comments to readNoInt and writeAll
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7298 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:37 +02:00
Giel van Schijndel
a8f8357904
Mark the server socket as not-ready when we've just accept(2)ed on it
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7296 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:36 +02:00
Giel van Schijndel
99c1ed95e8
Always use SocketClose to clean up sockets
...
Additionally make SocketClose work properly on Windows as well.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7295 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:36 +02:00
Giel van Schijndel
0bc6be39b1
Fix logic in handling return value of addSocket
...
When a socket set is full (in addSocket) print a debug message
This is the last change, part of, and closes #435
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7294 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:36 +02:00
Giel van Schijndel
ba9d49acd5
Get rid of duplicated code
...
Addresses #435
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7293 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:36 +02:00
Giel van Schijndel
ab6b694420
Bugfix: set SOCKET_ERROR to -1 to *correctly* check for errors
...
Addresses #435
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7292 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:36 +02:00
Giel van Schijndel
a9070e60a9
For non-blocking sockets lets not block on read_all()
...
Addresses #435
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7291 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:36 +02:00
Giel van Schijndel
37d3b9535f
Replace -1 for socket API errors with SOCKET_ERROR
...
Additionaly, on Unix systems define constants SOCKET_ERROR and INVALID_SOCKET to -1
Addresses #435
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7290 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:36 +02:00
Giel van Schijndel
f412eb5a6f
Port NetPlay's BSD socket usage to Windows
...
* Use the "SOCKET" typedef to represent socket descriptors (instead of "int")
* Add wrapper functions for getting & setting the last socket error ("errno" on Unix)
* Add a wrapper function for strerror, strsockerror, that works on Windows
* Use recv(2) and send(2) instead of read(2) and write(2) respectively
* Use INVALID_SOCKET and SOCKET_ERROR instead of -1 to find errors
* Move setting of sockets to blocking/non-blocking to a separate function
* Add Windows-specific wrapper functions for getaddrinfo() and freeaddrinfo()
- Currently work only from 2000 *or* XP upwards, documentation is fuzzy.
Addresses #435
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7289 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:35 +02:00
Giel van Schijndel
ae878a7880
Change write_all such that it will always return "size" or -1 (error)
...
* Check for write_all() == -1 (error) instead of "< 0" and "!= size" to
see whether sending has failed.
* Don't just mark sockets as "invalid" on error (by setting them to
NULL), close them as well.
* Give decent error messages on write failure (most likely a disconnect)
Addresses #435
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7288 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:35 +02:00
Giel van Schijndel
61e0a18a6a
Pass the Socket* structure to read_all and write_all instead of a plain file descriptor
...
This way it becomes possible to modify a socket's state when
reading/writing.
Addresses #435
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7287 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:35 +02:00
Giel van Schijndel
939f4902ad
Replace SDL-net by using BSD sockets instead
...
NOTE: Still needs some checking and work for Windoze compatibility.
Addresses #435
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7286 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:35 +02:00
Giel van Schijndel
8e57c65386
Use "struct timeval" from winsock2.h instead of our own
...
On Windows <sys/time.h> doesn't exist (MinGW being an exception) and
"struct timeval" is thus defined in winsock2.h.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7285 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:35 +02:00
Giel van Schijndel
7297008ed5
Fix spelling error: rename "ERROR_WRONGVESION" to "ERROR_WRONGVERSION"
...
Thanks to Kreuvf for noting the mistake.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7275 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:33 +02:00
Giel van Schijndel
47bbacc7bb
Bugfix: NUL terminate the MOTD string buffer
...
If registering with the lobby server failed once, we don't want part of
the failure message to be kept at the end of the MOTD string.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7270 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:33 +02:00
Freddie Witherden
d0fec57acf
Minor indentation/spelling fixes in patternManager.[ch].
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7263 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:32 +02:00
Per Inge Mathisen
7bea80efd3
Please use setDroidActionTarget() whenever you change psActionTarget. This helps set dangling pointer debugging information.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7262 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:32 +02:00
Giel van Schijndel
e4f82dc1e5
Disconnect immediately when we've handled the client's request (or concluded it to be invalid)
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7256 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:31 +02:00
Giel van Schijndel
dd66b9fe33
Fix a bug where we would check the wrong socket for readiness
...
- Would occur when processing a "list" command on the game server
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7255 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:31 +02:00
Giel van Schijndel
4a3b92bd4b
Document the purpose of the different sets of sockets
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7254 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:31 +02:00
Per Inge Mathisen
73ea6f197e
Remove unused functions from text drawing code.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7253 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:31 +02:00
Per Inge Mathisen
b8d3c62005
Remove last of the useless statics from text drawing code.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7252 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:31 +02:00
Per Inge Mathisen
e5006affb7
Remove useless and unused statics from text drawing code.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7251 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:31 +02:00
Buginator
1f9e48ba86
Fixes compile issue that was broken in r7237.
...
In this case, 'Remove unnecessary SDL includes.' Removed the #include for C99 types that we use on non C99 compilers.
In case your wondering, using SDL_stdinc.h, since SDL_types.h is Deprecated.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7250 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:30 +02:00
Giel van Schijndel
f6b3c04c8c
Backport r7244 into trunk from the 2.2 branch
...
Move GAMESTRUCT_VERSION to the top of GAMESTRUCT, thus allowing versioning to work properly at all times
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7246 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:30 +02:00
Per Inge Mathisen
a9b8a20aa5
Make focusState a static to main.c, instead of a global from frame.c
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7240 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:30 +02:00
Giel van Schijndel
e16e034ec7
Use 40 bytes for the "host" (IP address) in GAMESTRUCT, this allows for using IPv6 without breaking protocol combatility again
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7239 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:30 +02:00
Per Inge Mathisen
29a2b2fe35
Change SDL types to stdint.h defined types. Do not depend on SDL.h included system headers.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7238 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:30 +02:00
Per Inge Mathisen
8a0a0af7c0
Remove unnecessary SDL includes.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7237 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 22:29:29 +02:00
Giel van Schijndel
7db243a59e
Lets correctly indicate in our error message which TCP ports should be open (instead of hardcoding the message and getting it wrong)
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7222 4a71c877-e1ca-e34f-864e-861f7616d084
2009-05-06 20:52:19 +02:00
Buginator
2dc8626d75
whoops! :o I applied the wrong patch.
...
Reverting.
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7204 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 21:30:41 +02:00
Buginator
8a11947b31
Let's only send the map to the person that needs the map.
...
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7178 4a71c877-e1ca-e34f-864e-861f7616d084
2009-04-27 12:46:39 +02:00