Thilo Schulz
8a831d34ab
Fix legacy protocol with new packet queueing
2011-07-17 23:43:33 +00:00
Thilo Schulz
4c5e9963e3
Fix compile for USE_VOIP=0
2011-07-16 11:14:20 +00:00
Thilo Schulz
e6ba500164
Move rate limiting / queued packet sending logic from Com_Frame() to sv_main.c
2011-07-15 16:51:54 +00:00
Thilo Schulz
58a5d3d383
Have server send protocol version in challengeResponse so protocol negotiation works. (Where did this one get lost?)
2011-07-15 14:49:51 +00:00
Thilo Schulz
f6d6ed4b30
- Revert back to Z_Malloc from Hunk_FreeTempMemory introduced in r2077 as Hunk_FreeTempMemory must be freed in LIFO order ( #5079 )
...
- Introduce SV_ClientFree() to prevent memory leaks r2077 was supposed to fix
2011-07-15 14:44:06 +00:00
Thilo Schulz
d827447da8
- Forgot to mention: last rev (2077) bumped default protocol version to 70
...
- Fix queued packet rate control
2011-07-13 18:37:26 +00:00
Thilo Schulz
ac30d86db0
- Improve snapshot rate and data rate control
...
- Make server send packet fragments and queued packets when server is idle
- Voip protocol detection is tied to com_protocol making past-end-of-message reading unncessary
- Use Hunk_AllocateTempMemory() for buffering VOIP packets and fix buffering scheme that ryan hates so much
- Disable packet scrambling for new protocol as it is useless now
- Get rid of the old packet scrambling functions predating latest point release
- Use Hunk_AllocateTempMemory() for netchan packet queue to fix memory leak when client gets disconnected with packets in the queue
- Use Hunk_AllocateTempMemory() for download blocks to fix memory leak when client gets disconnected with download blocks in the queue
- Fix SV_RateMsec to account for udp/udp6 packet lengths
2011-07-13 17:11:30 +00:00
Thilo Schulz
e06c117e9e
- Implement dual protocol support ( #4962 )
...
- Fix several UDP spoofing security issues
2011-07-12 11:59:48 +00:00
Thilo Schulz
e52a492f61
- Greatly improve UDP downloading speed for clients
...
- Add download rate control cvar sv_dlRate
- Don't send snapshots to downloading clients
2011-07-12 11:01:20 +00:00
Thilo Schulz
74e538ffcf
- Add better protection against DoSing connecting users from connecting
...
- Have Com_sprintf return string length
- add STR_LEN macro for static strings
2011-07-07 16:07:58 +00:00
Thilo Schulz
dee3724a13
- Improve game_restart:
...
* differing screen resolutions and network settings are now honoured when changing fs_game
* Fix hunk memory leak on game_restart
* Move cls.state and cls.servername to clc so connection state is fully preserved over game_restart
* Revert back to previous fs_game after disconnecting from a server that triggered a game_restart
* Fix error dialog popping up after every game_restart if an error happened previously (reported by Ensiform)
- Fixed that not all commands added by CL_Init() would be removed by CL_Shutdown()
2011-06-21 11:18:35 +00:00
Thilo Schulz
03201aff22
- Add MASM assembler files for MSVC x64 projects to support vm_x86 in x64 mode
...
- Clean up ftol()/snapvector() mess
- Make use of SSE instructions for ftol()/snapvector() if available
- move ftol/snapvector pure assembler to inline assembler, this will add x86_64 and improve support for different calling conventions
- Set FPU control word at program startup to get consistent behaviour on all platforms
2011-06-13 09:56:39 +00:00
Thilo Schulz
f5deb4a88b
Fix return values for several syscall functions, patch by Zack Middleton ( #5018 )
2011-06-06 15:08:00 +00:00
Thilo Schulz
e676b41c8f
Fix wrong usage info message for cmd dumpuser, patch by Zack Middleton ( #5024 )
2011-06-06 14:54:18 +00:00
Thilo Schulz
b509d770a7
- Remove Q_strrchr(), replace with standard, portable strrchr()
...
- Add strrchr() to bg_lib.c, patch by DevHC
2011-05-15 14:08:03 +00:00
Thilo Schulz
c95bd0a684
Remove newlines from Com_Error message format strings, patch by DevHC
2011-05-12 14:02:48 +00:00
Thilo Schulz
a9696d3558
Refactoring patch by DevHC
2011-05-11 14:21:27 +00:00
Thilo Schulz
876fd7dcb9
- Add HOMEPATH default name define to q_shared.c, patch by uZu ( #4973 )
...
- Reverted change from (#4972 ) and implemented the other suggestion to be consistent with cl_cgame.c and cl_ui.c
2011-05-04 15:39:35 +00:00
Thilo Schulz
1062c1b87b
Do use the SV_Game{Error,Print} functions ( #4972 )
2011-05-04 14:51:56 +00:00
Thilo Schulz
50721a6580
Remove sv_strictAuth cvar for STANDALONE games
2011-05-02 15:58:56 +00:00
Thilo Schulz
d34c6b7e0b
Revert protocol 69 pending further discussion ( #4962 )
2011-04-27 20:17:45 +00:00
Thilo Schulz
a5580d8974
- Harden the client and server protocol against UDP spoofing attacks. This will defend ioquake3 against http://aluigi.altervista.org/papers/q3noclient.txt ( #3041 )
...
- Retains full compatibility to the old but unsecure protocol between clients and servers
- Harden the connection process against DoS attacks, possibly connected to UDP spoofing
2011-04-27 16:03:35 +00:00
Thilo Schulz
8c3f320504
( #3767 ) Some protection from malicious qvms - patches and ideas by Amanieu d'Antras and Ben Millwood
2011-03-08 01:39:34 +00:00
Thilo Schulz
0a6f873999
Add g_humansplayers (found by server) and g_needpass (cvar) to serverinfo ( #4702 )
2011-03-07 23:12:16 +00:00
Thilo Schulz
fef4d12d68
Refactoring patch by DevHC
2011-03-05 19:20:37 +00:00
Thilo Schulz
21668c0616
Fix systeminfo command, fix by DevHC
2011-03-05 19:11:56 +00:00
Thilo Schulz
0387b8002e
Add cvar "protocol" so user can change protocol version on command line, for standalone games. Most of the patch by Simon McVittie with a few minor modifications by myself
2011-03-05 19:10:23 +00:00
Tim Angus
ab9b08e584
* Fix Sys_Milliseconds wrapping causing the flood protection code to
...
malfunction and block all traffic (reported by bubu^)
2011-02-18 23:46:02 +00:00
Thilo Schulz
8bb9a261bd
Auto complete demos on not in pk3s while in pure servers. Patch by Zack Middleton ( #4794 )
2011-02-11 14:30:55 +00:00
Thilo Schulz
91d1a6aab4
OMGWHATISTHISSHITIDONTEVENKNOW
2011-02-10 23:16:14 +00:00
Thilo Schulz
614f315ce8
Fix console tab autocomplete for exec and condump on pure servers, patch by Zack Middleton
2011-02-10 19:58:20 +00:00
Thilo Schulz
ba19fe1152
Still not compiling when STANDALONE is set
2011-02-08 20:24:41 +00:00
Thilo Schulz
7efcc91265
fix compiling error when in standalone mode
2011-02-08 20:21:37 +00:00
Thilo Schulz
ecbe1ab9fd
Thanks Simon McVittie for fixing the bug regression in https://bugzilla.icculus.org/show_bug.cgi?id=4629
2011-02-04 15:11:57 +00:00
Thilo Schulz
67a8b273c2
- Add cvars cl_gamename, sv_heartbeat, sv_flatline so standalone games can customise their messages to the master server
2011-02-04 13:25:51 +00:00
Thilo Schulz
0eb5d1720c
Fix banfile writing to wrong game directory
2011-02-04 12:34:11 +00:00
Thilo Schulz
3148416c04
- Change runtime standalone detection:
...
* com_standalone now read-only
* add new cvars com_basegame, com_homepath
* standalone now automatically detected when com_basegame is set to something different than baseq3 and no id pak pk3s are found
* This fixes https://bugzilla.icculus.org/show_bug.cgi?id=4699
- Replace a few hardcoded string literals with macros
- Add checks for Team Arena PK3s to FS_CheckPak0()
2011-02-04 12:04:56 +00:00
Thilo Schulz
e5dbce839a
- Use select() to sleep when idle as opposed to busy waiting.
...
- Introduce com_busyWait cvar to go back to old behaviour
2011-02-02 16:46:23 +00:00
Thilo Schulz
f725b23c4f
Fix floating point imprecision causing glitches in snapshot sending
2011-01-29 22:01:55 +00:00
Thilo Schulz
de0e3cba34
Fix hanging client when map_restart executed on the server while client is still loading the map
2011-01-27 16:40:15 +00:00
Thilo Schulz
b179fb087c
Make sure status reply always has at least one space between address and qport, important for ipv6 addresses.
2011-01-25 15:16:50 +00:00
Thilo Schulz
5c0ae99642
Make number of supported master servers tunable via define
2011-01-25 02:04:25 +00:00
Thilo Schulz
bf07014b1d
Make this change so standalone developers will know to change the HEARTBEAT game string for their versions, too.
2011-01-24 18:09:20 +00:00
Thilo Schulz
8243a77c0e
Revert changes because dpmaster doesn't work that way.
2011-01-24 01:24:07 +00:00
Thilo Schulz
7861cde4a2
Make it use the correct game name in getserversExt queries
2011-01-24 00:21:33 +00:00
Zachary Slater
df758ba6c2
Bugzilla #4629
...
commands sent to client when disconnecte
2010-10-25 06:43:55 +00:00
Thilo Schulz
5fe2a61910
Second batch of bug fixes reported and patched by Zack "ZTurtleMan" Middleton:
...
#4740
#4741
#4742
#4743
#4744
2010-08-29 18:08:29 +00:00
Ludwig Nussel
1434fd1845
fix typo
2010-06-21 07:11:52 +00:00
Tim Angus
fc05ba7f46
* Fix some compiler warnings
2010-01-03 22:37:14 +00:00
Tim Angus
4056c90358
* Rate limit getstatus and rcon connectionless requests
2010-01-03 22:12:20 +00:00
Tim Angus
37598962f5
* Actually that can be more precise...
2009-10-16 19:21:31 +00:00
Tim Angus
b539a87e72
* (bug #4232 ) Avoid "cl.snap.serverTime < cl.oldFrameServerTime" for slow
...
loading clients combined with short g_warmups
2009-10-15 23:39:19 +00:00
Thilo Schulz
186f30a74f
Fix netcode inconsistency, thanks to /dev/humancontroller for the patch, see http://bugzilla.icculus.org/show_bug.cgi?id=4060
2009-10-12 17:17:15 +00:00
Thilo Schulz
9b7543a905
Fix circumventing sv_maxping restriction, thanks to Amanieu for reporting. http://bugzilla.icculus.org/show_bug.cgi?id=3423
2009-10-08 20:03:25 +00:00
Tim Angus
5c62c95c64
* Fix incorrect comment
2009-10-05 22:07:01 +00:00
Thilo Schulz
5fec4498f1
Add received rcon command string to server log, see https://bugzilla.icculus.org/show_bug.cgi?id=3748
2009-09-17 16:54:01 +00:00
Ryan C. Gordon
d56a093317
Removed more unused variables.
...
Partially fixes Bugzilla #3782 .
2009-09-15 03:19:43 +00:00
Ryan C. Gordon
815026072a
Removed unused variables.
...
CM_LeadArea() has no side effects, so those could go, too.
Partially fixes Bugzilla #3782 .
2009-09-15 02:58:38 +00:00
Ryan C. Gordon
8d0f212521
When dropping bots, don't move to CS_ZOMBIE. Go straight to CS_FREE.
...
They aren't a real network connection, so you don't want to waste time before
opening the slot for humans.
Fixes Bugzilla #4243 .
2009-09-15 01:11:09 +00:00
Ryan C. Gordon
df13db2b64
Fixed triggering Com_Error() when kicking a large number of bots at once.
...
Fixes Bugzilla #3418 .
2009-09-14 23:12:54 +00:00
Thilo Schulz
948f7a6015
- fix typo in previous commit to net_ip.c
...
- Make servers send heartbeats to master servers in ipv4 as well as ipv6 if master server has both protocols
2009-06-23 00:59:47 +00:00
Thilo Schulz
18cc7c1ed3
Make servers echo challenge codes from client getchallenge commands
2009-06-01 05:28:47 +00:00
Thilo Schulz
4e8a181073
I'll retain the new way seeding the random number generator.. these calls are therefore redundant
2009-05-31 20:30:37 +00:00
Thilo Schulz
e4d0c14f70
Revert changes of rand() to random() as random() was redefined in quake3.
2009-05-31 20:24:10 +00:00
Thilo Schulz
b40f1507ea
- Introduce seeding of the random number generator at startup
...
- Replaced all engine-side occurances of rand() with random()
2009-05-31 19:48:28 +00:00
Thilo Schulz
0693f0c1b3
This could never have worked in the first place. Duh.
2009-05-28 07:52:09 +00:00
Thilo Schulz
50ca55702f
- Introduce new NET_CompareBaseAdrMask for easy comparison of ip address ranges
...
- Overhaul of the new banning functions:
* basic check for redundant bans/exceptions
* introduction of sv_banFile to make it possible to configure the file where to read bans and exceptions from
* bans can now be deleted by giving address ranges, too.
2009-05-24 16:58:08 +00:00
Thilo Schulz
f2d63c1633
More commentary to source code
2009-05-21 20:52:35 +00:00
Ludwig Nussel
10aca2387f
whitespace fixes
2009-05-08 09:50:52 +00:00
Ludwig Nussel
eff87e9524
SV_ReplacePendingServerCommands is unused
2009-05-08 09:48:49 +00:00
Ludwig Nussel
bbd9f02d08
mark functions static ( #4010 )
2009-05-08 09:48:45 +00:00
Ludwig Nussel
f0e24f9a46
msg->oob is actually qboolean ( #4010 )
2009-05-08 09:48:40 +00:00
Ludwig Nussel
ae612721a3
fix STANDALONE challengeResponse ( #4000 )
2009-03-02 17:29:51 +00:00
Ludwig Nussel
f5aae78481
security fix: prevent command injection via callvote
2009-01-17 23:09:58 +00:00
Ludwig Nussel
8536a42dd5
gamename is already a cvar with CVAR_SERVERINFO
...
do not set gamename to different values in getstatus and getinfo responses
2009-01-11 18:42:50 +00:00
Ludwig Nussel
c754d6fdfb
fix strict aliasing issues
...
Patch by Przemysław Iskra (#3805 )
2008-11-03 17:03:54 +00:00
Tim Angus
130c0c6575
* Move command argument completion from being hard coded to being associated
...
with the individual commands to be completed
2008-09-16 21:05:22 +00:00
Tim Angus
47ee177430
* Supply specific identifier to the master server (Mathieu Olivier)
2008-09-15 20:24:04 +00:00
Thilo Schulz
9dd887b2ea
- Add scope id to ipv6 addresses.
...
- Clean up a few other ipv6 issues like removing the seemingly unnecessary MacOSX workaround.
- Bring ipv6 master server up to speed for dpmaster
Thanks go out to Mathieu Olivier for this work.
2008-08-31 19:54:29 +00:00
Tim Angus
de8131938c
* Fix server info string voip setting
2008-07-08 16:23:06 +00:00
Tim Angus
37d664d4b2
* Rename voip cvar to cl_voip
...
* s/#if USE_VOIP/#ifdef USE_VOIP/
* Add generalised runtime cvar range checking, currently on [sv|cl]_voip,
dedicated and a bunch of r_ variables
2008-07-07 22:31:39 +00:00
Ryan C. Gordon
809c361744
Reverted svn revision #1410 to sv_init.c
...
sv_voip is a protocol version number, not a boolean, so this check is
reasonable and correct.
2008-07-06 20:07:43 +00:00
Tim Angus
6b572920a9
* Remove silly range check on sv_voip during initialisation
...
* Changed dedicated binary dedicated cvar to CVAR_INIT and remove runtime check
2008-07-06 01:35:01 +00:00
Tim Angus
7fe9a02d91
* In the dedicated binary, prevent setting dedicated cvar to 0
2008-07-06 01:00:00 +00:00
Tim Angus
2c0861c1ce
* (bug 3610) Server sending unnecessary newline with SV_ConSay_F (Tyler Schwend
...
<TylerSchwend@gmail.com>)
* (bug 3623) COMMAND is mapped to the ALT key (Matthias <Kapffer@macbay.de>)
* (bug 3665) Typo error in FS_FOpenFileByMode function (TsT <tst2006@gmail.com>)
* (bug 3669) Some files left out of Solaris Packages (Vincent Cojot
<vincent@cojot.name>)
* (bug 3680) server quit messages (Ben Millwood)
* (bug 3682) Maps with >1024 models cause a segfault (misantropia
<bnoordhuis@gmail.com>)
* (bug 3683) R_FindShader(): negative lightmap indexes cause stray pointers
(misantropia <bnoordhuis@gmail.com>)
* (bug 3688) q3asm potential segfault fix and other changes (TsT
<tst2006@gmail.com>)
* (bug 3695) Not allowing to write file with lib extention (.dll/.so/...) (TsT
<tst2006@gmail.com>)
* (bug 3696) make-macosx-ub.sh outdated by revision 1340; test for Tiger not
working (Matthias <Kapffer@macbay.de>)
* (bug 3698) #error reported as warning in q3cpp (and no #warning support)
(Ben Millwood)
* (bug 3703) restoring the valued pre-SDL window behaviour (/dev/humancontroller
<devhc97@gmail.com>)
2008-07-05 23:50:38 +00:00
Ryan C. Gordon
8ab3f7af8d
Changed the protocol for VoIP packets to support legacy clients.
...
Previously, a legacy client wouldn't get a VoIP packet, but if they did,
they'd panic and disconnect. Now they ignore them and continue on. This also
gives us the framework to add other features legacy clients can ignore.
Oh, this also has the benefit of allowing us to store incoming VoIP for
playback in recorded demos. They'll play the chatter on VoIP clients, and
be ignored on legacy ones. Huge win.
2008-06-03 02:32:52 +00:00
Ryan C. Gordon
0403ca2260
More VoIP work: treat voip/sv_voip cvars as protocol version numbers.
2008-06-02 19:52:13 +00:00
Ryan C. Gordon
1e4fa5a54c
Treat sv_voip cvar as a version number (0 == off, 1 == version 1 protocol).
...
Don't publish it to server's info string if set to zero.
2008-06-02 19:41:09 +00:00
Ryan C. Gordon
953e9ec287
sv_voip cvar should be latched.
2008-06-02 19:37:05 +00:00
Ryan C. Gordon
12326a9eac
Initial patch for in-game VoIP support!
2008-06-01 07:51:23 +00:00
Thilo Schulz
563eb9443b
One minor comment fix
2008-04-12 17:14:53 +00:00
Thilo Schulz
f8d8a1c2f7
- fix a potential file descriptor leak in server side of pak downloading
...
- add new functions for banning clients from server, in engine part. This will also make it possible to ban ipv6 addresses in old mods.
2008-04-12 17:00:18 +00:00
Thilo Schulz
9a8cc99a93
- Revamp in-game server browser: you can now scan for games on multiple master servers, while retaining compatibility with old QVMs.
...
- Make Master server reporting/server queries ipv6 capable.
2008-04-11 18:39:03 +00:00
Thilo Schulz
78a82bcba2
Add com_standalone cvar for at-runtime handling of mods that do not require the original quake3 game data.
2008-04-10 15:37:25 +00:00
Thilo Schulz
b3822d03e2
Include #ifdef to make it easier to create a stand-alone binary.
2008-04-09 23:43:30 +00:00
Thilo Schulz
eb3b59308b
Add Multicast capabilities for LAN server scanning.
2008-04-09 14:37:42 +00:00
Thilo Schulz
5d63a38ad9
Basic IPv6 support. Some inspiration from the patches by Lubos Dolezel and JF Tremblay at https://bugzilla.icculus.org/show_bug.cgi?id=2355 .
2008-04-04 23:22:22 +00:00
Thilo Schulz
bb47026b5f
- Replace vsprintf function in bg_lib.c with vsnprintf implementation started by Patrick Powell.
...
- Remove all calls to vsprintf in the engine and gamecode and replace them with calls to vsnprintf.
2008-03-25 21:36:09 +00:00
Tony J. White =
4c3b7def84
* send along the reason for disconnection when sending the disconnect
...
cmd to all clients in SV_FinalMessage()
* on Com_Error(), set the cvar "com_errorCode" with the errorParm_t integer
value for the error. This can be used by a mod's ui to an draw error
dialog specific for the error (e.g. Reconnect button on ERR_SERVERDISCONNECT)
2007-12-31 22:35:22 +00:00
Tim Angus
3f3e1a51a1
* (bug 3420) Don't respect sv_killserver unless a server is actually running
...
* (bug 3431) USERINFO cvars created in cg_main not getting sent (arQon)
2007-11-23 00:33:13 +00:00