X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=doc%2FCHANGES4.X;h=334ace36e3770103e707bcc40b82ffc89a1f5467;hp=42e47cef51560381a557f5de965c95bfa89349bd;hb=94362ac8db4ba2c4d981b8eb8d3278e86e699b34;hpb=1c24a812e86bddfbcfb78564081a811aa2652fb1 diff --git a/doc/CHANGES4.X b/doc/CHANGES4.X index 42e47cef5..334ace36e 100644 --- a/doc/CHANGES4.X +++ b/doc/CHANGES4.X @@ -1,3 +1,225 @@ +Changes to Empire 4.3.31 - Sun May 12 16:58:34 UTC 2013 + * Fix read beyond end of conditional argument on missing operand. + * Don't put broken links into info pages formatted as HTML. + * Permit ships that can drop depth charges, but not fire. No such + ships exist in the stock game. + * Consistently require guns for dropping depth charges. Before, only + the fire command required guns (since 4.3.12 and before 4.0.6). + * Change econfig key rollover_avail_max from 0 to 50. + * Make sector production more predictable. Commands production and + budget are now a bit more accurate. + * Fix bugs that messed up xdump lost and xdump trade on big endian + hosts (broken in 4.3.8), and made the server fail during startup on + most big endian hosts (broken in 4.3.12). + * Build process robustness fixes. + * Use "Level: Obsolete" to mark obsolete info pages, and drop "info + Obsolete". + * Server now uses IPv4 format for IPv4-mapped addresses. Simplifies + safe use of econfig key privip. + * Server logs a few more network connection details. + * Fixes and workarounds for econfig key listen_addr "" (which is the + default) when the system has both IPv4 and IPv6 addresses + configured: + - Server accepted only IPv6 connections on Windows and BSDs. Fix + to accept IPv4 ones, too. + - Except for OpenBSD, where the fix doesn't work. Accept IPv4 + connections instead of IPv6 ones there, and document how to get + IPv6 accepted instead. + - Linux systems are frequently configured in a way that makes the + server accept only IPv4 connections. Document workaround: use + listen_addr "::". + * Change fairland island size probability distribution: roll two dice + instead of one. This makes extreme sizes much less likely. + * Make fairland record the island number in the deity territory. + * Fix extension of market bidding time when high bidder changes. + Introduced broken in 4.0.7, with insufficient fixes in 4.0.9 and + 4.2.0. + * Fix market not to mess up ridiculously high unit prices. Has been + broken since 4.0.0 introduced the market. + * Fix melting of big piles of stuff by ridiculously heavy fallout. + Has been broken since fallout exists. + * Fix crash on edit s, p, u key 'U' with negative argument. + * When a deity builds ships or land units in foreign sectors, they're + given to the sector owner. This lets POGO build them, and it's how + build works for planes and nukes. + * Fix PRNG (pseudo-random number generator) seeding to resist + guessing: seed with a kernel random number. If we can't get one, + fall back to a hash of high-resolution time and process ID. This + should happen only on old systems or Windows. Far worse than a + kernel random number, but far better than just low-resolution time. + Fairland's seeding used to be low-resolution time and process ID, + but regressed in 4.2.20 to just time. + * Switch PRNG from BSD random() to Mersenne Twister. This is a is a + proven, high-quality PRNG. + * Fix tiny error in distribution of some die rolls. + * Increase land unit retreat chance and nuclear damage's chance to + destroy a nuke by one percentage point, for simplicity. + * Merge news items a bit more aggressively. + * Fix a year 2038 bug in news item merging. + * Retire the nightly build. + * New make target check. Just a few tests for now, derived from the + smoke test that used to be part of the nightly build. + * Really fix accepting connections from "long" IPv6 address. The fix + in 4.3.23 could mess up player's host address in player output and + logs, and cause extra "Last connection" messages. + * Take ship cost into account when picking missile interdiction + target. Broken in 4.3.8. + * Really fix give, setsector and setresource not to wipe out + concurrent updates. The fix in 4.3.27 was insufficient. + * Fix setsector not to disclose number of landmines to occupier. + * Make capital fail more nicely when the sector is unsuitable. Its + argument must now be a single sector. Before, it silently picked + the first suitable one when the argument selected several. Has + always been that way, and never documented. + * Changes to option GODNEWS: + - Deity command give could downgrade the deity's relations to the + sector owner when GODNEWS was enabled. No more. + - Likewise, deity commands edit and setsector can no longer + downgrade the victim's relations to the deity. + - News enabled by GODNEWS no longer affect news headlines. + * Fix bomb, drop, fly, paradrop, recon and sweep to again accept a + destination sector equal to the assembly point. Broken in 4.3.27. + * Fix portability bug in configure test for Windows API. + * More user friendly server startup: journal open errors are detected + while the server still runs in the foreground, which makes it + possible to complain to stderr and to exit unsuccessfully. + * Market changes: + - Forbid selling conquered populace. Only relevant when the deity + allows selling civilians, which is probably a bad idea. + - Permit selling military by default. + - Forbid selling ships and land units carrying unsalable cargo. + * Scrapping ships and land units now spreads the plague + * Don't let scrap give away civilians, kill them off instead. + * Pilots and air cargo now spread the plague. + * Don't let fly and drop give away civilians. + * Fix fly to permit flying civs to a carrier in an occupied sector. + Broken in 4.2.17. + * Don't let planes fly to a carrier without sufficient space. + Before, planes that didn't fit were teleported home, which could be + abused. Broken in 4.3.17. Almost the same bug was previously + fixed in 4.2.17. + * Fix tend to foreign ships: + - Refuse to tend civilians to foreign ships. + - Don't leak friendly foreign ships' commodity cargo. + - Continue with remaining target ships after skipping a foreign one + when tending a negative amount of commodities. + All broken when Chainsaw 2 added tending to allies. + * march sub-command 'm' can now sweep own landmines. + * Land units no longer sweep allied landmines, except when executing + march sub-command 'm'. They don't hit them since 4.3.27. Sweeping + was forgotten then. + * Fix bmap commands not to parse empty flags argument as "revert". + Broken in 4.3.27. + * Code refactoring and cleanup. + * Info page fixes and clarifications. + +Changes to Empire 4.3.30 - Tue May 22 18:34:52 UTC 2012 + * Disable damage to base sector or ship when missile explodes on + launch for now, because damage done to other missiles there can be + wiped out in some cases. Broken in Empire 2. + * Fix navigate and march not to wipe out concurrent updates. + Abusable, but probably not worthwhile. + * Fix some buffer overruns in fairland. Has always been broken. + * Fix arm to require nuke and plane to be in the same sector. A + remote nuke got teleported to its plane when the plane moved. + Broken in 4.3.3. + * Change login command kill (used by client option -k) to kill less + ruthlessly: send a flash message and try to flush output, exactly + like a server shutdown does. + * Fix server shutdown to wait for player threads to reach a safe + state. Before, player threads raced with shutdown, and failed to + update the treasury, record play time, and write log entries when + they lost. Bug goes back to Empire 2. Patched partially or + unsuccessfully in 4.2.10, 4.2.12, 4.2.20, 4.3.6, 4.3.10 and 4.3.23. + The race was hard to lose in practice, until an unrelated + "simplification" in 4.3.23 could get player threads stuck sending + output after shutdown aborted a command. + * Idle timeout changes: + - The grace period for clients to complete login and logout is now + separate from the idle timeout. Configurable with new econfig + key login_grace_time, default is 120 seconds. + - The idle timeout for visitors is now separate from the one for + players. Configurable with new econfig key max_idle_visitor, + default is five minutes. + - Fix the idle timeout when the connection gets stuck sending + output. Broken in 4.3.20. + - Idle timeout during execute now terminates the connection, not + just the execute command. + * Fix stack smash in build. Remote hole! Broken when Empire 2 added + the confirmation prompt. + * Fix stack smash in scrap and scuttle. Remote hole! Broken when + Chainsaw added the confirmation prompt. Additionally, the + confirmation prompt is misleading when the player supplies + conditionals. Redesign the flawed prompt. + * Fix execute's echo of the command. Broken in 4.3.28. + * The mobility cost of retreating a defending land unit was + calculated for an uninitialized sector. This could charge + incorrect mobility, prevent retreat, or, if the stars align just + right, crash the server. Broken in 4.3.6. + * Commands cutoff, headlines, land, lstat, motd, neweff, payoff, + qorder, sorder, and wall now behave like the other information + query commands when the player's connection can't take more output: + they pause to let other code run. + * Revised command permissions: + - arm and disarm no longer require money, for consistency with the + other commands to move stuff around. + - satellite no longer requires money, for consistency with lookout, + radar, sonar and skywatch. + - qorder, sorder, survey and test no longer require a capital, for + consistency with the other commands that report on stuff the + player owns. + - start and stop no longer require a capital, for consistency with + the other commands to control production. + - fortify now requires a capital, for consistency with mission, + morale and range. + - Anybody may now use country, echo and financial. + - Visitors can no longer use census, commodity, map, nmap, + sinfrastructure (useless without sectors), read (visitors don't + get any telegrams), and change (always failed). + - Players can no longer use map and nmap before break. This is + consistent with all the other commands to examine the + environment. It also prevents people from trying multiple + unbroken countries in a blitz to find the one with the nicest + vicinity. + - Players can now use resource before break, just like census. + * read could swallow the first telegram header when showing the + telegrams that arrived while waiting for the player to confirm + deletion. Broken in 4.3.29. + * Fix 'm' in path argument of explore, move, transport: + - Don't moan about deprecated argument syntax ('m' without a space + before its argument) even when there's no argument. + - Recognize the flags argument again. + Broken in 4.3.27. + * Market fixes: + - Command market is no longer available to visitors, because it + triggers execution of trades that have become ready. + - Fix a race condition that could cause commodity trades to be + executed multiple times. Abusing this to duplicate commodities + seems tricky, but possible. Broken in Empire 3. + - Don't expropriate sellers of units. POGO got the the money, the + telegrams and made the news, the seller got nothing. Broken in + 4.3.17. + * Login command quit and server shutdown could lose player output. + 4.3.23 tried to fix the shutdown case, but the fix was incomplete. + * Fix login command quit to really quit. It sometimes just swallowed + buffered input, at least on some systems. + * 4.2.22's fairer command scheduling failed to cover the execute + command. Fix that. + * When a client shuts down input transmission to log out, output + could get lost. Our client never does that. + * Don't skip post command treasury update and status notification on + EOF from player, after quit command, and when command is aborted by + server shutdown. An unluckily timed EOF or shutdown can deprive a + player of money gained from scuttling tradeships or sacking a + capital. Can be abused to build bridges and infrastructure free of + charge. Can also be abused to designate sectors for free, but the + stock game's sector types are all free anyway. Has always been + broken. + * Fix client not to send an empty line on player interrupt (normally + ^C) before the first command. This was missed in 4.3.26. + * Code and info page cleanup. + * Documentation fixes. + Changes to Empire 4.3.29 - Fri Jan 20 19:20:20 UTC 2012 * drop and fly from carrier could fail to load last civilian or military. @@ -92,7 +314,7 @@ Changes to Empire 4.3.28 - Sat Jul 16 11:30:53 UTC 2011 carrier moved. Abusable, but it involves going broke, so it's rarely practical. Slightly more practical before 4.3.6 removed budget priorities. Broken for ships and land units when Empire 2 - added their maintenance cost, and for planes when v4.3.3 replaced + added their maintenance cost, and for planes when 4.3.3 replaced nuclear stockpiles by nuke units. * Fix bogus internal error triggered by navigate and march sub-commands 'r', 'l' and 's'. Broken in 4.3.27. @@ -151,7 +373,7 @@ Changes to Empire 4.3.28 - Sat Jul 16 11:30:53 UTC 2011 * Fix "show land s" to show columns xpl and lnd again. Broken in 4.3.15. * Code refactoring and cleanup. - * Documentation on custom tables, xdump updated. + * Documentation on custom tables and xdump updated. * Info file fixes. Changes to Empire 4.3.27 - Sun Apr 17 11:36:29 UTC 2011 @@ -168,7 +390,8 @@ Changes to Empire 4.3.27 - Sun Apr 17 11:36:29 UTC 2011 now gone. * Fix give, setsector and setres not to wipe out concurrent updates. * Fix explore, move, test, transport not to ignore spaces in path - arguments. Broken in 4.3.7. + arguments. Broken in 4.3.7. Deprecate use of 'm' without space + before its argument. * Improvements to map drawing commands: - Don't fail silently when asked to draw a map around an invalid unit, explain the problem.