Starting with tag: [TAG 2007-02-21 quozl@us.netrek.org**20070221003805] [New DNS code ifdefs and general updates Karthik Arumugham **20070221004738 * config.h.in: add IP_CHECK_DNS defines to configure DNS behavior * defs.h: add some nice message length defines to check MSG_LEN overflow against * enter.c, ip.c: misc updates to support DNS code * ntscmds.c: rewrite WHOIS output to be more correct and more helpful ] [New DNS code ifdefs and general updates, peer review quozl@us.netrek.org**20070221010730] [setgame, test support, fixes quozl@us.netrek.org**20070221024833 * daemonII.c: implementation bug, test was not properly terminating. ] [torp direction testing, speed quozl@us.netrek.org**20070221025001 * setship.c: add support for low speed torp testing required by sturgeon modifications. ] [misc directions testing changes quozl@us.netrek.org**20070221050247] [t_x_y, 50fps calculation refinement quozl@us.netrek.org**20070221071744 * struct.h: add internal coordinates for torpedos scaled by the same resolution change as previously done for ship coordinates. * util.c: add helper function to set torpedo coordinates. * torp.c, sturgeon.c, plasma.c, daemonII.c, conquer.c, setship.c: implement scaled torpedo coordinates. ] [spi/spi, use macros for coordinate scaling quozl@us.netrek.org**20070221072310] [robot, 50fps p_x_y regression fix, shimmering quozl@us.netrek.org**20070221074623 * robotII.c: ensure the robot's galactic bounding box is not defaulting to an empty galaxy ... this was causing the robot to oscillate onto and off the galactic at 25 fps, as the coordinate bounding box logic was being activated. ] [robot, 50fps p_x_y regression fix, shimmering, again quozl@us.netrek.org**20070221080546 * enter.c, util.h, main.c, util.c, robotII.c: generalise the fix for all robots that call enter() directly, and also fix the momentary appearance on the client of a tactical coordinate that the slot had previously. p_x_y_set is asynchronous, and so not appropriate for a new ship. ] [Move cloak phase to 10 update/sec standard williamb@its.caltech.edu**20070221084457 * defs.h: Change number of cloak phases from 7 to 12. * daemonII.c: Change CLOAKFUSE from 2 to 1. This makes cloak updates occur twice as frequently, i.e 10/sec. This patch has no effect on cloak timing, as shown by the figure in udcloak(). However, it has the beneficial effect of moving cloak to the 10 updates/sec standard like other animation events. And it allows clients to change their number of cloakphases to 12 and be in line with the server. This would fix the problem where cloak/decloaking is animated too quickly by clients running at 10 update/sec. M ./Vanilla/include/defs.h -1 +1 M ./Vanilla/ntserv/daemonII.c -4 +6 M ./Vanilla/robotd/defs.h -1 +1 ] [compile fixes, p_x_y, include of util.h quozl@us.netrek.org**20070221091957] [projects update quozl@us.netrek.org**20070221211952] [practice robot, torp safety quozl@us.netrek.org**20070222033628 * daemonII.c, rmove.c: make practice robot torps safe for other practice robots, * socket.c: enable multiple robots even when transwarp enabled. ] [send server-only fps feature packet quozl@us.netrek.org**20070222062036 * genspkt.c, socket.c: send the server's frames per second variable to clients as a server-only feature packet, to assist with their decision making with respect to the expected update rate ... clients must still take into account the update rate they may have requested via a CP_UPDATE packet. ] [Transwarp speed changes, moved to daemon, on fuse williamb@its.caltech.edu**20070222103935 * redraw.c: Moves transwarp deceleration to daemon * daemonII.c: New fuse TWARPFUSE, called 10 times/second, which handles both accelerating and decelerating ships in twarp. Previously these functions were split between ntserv and daemon. New function udtwarp() which handles the speed changes. Fixes the bug where client update setting altered transwarp speed. Also fixes transwarp speed to an internal fuse so the fps changes do not alter transwarp behavior. Also fixes a bug that never showed up previously, in that during transwarp, daemon was still incrementing player's p_subspeed, which resulted in player's speed being incorrectly lowered to p_ship.s_maxspeed if p_speed was higher than that value. This subspeed routine is now properly in the nontranswarp case. This patch also fixes the 1 update/sec transwarp bug that would bounce a ship back and forth around the base in an odd fashion. Patch tested on 50 fps server, using both 1 update/sec and 10 update/sec client. Both cases resulted in ships having identical transwarp speed profiles. M ./Vanilla/ntserv/daemonII.c -23 +63 M ./Vanilla/ntserv/redraw.c -9 ] [Transwarp speed changes, moved to daemon, on fuse, review quozl@us.netrek.org**20070223001624 * daemonII.c: peer review, restore use of pointer to struct player, add premature exits from functions and loop to simplify code. ] [Add CPPFLAGS to res-rsa makedepend to find includes and kill warnings Karthik Arumugham **20070222202215 * res-rsa/Makefile.in: add $(CPPFLAGS) to the makedepend line ] [Add useful functions to util.c Karthik Arumugham **20070222205814 * util.c: Add change_team(), slot_char(), and slot_num() functions * balance.c, util.h: Misc changes for util.c update ] [Add useful functions to util.c, merge quozl@us.netrek.org**20070223033458] [INL bot TRADE command to move one or two players between teams Karthik Arumugham **20070222221040 * inlcomm.c: do_trade() function to trade players * inl.c, inlcmds.c, inldefs.h: Changes to support do_trade() ] [Remove player index after an INL game Karthik Arumugham **20070222222840 inl.c: unlink() the players.index file when we move the players file after a game ends ] [PROJECTS updates Karthik Arumugham **20070222231451] [Let captains spam in INL mode Karthik Arumugham **20070222233630 struct.h, main.c, socket.c, inlcomm.c: Let INL captains spam so that they can send instructional macros and such more easily ] [Let captains spam in INL mode, merge quozl@us.netrek.org**20070223040132 * main.c, enter.c: main() is not the only place things should be initialised in struct player, enter() is used by robotII instances and bypasses ntserv main(). ] [50 fps, add fps variable to sysdef quozl@us.netrek.org**20070223041941] [trivial pbuilder edit quozl@us.netrek.org**20070223053027] [data rates analysis quozl@us.netrek.org**20070223080105] [50 fps, correct response to CP_UPDATES, fix robots quozl@us.netrek.org**20070223105548 Major design cascade of frames per second support, allows client to specify the update rate they want, and they will be told what update rate they got, separate to the server frame rate. * sample_sysdef.in, sysdefaults.h, data.c, data.h, sysdefaults.c: change update rate values from MAXSKIP to MAXUPS and so forth, since the term "skip" is an internal implementation detail that should not be exposed in the server user interface (etc/sysdef). * defs.h: correct efticks() macro for flexible frame rate, which fixes cloaked ship udpates, ping packet sending, and several other features. * struct.h: change p_timerdelay to p_skip, and add p_ups, which although redundant makes things easier to understand, * daemonII.c: rework signal_servers(). * util.c: implement function p_ups_set() for setting the update rate, and call it from enter() and each robot. * enter.c, main.c: call new p_ups_set() function. * genspkt.c, socket.c: add new server feature packet indicating to client what integer update rate has been set in response to a CP_UPDATES packet. The actual update rate will be the requested rate only if it is an even division of the server frames per second rate. * mars.c, basep.c, inl.c, marcs.c, newbie.c, pret.c, puck.c, robotII.c, cambot.c: call new p_ups_set() function, setting robot update rate to the old ten updates per second rate, or if the robot clearly needs per frame rate use that. ] [50 fps, rename reality, note time bugs quozl@us.netrek.org**20070223221617 More variable renamings ... - p_skip becomes p_fpu (frames per update), - reality becomes distortion. Noted bug with global status->time update rate. ] [Normalize ship heading for all races, point to enemy williamb@its.caltech.edu**20070224100231 * enter.c: New function align_ship(), which points a newly entering ship towards the t-mode opponent space. This removes the advantage that is given to both FED in FED/ROM games and to ORI in KLI/ORI games, in that the team on the bottom half of the galaxy does not need to realign their ship after dying in order to warp to the front. It is possible that this is a subconscious reason for why FED/ROM games seem to be preferred. M ./Vanilla/ntserv/enter.c -2 +35 ] [Normalize ship heading for all races, point to enemy, review 1 quozl@us.netrek.org**20070225014400 * enter.c: change the proposed face enemy logic to face the direction of one of the enemy home planets, so that it works correctly for planet scenarios. ] [Sysdef option for base orbit williamb@its.caltech.edu**20070225005112 * New sysdef option SBORBIT to allow bases to orbit (and thus also drop on and bomb) enemy planets. Default to off. Replaces unused BASE_WARS define. M ./Vanilla/docs/sample_sysdef.in +3 M ./Vanilla/include/data.h +1 M ./Vanilla/include/sysdefaults.h +3 M ./Vanilla/ntserv/data.c +1 M ./Vanilla/ntserv/orbit.c -7 +5 ] [Sysdef option for base orbit, review quozl@us.netrek.org**20070225020143 * sample_sysdef.in: better describe the Bronco policy or style. * orbit.c, warnings.h: fix grammar. ] [Set max transwarp speed williamb@its.caltech.edu**20070225010645 * transwarp.c: Use MAX_TRANSWARP_SPEED as sanity check against high speed transwarp (i.e. ATT ships). M ./Vanilla/ntserv/transwarp.c -2 +5 ] [* Normalize ship heading for all races, point to enemy, review 2 quozl@us.netrek.org**20070225041617 * enter.c: out of t-mode, where an opposing team is not defined, set initial ship course for galactic centre, not just north. This is so that it will be obvious in clue pre-game that this modification is present. In addition, loss of t-mode during pickup will become more obvious. ] [explain defups better quozl@us.netrek.org**20070226234809] [set tools, better document, usage before openmem, quorum vs quozl@us.netrek.org**20070227004057 * setgame.c: improve usage documentation, and display the t-mode teams also as abbreviations (ROM vs FED). * setgame.c, setplanet.c, setship.c, setteam.c: show usage documentation even if daemon is not running. ] [projects, SP_SCAN support discussion in IRC quozl@us.netrek.org**20070227015223] [Remove ups set upon reentry williamb@its.caltech.edu**20070226081321 * enter.c: Player ups was being reset upon reentry, i.e. player death, ignoring the client requested update rate and thus causing a mismatch in what the server is sending and what the client believes it is receiving. An alternative would be to resend the FPS feature packet every client death, but it seems better only to send that upon initial client connect, or a request to change update rate. M ./Vanilla/ntserv/enter.c -4 ] [Make conquer work with FPS williamb@its.caltech.edu**20070226092642 * conquer.c: Redo timing to go by tenths of seconds rather than updates. Scale timers accordingly. Scale movement rate of ships into ring accordingly. Set x,y coordinates manually as they are not set by daemon during GU_CONQUER. M ./Vanilla/ntserv/conquer.c -10 +18 ] [Exit daemon on newbie exit williamb@its.caltech.edu**20070226095812 * newbie.c: When the newbie server goes through its cleanup routine, player queues are closed. Thus, for 1 minute after the newbie program exits, the daemon would stay up but no players could join. Normally, daemon exits after no players for 60 seconds, but newbie already checks if no players for 60 seconds before calling cleanup. This patch removes the unnecessary 60 second delay between newbie exit and daemon exit, changing total time from last player leaving to game restart from 120 seconds to 60 seconds. M ./Vanilla/robots/newbie.c +1 ] [Fix login coordinates wrong bug williamb@its.caltech.edu**20070226103759 * util.c: p_x_y_set was turning the initial player coords of (-100000,-100000) and setting them to (0,0), making it seem that a player spawned in the corner of the galaxy. * main.c: Set coordinates manually, as they are not set by daemon during the enter() procedcure. Perhaps p_x_y_set function should be rewritten in light of this patch and the patch to conquer.c which fixed a similiar issue. M ./Vanilla/ntserv/main.c +6 M ./Vanilla/ntserv/util.c -4 ] [Make conquer work with FPS, review quozl@us.netrek.org**20070227065726 * daemonII.c: during pause, fuse() macro does not work, so we must use a cycle timer for the job, was causing conquer parade to animate five times faster. * conquer.c: restore designed ten updates per second operation. * conquer.c: use a named constant for number of steps to arrival in ring, since use of a literal was misinterpreted. * conquer.c: click into final ring position if total offset less than 100 units in both directions. * main.c: change use of p_x_y_set to p_x_y_go where appropriate, reducing number of lines of code, undoing some of the previous change. ] [remove xsg and pledit from build quozl@us.netrek.org**20070227070558] [first python script to parse player stats William U. Clark, Jr. **20070301041848] [2.12.1 release, security update, format string vulnerability EVENTLOG=1 quozl@us.netrek.org**20070302074252 * ntserv/warning.c, robots/rmove.c: fix security vulnerability in message handling reported by Luigi Auriemma. This vulnerability is present if the server is configured with EVENTLOG=1 in etc/sysdef, (the default is EVENTLOG=0) and is confirmed present in release 2.12.0. User input was passed to vsprintf as a format string. ] [2.12.1 release, security update, format string vulnerability EVENTLOG=1, resolve conflicts quozl@us.netrek.org**20070302081550 * debian/changelog: resolves conflicts caused by merging the 2.12.1 release branch into the development repository. Also wrapped text to 80 column limit. ] [orbit positions test scripting quozl@us.netrek.org**20070302235738] [orbit entry test scripting quozl@us.netrek.org**20070303011215] [50 fps, orbit position rate increase quozl@us.netrek.org**20070303011235 * daemonII.c: update ship position while in orbit every frame instead of every five frames. Since the Sin and Cos tables are modulus 256 we can't just use a more accurate p_dir, instead the ship is driven at warp 2 for five updates between each change of p_dir by the orbit. * orbit.c: initial entry to orbit was occasionally jerky, caused by the entry being set using wrong coordinate variables by ntserv player instance. ] [50 fps, send UPS from defups on connect quozl@us.netrek.org**20070303020911 * socket.c: after sending the SP_FEATURE packet FPS, also send the UPS packet to indicate the default updates per second that the client will be given unless they request otherwise with a CP_UPDATES. ] [orbit entry test enhancements quozl@us.netrek.org**20070303032321] [daemon restart, fix repeated restart quozl@us.netrek.org**20070303032531 * daemonII.c: restart request was filling logs, execl(2) was failing to find path to binary, fixed by using path used by openmem.c. * setgame.c: add "setgame restart" command that will send a SIGHUP to the currently running daemon process. * openmem.c: fix process name, so that ps(1) shows "netrek-daemon". ] [suppress error during make install of robotd quozl@us.netrek.org**20070304224033 * robotd/Makefile.in: first "make install" would work, then subsequent attempts would fail with an error. ] [Change setship.c input from command args to an input string. William U. Clark, Jr. **20070305230941] [Remove error checking on face_enemy williamb@its.caltech.edu**20070303101956] [Fix lock on base noslowdown bug williamb@its.caltech.edu**20070305234126 * redraw.c: Readds check for non-twarp lock onto base, for ship slowdown. Also reindented function for clarity. M ./Vanilla/ntserv/redraw.c -15 +28 ] [Fix lock on base noslowdown bug, review quozl@us.netrek.org**20070305235256] [remove SB_TRANSWARP define in favour of sysdef quozl@us.netrek.org**20070306000254 * include/config.h.in, et al: remove the SB_TRANSWARP define since it hinders comprehension of the code, the feature can be enabled or disabled by the etc/sysdef TRANSWARP variable, and it is generally accepted by the community. ] [add wc2z's repo quozl@us.netrek.org**20070306001640] [Change setship.c input from command args to an input string, review quozl@us.netrek.org**20070306003447 * setship.c: adopted STYLE, re-indented, used util.c function to decide ship number. ] [better document CHECKSCUM and DUPLICATES quozl@us.netrek.org**20070306103638] [add names to repository list quozl@us.netrek.org**20070306104835] [redraw bug exploration quozl@us.netrek.org**20070313233754] [add actual symptom quozl@us.netrek.org**20070314000123] [Hockey fixes williamb@its.caltech.edu**20070312154328 * puckmove.c: Add missing p_x_y_to_internal() for offsides, and fix a wrong check for player position reset on initializing faceoff. M ./Vanilla/robots/puckmove.c -1 +2 ] [Sturgeon enter - fix team williamb@its.caltech.edu**20070312162525 * sturgeon.c: Fix enter routine to not set team (let enter.c set it) and to instead set a temporary team variable following the logic in enter.c, so that starbase messages print out properly. Previously, was causing an error message for team indepenedent robot bases like hockey puck or announcer. M ./Vanilla/ntserv/sturgeon.c -3 +7 ] [Fix admin tools to work off defined server paths Karthik Arumugham **20070307010329 * getpath.c: Export BINDIR, LIBDIR, SYSCONFDIR, and LOCALSTATEDIR for scripts to use * ban, free, kill, quit, reset: Use paths specified by the sever rather than relative paths to call the various tools involved * Makefile.in, configure.in, ntscmds.c, tools/admin/Makefile.in: Support code to install admin tools and to call admin tools with proper paths ] [INL TRADE bugfix Karthik Arumugham **20070309100014 queue.c, slotmaint.c: Allow the entire range of player slots for FED and ROM. Also, have ROM players join the traditional slots 8 - f before trying slots 0 - 7 in case a trade happened earlier. struct.h: Support code for INL slot order with full slot masks. ] [INL TRADE bugfix, review quozl@us.netrek.org**20070315022027 * struct.h: changed alt_lowslot to prefer * slotmaint.c: reduced size of pickslot function by adding two new functions, and changed the preferred slot logic to ease understanding. ] [Add define to let observers keep the daemon up Karthik Arumugham **20070307213110 * daemonII.c: Don't automatically exit if there are only observers in the game unless OBS_EMPTY_SERVER is set * config.h.in: OBS_EMPTY_SERVER #define ] [Add define to let observers keep the daemon up, review quozl@us.netrek.org**20070315023930 * daemonII.c: convert #ifdef to sysdef. ] [DNSBL Vuln/ProxyCheck 0.1 Karthik Arumugham **20070309113557 ip.c: DNSBL checking routines config.h.in: Defines to set level of DNSBL reporting enter.c, etc: Support code for DNSBL checks ] [DNSBL Vuln/ProxyCheck 0.1, review quozl@us.netrek.org**20070315041301] [INL metaserver playercount bugfix Karthik Arumugham **20070314225212 queue.c, solicit.c, struct.h: Maintain the regular INL low slot and high slot when doing player counts for the metaserver. Previous trade fix caused this code to count all players for both teams. ] [INL metaserver playercount bugfix, review quozl@us.netrek.org**20070315232052 * slotmaint.c: provide functions for determining the number of free player slots in a queue, and the number of non-robot players, for use by solicit, so that results of pickslot are consistent with updates to metaserver. ] [generic lock implementation, pickslot race fix quozl@us.netrek.org**20070316013654 * openmem.c: add a generic locking implementation using semaphores. * setgame.c: define test commands for command-line testing of the lock implementation, and viewing of current lock state, * slotmaint.c: prevent PFREE to POUTFIT race condition by using locks around the critical code. ] [locking, fix race condition, two players added at once quozl@us.netrek.org**20070316021553 * db.c: fix a race condition that has been documented in the code for several years, that the creation of new player entries in the players file is not interlocked, such that the entries could either have the same position, or the extension of the file may not be atomic, resulting in a file end pointer that is not a multiple of the record size. The fix is to use a semaphore so that only one ntserv may extend the player file at a time. We still may find a non-atomic file length change, but that would be due to system failure rather than our code. ] [Limit INL TRADE to pregame only Karthik Arumugham **20070316004422 inlcmds.c: Pre-game only, as trades during a pause cause a crash in many clients. ] [locking, fix race condition, queue entry allocation quozl@us.netrek.org**20070316085846 * queue.c: fix a race condition that has been documented in the code for several years, where two ntservs may try to join the wait queue at the same time. * slotmain.c: add a missing include of prototypes. ] [50fps, remove plans from projects quozl@us.netrek.org**20070316095011]