Commit graph

216 commits

Author SHA1 Message Date
Zack Middleton
8234225459 Change more operator commands to require sv_running to be usable. Patch by Ensiform. 2012-11-01 06:03:15 +00:00
Zack Middleton
b82c02fc03 Don't replay to status OOB requests in Team Arena single player. 2012-08-16 21:38:02 +00:00
Thilo Schulz
a3c7003d9c prevent using getinfo as an amplifier for DDOS attacks (#5678). Patch by DevHC 2012-07-01 14:18:31 +00:00
Zack Middleton
afa607c3b6 Added kicknum, kickall, and kickbots commands, patch by Ensiform. 2012-06-19 15:52:08 +00:00
Zack Middleton
2a4f775d6c Fixed comment in server.h (ent->v.absmax to ent->r.absmax). 2012-06-18 22:25:35 +00:00
Zack Middleton
1d70ffc9b2 fix the usage description of the clientkick server command (also rename SV_KickNum_f() to SV_ClientKick_f())
found by Ensiform
2012-06-18 16:33:13 +00:00
Zack Middleton
997615168a fix some typos
From /dev/humancontroller.
2012-06-18 16:25:13 +00:00
Zack Middleton
a4c61d874d add a missing '\n', remove some unwanted ones
From /dev/humancontroller.
2012-06-18 16:16:57 +00:00
Zack Middleton
ce3ec3ceef #5453 - Tell command for server. 2012-04-05 22:43:32 +00:00
Thilo Schulz
3241ca6e7b Add the new ioquake3 master server as standard for sv_master2 2012-01-24 23:42:16 +00:00
Thilo Schulz
f9cde509b2 [18:48:20] <Ensiform> Thilo: http://pastebin.com/2UUmSCQK fixes point contents on the server side related to the cg fix with moving water. Dunno why s.origin and s.angles was ever used, the rest of sv_world.c always uses r.currentOrigin and r.currentAngles
[18:58:10] <Thilo> mhm
[18:58:15] <Thilo> Ensiform: it doesnt break anything?
[18:59:20] <Ensiform> nah
2011-10-14 17:03:59 +00:00
Thilo Schulz
7eba074ce4 Allow VM_Restart to load unpure qagame.qvm so that local server won't crash after map_restart if server operator has qagame.qvm residing outside pak file (#5196)
Thanks to "rg3" for providing a shell account
2011-09-27 22:16:07 +00:00
Zack Middleton
d9b72dedc1 Require gamename if not supporting legacy protocol. 2011-09-07 19:38:19 +00:00
Thilo Schulz
ba385fa43c - Switch master server protocol to dpmaster for better game separation. Based partly on patch by Zack Middleton
- Get rid of ugly cvars sv_heartbeat and cl_gamename and replace with single com_gamename
- Remove sv_flatline. Flatlines are ignored by dpmaster and are considered to be insecure because flatlines can be udp-spoofed.
2011-07-29 13:46:50 +00:00
Thilo Schulz
23f6fd1633 Bug 5094 - Code cleanup, patch by Zack Middleton and DevHC. Fixes unused-but-set gcc warnings 2011-07-29 12:27:00 +00:00
Thilo Schulz
2349148cf1 - Apply parts of Ben Millwood's target bitfield patch (#3787)
- Fix Ryan's FIXME and have voip packet buffer on the server dynamically allocated via Z_Malloc and store pointers in a circular buffer
- Improve voip target parsing on top of Ben Millwood's patch
- Add new "spatial" target where speaker is spatialized in 3d space and can be heard by all clients in hearing range (s_alMaxDistance)
  (#4467)
- Decrease voip sound lengths from 240ms to 80ms per voip packet to mitigate udp packet loss and decrease latency
- Protocol version incremented to 71
2011-07-27 15:47:29 +00:00
Thilo Schulz
9dc32d55e2 Bug 4812 - GCC __attribute__ annotations for printf, non-returning functions etc., patch by linux@youmustbejoking.demon.co.uk and Zack Middleton 2011-07-18 14:56:57 +00:00
Thilo Schulz
69a7ada911 Fix delta compression breaking due to packet queuing 2011-07-18 14:23:54 +00:00
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