r1ch.net forums
* Home Help Search Login Register
r1ch.net  |  r1ch.net stuff  |  R1Q2  |  Topic: R1Q2 Changelog
Pages: [1] 2 3 ... 6
Print
Author Topic: R1Q2 Changelog  (Read 214944 times)
R1CH
Administrator
Member

Posts: 2625



« on: September 22, 2004, 09:50:51 am »

Want to be notified via email of new R1Q2 releases? Click the 'notify' icon at the bottom of the thread.

Starting now I think I'll document any noteworthy changes in R1Q2. As always, to get the latest version run the R1Q2 Updater.

b1155
  • Fix Q2Admin erroneously thinking R1Q2 is a "client side proxy". This was caused by the FPS separation, depending on the FPS, multiple userinfo updates were merged into 1 so the server never saw that they individually went through. This caused the Q2Admin ratbot detector to trigger when it never saw the ratbot name detect test.

  • Made scr_conheight between 0 to 1 instead of 0 to 100. This fixes compatibility with configs from NoCheat as NC uses the latter format.

  • Don't spam speed cheat notices to listen servers.

  • Add warning message if you attempt to use a high cl_maxfps value. cl_maxfps higher than 30 is rarely needed so please try and keep it low to save bandwidth and CPU time for the server.

« Last Edit: April 24, 2006, 02:06:22 pm by R1CH » Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #1 on: September 23, 2004, 08:24:35 pm »

b1190
  • DirectInput mouse support - set m_directinput 1 followed by in_restart to activate.

  • cl_async, master cvar to control FPS separation. If set to 0, no FPS separation occurs and every rendered frame results in a packet to the server.

  • cl_instantpacket cvar, if set to 1 will immediately send a packet on important event such as weapon firing where waiting for the next packet frame could waste vital milliseconds. Use of this option will of course lead to unpredictable packets/sec. Only has effect is using FPS separation.

  • cl_smoothsteps cvar, allows you to turn off the smoothing out of movements up steps. Useful at low FPS when using FPS separation as it incorrectly marks some crates/ramps as steps (this will be fixed ASAP).

  • Default sv_fpsflood off (0).

  • [/list:u]
    Thanks to [j]`FragBait for suggestions that this build is focused upon.
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #2 on: October 03, 2004, 02:55:05 pm »

b1241
  • More DInput mouse handling improvements.

  • Fix rare SZ_GetSpace server crash due to incorrect netchan buffer size for non-R1Q2 clients.

  • Reworked how the Q2Admin workaround works so it doesn't interfere with use of the 'wait' command.

  • Other misc. stuff along the way

  • [/list:u]
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #3 on: October 10, 2004, 05:36:44 pm »

b1258
  • Implement linux download fix (how I overlooked this one I'll never know)...

  • Attempts to download illegal paths now get the user blocked from the server

  • Fix linux binary to support almost all gamei386.so files from various mods (no more segfaults with some luck!)

  • Misc things here and there as usual

  • Slipsteam fix (because I forgot to bump build number): Fix for some bots crashing the server if they joined before players.

  • [/list:u]
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #4 on: October 15, 2004, 07:48:23 am »

b1390
  • Two separate linux binaries to fix segfault issues.

  • Filesystem cache now implemented as a redblack binary search tree.

  • Calls to Pmove are faster (redundant code removed).

  • Fix rare SZ_GetSpace crash when R1Q2 clients built a zpacket that was exactly 5 bytes smaller than the buffer.

  • More of the imfamous misc changes.

  • New r1q2updater binary for linux.

  • [/list:u]
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #5 on: November 11, 2004, 06:39:18 pm »

b1621
  • Fix the 0x7F-in-string bug.

  • Allow server admins to block/unblock certain commands.

  • Further optimized filesystem cache.

  • Support reserved slots (scarcely tested)

  • Optional allow use of 'map' command from server console.

  • Optional allow commands from unconnected clients.

  • Finally fix all Q2Admin kick issues.

  • Ugly "fix" for the strafe jump bug at > 125 FPS values.

  • [/list:u]
    See the appropriate cvar and command threads for full details of how to use the new features.
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #6 on: November 16, 2004, 04:13:35 am »

b1788:
  • Client now defers loading of models when connecting. This will give faster connection times to servers that require an anti-bot reconnect at the expense of a little bit of stuttering immediately after joining.

  • Fix for a network bandwidth consumption attack on the server when dealing with "info" packet that could have the spoofed source address of another Q2 server, resulting in them constantly querying each other.

  • In addition to the above, ignore all packets from localhost that have the same source port as the server as a catch-all against spoofed 127.0.0.1 loops.

  • Removed 'cmd' connectionless command from client, I've yet to see anything that actually uses it plus it seemingly doesn't work from outside of Q2 anyway...

  • 0xFF now filtered from userinfo/stringcmds.

  • Laser beam transparency now matches Q2 3.2x default.

  • Teleporter particles returned to Q2 3.2x default.

  • Reverted stair detection / smoothing code to original.

  • Merged Win32/Linux common network functions to a single file.

  • Network functions now pass the address as a pointer instead of struct copying. This has been tested and seems to work OK, but since it's quite a major  change please look out for any network anomalies.

  • Added code to skip over cinematic sequences when not compiled in.

  • [/list:u]
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #7 on: November 22, 2004, 03:27:27 am »

b1873:
  • Fix high CPU usage issue on linux dedicated servers if stdin was closed during execution.

  • Fix clients getting kicked for "attempted command exploit" when using 0x7F (after further testing, the client side fix also affects how the server processes these packets, thus only 0xFF needs to be blocked. 0x7F is used as the "arrow" character in some binds)

  • Rewrote cvarban implementation, now multiple checks on the same cvar can be added and will not cause multiple check commands to be sent to the client.

  • Ignore duplicate userinfo if present in a command packet, should never happen but could be used to cause high CPU usage on the server by a malicious user.

  • No longer filter > 256 byte stringcommands from the server, some legitimate ones were getting cut off and after looking over the code on the client, > 256 bytes are perfectly normal.

  • Optimized delta encoding/decoding on client/server by removing redundant "null" state and memsets on each call.

  • Client connections are refused if the userinfo is too full to allow the full /ip/ key to be inserted.

  • sv_strict_userinfo_check cvar, set to 1 to disallow any non-standard bytes in userinfo, recommended.

  • sv_calcpings_method cvar to control how to calculate pings. 0 to disable pings entirely, 1 for normal method, 2 for new best case minimum method. Option 2 seems to give much more accurate pings comparable to what server browsers or external ping programs report.

  • Fix client command history crash on filling the command buffer with clipboard data.

  • Failing to open a network socket is now a fatal error (note, r1q2 client will not try and open the dedicated server socket unless a server is specifically started)

  • Server no longer consumes 100% when no game is running, ie before a 'map' command or after a gi.error.

  • Option to disable stdin on linux, set nostdin 1 to prevent polling of input from the console, useful for servers running in the background.

  • Removed loopback packet functions for DEDICATED_ONLY builds.

  • Optimized order of statements in network functions to allow for most common matches first.

  • Rewrote how commands are tokenized, no longer uses dynamic memory.

  • Possibly some more stuff I forgot already.

  • [/list:u]
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #8 on: November 22, 2004, 12:47:29 pm »

b1875:
  • Fix 100% CPU loop when using sv_strict_userinfo_check

  • [/list:u]
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #9 on: November 23, 2004, 09:45:40 am »

b1895:
  • Fix vwep issues on client.

  • Split configstrings into MAX_QPATH chunks on server for CS_STATUSBAR etc, prevents bandwidth waste by sending same strings multiple times.

  • Fix client handling of configstrings over MAX_QPATH length, only CS_STATUSBAR is allowed to "overflow". Thanks to [SkulleR] for noticing these problems.

  • [/list:u]
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #10 on: November 24, 2004, 05:00:14 pm »

b1915 (why they all seem to end in 5 I don't know Smiley):
  • Fix memory leak and/or Z_Free: bad magic crash.

  • Don't duplicate send 'version' check.

  • z_stats now includes TAG_GAME/TAG_LEVEL allocs.

  • Few other misc things.

  • [/list:u]
    Hopefully I can slow down on the releases now, I know how annoying it is to constantly upgrade every week.
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #11 on: November 25, 2004, 08:28:45 am »

Or not. God damnit...
b1917:
  • Fix FREAKING HUGE security hole caused by pyroadmin (pyroadmin support is no longer compiled in by default any more)

  • Fix starting of single player games

  • [/list:u]
    This is an
essential upgrade.
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #12 on: November 25, 2004, 02:43:02 pm »

Wow, this has been a busy week for R1Q2 updates...
b1918:
  • Fix use of 'map' command causing server to goto sleep.

  • [/list:u]
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #13 on: December 03, 2004, 11:49:49 pm »

b2742:
This is a lot if changes Smiley. Please post any bug reports as it's quite likely there may be some.

COMMON:
  • Optimize some map access functions.

  • Added intvalue to cvars for less cache stalling due to FPU usage.

  • Optimized some 0-byte SZ_Writes

  • Include binary name in server startup for easier debugging when people copy/paste.

  • Merge more Win32/Linux common networking code.

  • 'unset' command to remove cvars - dangerous, removing a cvar that is in use or will be accessed at a later date will crash.

  • Support escape sequence for sending $ byte (warning, using this in the client will probably get you kicked)

  • Changed Win32 file searching API (maybe 0.001% faster? Smiley).

  • Load *.pak files. pak0-1024 are loaded first, then other .pak files in alphabetical order. Thus maps-v2.pak will override any files which also exist in maps-v1.pak.

  • Timestamp support on qconsole.log. Use logfile_timestamp 1 to enable (on by default) and logfile_timestamp_format to control the timestamp format as a strftime string. Warning, a malformed logfile_timestamp_format may crash the server. Defaults to ISO 8601 format.
  • Load pak files into binary tree for faster lookup of files.

  • cvar and cmd lookup also made into binary tree.

  • [/list:u]

    CLIENT:
  • +button events no longer fire when typing in the client console.

  • Fix the first sound loaded by mods not playing when using deferred model loading.

  • Implement mini R1Q2 options menu in the client for common settings.

  • cl_cmdcomplete cvar to determine how to do command completion, 0 = regular q2, 1 = tab/cycle through matches, 2 = tab list all matches.

  • Support buffered DirectInput mouse, won't "skip" very very fast button presses any more. Use m_directinput 1 to enable, can be toggled mid-game. m_directinput 2 uses the old-style immediate sampling.

  • Windows window-specific keys in windowed mode such as Alt and F10 won't lock up the game when pressed.

  • [/list:u]

    SERVER:
  • Change how setmaster behaves when executed before the server is fully started so that the heartbeat actually gets sent.

  • Support old-style Win32 console for GameHost, should be automatically used if GameHost is detected. Run dedicated.exe -oldconsole +whatever... to use it manually.

  • Add listbannedcommands and listcvarbans.

  • Fix memory leak in client version string lookup.

  • sv_mapdownload_denied_message and sv_mapdownload_ok_message cvars to send message to client when map download fails / starts. Can be used for example to direct clients to a website map repository where they can download the maps. Supports \n for newline expansion.

  • Don't allow the server to start as root on linux.

  • Fix sv_randomframe, now safe to use.

  • Change how multiple userinfos in same packet are handled, I forgot that userinfo belong in reliable portion and thus multiple userinfos are perfectly legit.

  • Support zlib compression on UDP downloads to make best use of the limited packet size (R1Q2 specific).

  • Flush netchan during connection process. This speeds up autodownloading and connection times.

  • Sanity check length of configstrings coming from the Game DLL.

  • sv_recycle 2 can be use to reload the Game DLL every map change where this may be desirable. Note that recycling the Game DLL does not cause a full server init like the "map" command.

  • sv_blackholes 0 no longer disables manual additions of blackholes with the addhole command.

  • sv_max_traces_per_frame cvar to control how many traces are allowed in a single game frame. This is to overcome buggy mods and/or maps that repeatedly call gi.trace in a loop which keeps hitting the same object over and over. Right now it's set to 10000 which should be way more than any mod needs legitimately. If you experience SV_Trace ALERT messages more often than you experience server freezes though, you may wish to increase this value, but even at 10000 my Athlon 64 noticably stalls so it's unlikely you'll need to touch this.

  • sv_ratelimit_status, number of status requests/sec to accept. This is used to mitigate any potential "reflection" Denial of Service attacks as a 10 byte status packet can generate up to almost 1400 bytes of response.

  • rcon commands that use the correct password first time are no longer subject to rate limiting. A bad rcon attempt will enable rate limiting (currently hard coded to 0.5 seconds) to mitigate against rcon brute force floods.

  • addstuffcmd command, allow you to stuff commands to clients on connect or entering the game. Also delstuffcmd and liststuffcmds.

  • addnullcmd command for making a client command be ignored. Eg addnullcmd invdrop if the mod doesn't support invdrop and people keep hitting it anyway and saying it. Or something. Also delnullcmd, listnullcmds.

  • bancommands allow option of showing message, kicking or silently dropping when matched.

  • cvarbans support substring matching on the return value.

  • stuff server console command.

  • Server-side skin validation, sv_validate_playerskins. If a malformed skin is used it is replaced with male/grunt before being sent to other clients. Skins that do not consist of alphanumeric or _ characters will be considered bad also. This is recommended to leave enabled unless you have specific problems with it as a malicious user using skin "$$" will cause connected clients to try to auto download "download players/$$/skin.pcx" which of course is an illegal variable expansion resulting in them getting dropped. The R1Q2 client and EGL are not affected as they both quote the download path before sending it. Other client authors are encouraged to also quote the download paths to mitigate this problem.

  • sv_idlekick, seconds before kicking idle clients. 0 to disable, "idle" is defined as not moving/attacking or talking for the time period.

  • sv_packetentities_hack to control the "cutting off" of packet entities if they will not fit into a packet. If entities do not fit, the entire packet is discarded and the client will experience a "freezing" effect, however if it is cut off, clients may experience delta problems which manifest themselves as flying objects, incorrect models/frames, bad effects, etc. Default 0, was previously hard-coded enabled on older builds.

  • Send entities to clients that have an associated effect but not a modelindex. This allows effects to show up in correct place. Previously ents with no model were incorrectly assumed to always be world sounds and thus not sent if over 400 units away.

  • bancommand and unbancommand renamed to fit into more intuitive naming scheme, now addcommandban and delcommandban.

  • [/list:u]
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #14 on: December 19, 2004, 05:11:43 am »

b2746:
Quick update to remedy some small issues in 2742:
  • Fix sv_filter_stringcmds 2 causing clients to get dropped as the version check got filtered.

  • Fix snd_restart / vid_restart being printed on dedicated server console.

  • New cvar, logfile_name to determine where to log qconsole output.

  • [/list:u]
Logged
Pages: [1] 2 3 ... 6
Print
r1ch.net  |  r1ch.net stuff  |  R1Q2  |  Topic: R1Q2 Changelog
Jump to:  

Powered by SMF 1.1.19 | SMF © 2013, Simple Machines