-Changes to Empire 4.3.27 - Thu Apr 14 18:52:05 UTC 2011
- * License upgrade to GPL version 3 or later
- * Fix client to log long input lines untruncated
- * Fix client crash for long input lines
+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.
+ * Telegram and announcement changes:
+ - wire no longer loops to show announcements that arrived while
+ waiting for the player to confirm deletion.
+ - At most five seconds worth of messages are now squashed together
+ into one. Before, only the time between adjacent telegrams was
+ limited, not the total time.
+ - When telegrams arrived while read was waiting for the player to
+ confirm deletion, and we then showed them, we nevertheless
+ claimed "you have new telegrams" before the next command prompt.
+ Only with toggle inform off. Known bug since Empire 2.
+ - Fix read not to clobber asynchronous notification of telegrams
+ arriving while waiting for the player to confirm deletion.
+ - Fix wire not to reset number of pending telegrams with toggle
+ inform on. Broken when Empire 2 introduced toggle inform.
+ - The number of pending announcements was off when announcements
+ were squashed together.
+ - More careful error handling and logging.
+ * Ensure all of an update's output goes into a single production
+ report:
+ - Avoid splitting it up when the update is slow. Empire 2 already
+ did that for the number of pending telegrams, but not for read.
+ - Don't turn parts of it into BULLETINs. Autonav and sail could do
+ that since Empire 2.
+ * files now creates POGO with user interface flags beep, coastwatch,
+ sonar and techlists set, for consistency with add.
+ * Change newcap back to not wiping the country (it wiped since
+ 4.3.12). Additionally, leave levels and telegrams alone.
+ * Changes to deity command add:
+ - Require confirmation for unadvisable actions.
+ - Refuse to touch a country while it's being played.
+ - Don't crash on negative country number.
+ - Create deities with money, just like files creates POGO.
+ - Always reset the country completely, not just when adding a
+ player or a visitor.
+ - Rename argument "new" to "player". Keep recognizing "new" for
+ now, but deprecate it.
+ - Drop argument "active". If you really want to create a player
+ country without a capital, add the player country normally, then
+ activate it with edit instead of newcap.
+ - Drop the obscure sector check and wipe option. If you really
+ need to wipe out a country, there's much more to wipe than just
+ sectors.
+ - Drop the undocumented land unit destruction feature.
+ * Permit no-op country name change again. Accidentally outlawed in
+ 4.3.20.
+ * Plug a few minor memory and file descriptor leaks.
+ * Fix use-after-free when plane gets shot down or aborted in
+ dogfight. Broken in 4.3.27.
+ * Code cleanup.
+ * Info page and manual page fixes.
+
+Changes to Empire 4.3.28 - Sat Jul 16 11:30:53 UTC 2011
+ * Don't let POGO (#0) navigate dead ships, and march dead land units.
+ The ghosts even got sighted and interdicted, and could hit mines.
+ Has always been that way.
+ * llook can't see land units and planes loaded on land units anymore.
+ * Fix board to ignore land units loaded on land units when testing
+ whether a sector can board. Broken in 4.0.17.
+ * Fix transport to reject planes loaded on land units. The plane
+ remained on its carrier. When the land unit moved, the plane was
+ teleported right back to it. Broken since Chainsaw 3 added land
+ units.
+ * Fix lradar not to let land units loaded on land units use radar.
+ Broken since 4.0.0 added trains.
+ * Fix strength to ignore land units loaded on land units. Broken in
+ 4.2.0.
+ * Fix navigate and march to find paths longer than a few sectors
+ again (7 for 64 bit hosts, 3 for 32 bit hosts). Broken in 4.3.27.
+ * march sub-command 'i' now shows number of military and land units
+ loaded.
+ * New server option -F to force start even when state looks bad.
+ Risks crashes and further corruption, but gives deities a chance to
+ fix up a bad game state with edit commands and such.
+ * empdump -x no longer refuses to export game state that looks bad.
+ Gives deities another tool to fix up a bad game state.
+ * Land units loaded on land units fight che again, as they used to
+ before 4.3.26.
+ * When a land unit dies fighting che, land units loaded on it get
+ unloaded, and planes loaded on it die. Before, the update left
+ them stuck on their dead carrier. Impact like the next item.
+ Abusable. Broken since Chainsaw 3 added land units.
+ * The update no longer destroys ships, planes and land units for lack
+ of maintenance. Before, it left any embarked planes, land units
+ and nukes on their dead carrier. In this state, units behaved as
+ if their carrier was still alive, with additional protection from
+ the fact that a dead carrier can't be damaged or boarded. If
+ another unit with the same number got built, it picked up the stuck
+ cargo. The cargo got teleported to its new carrier when the
+ 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 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.
+ * Fix client not to reject redirections and execute containing
+ non-ASCII characters with a bogus scary warning when using UTF-8.
+ * Fix execute not to mangle non-ASCII characters in the argument when
+ prompting for it while login option utf-8 is on.
+ * Fix handling of non-ASCII and control characters in batch files.
+ * Conversion from UTF-8 to ASCII ate the character following a
+ replaced non-ASCII character. Buffer overrun possible if the
+ terminating zero gets eaten. Could happen in players, read, flash,
+ wall, and execute.
+ * Fix handling of empty commands:
+ - Time used was not updated.
+ - Mortal player wasn't logged off for game hours, game down, and
+ time limit.
+ - Notifications were delayed: going broke, becoming solvent, new
+ telegrams (toggle inform off only), new announcements, capital
+ lost.
+ * Minor tweaks to nightly build.
+ * Server's and empdump's sanity checking of configuration and game
+ state is now more rigorous.
+ * Deity xdump no longer dumps unused countries' realms.
+ * Remove option LANDSPIES. Deities can customize the land table to
+ disable spy units.
+ * Remove option TRADESHIPS. Deities can customize the ship table to
+ enable trade ships.
+ * Configuration table changes (builtin and custom):
+ - Rows must be in ascending uid order.
+ - Omitting rows in tables item, sect-chr and infrastructure is no
+ longer permitted.
+ - Custom tables now replace the builtin table completely. Before,
+ omitted rows defaulted to the builtin version, except at the end
+ of a table. Commenting out unwanted stuff just works now.
+ - Permit custom table product having fewer than 14 entries.
+ - Reject custom tables where customization has no effect (updates,
+ table, meta, all symbol tables) or where it's unsafe (news-chr).
+ - Input is checked more rigorously.
+ * empdump -i fixes:
+ - Don't touch plane file when import fails.
+ - Refuse import of incorrectly sized table instead of silently
+ creating one the server will reject.
+ - Replace old state completely. Before, omitted rows in the dump
+ defaulted to the old state, except at the end of a table.
+ - Input is checked more rigorously.
+ * Fix xdump updates not to dump bogus extra updates.
+ * Fix use-after-free when a plane got shot down or aborted by flak.
+ Broken in 4.3.27.
+ * Friendlier diagnostics in the build command.
+ * Fix build to set nuke's tech exactly like for ships, planes and
+ land units. It's not currently used for anything.
+ * Research required for nukes was slightly off sometimes due to
+ incorrect rounding.
+ * Bridge building required 0.005 tech less than advertised, fix.
+ * "show nuke" now obeys toggle techlists.
+ * Fix "show land s" to show columns xpl and lnd again. Broken in
+ 4.3.15.
+ * Code refactoring and cleanup.
+ * Documentation on custom tables and xdump updated.
+ * Info file fixes.
+
+Changes to Empire 4.3.27 - Sun Apr 17 11:36:29 UTC 2011
+ * License upgrade to GPL version 3 or later.
+ * Fix buy not to wipe out concurrent updates. Can be abused to
+ duplicate commodities.
+ * Don't let fighters, SAMs and ABMs intercept while on trading block.
+ * Don't let missiles interdict ships or land units while on trading
+ block.
+ * Fix client to log long input lines untruncated.
+ * Fix client crash for long input lines.
* info subject pages now mark unusually long pages with a !.
* The edit command keys deprecated in 4.3.15, 4.3.17 and 4.3.20 are
now gone.
- * Fix give not to wipe out concurrent updates.
+ * 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.
* Make bestpath work for deities in foreign land.
* More robust savecore example script.
* Fix buffer overruns in the lookout, spy, map and nmap commands when
- WORLD_X * WORLD_Y not a multiple of 16.
+ WORLD_X * WORLD_Y is not a multiple of 16.
* The path command's maps weren't always fitted to the path
correctly. Broken in 4.3.17.
* Land units no longer hit allied mines.
* Really fix bomb not to wipe out plane updates made while it asked
for pinpoint targets. The fix in 4.3.21 didn't cover escorts.
* Fix tend land not to wipe out concurrent updates.
- * Fix a bug in automatic supply:
+ * Automatic supply fixes:
- Ships with just two shells could fire a torpedo to return fire or
interdict.
- Ships with just one shell could use their anti-missile defense.
Changes to Empire 4.3.17 - Sat Sep 20 16:07:44 UTC 2008
* Fix standalone client build for Windows. Broken in 4.3.11.
- * Disable automatic supply of land units on load for now, it's broken
- in a highly abusable way.
- * Make trade show exactly what's on sale, remove option SHOW_PLANE.
+ * Disable automatic supply of land units on load for now, it's
+ broken, and can be abused to duplicate supplies.
+ * Make trade show exactly what's on sale, remove option SHOWPLANE.
* Stop ships, planes, land units and nukes on violent takeover, just
like sectors.
* Wipe orders when ships, planes, land units and nukes are taken over
command in that case lets players find out whether the target is
a submarine. Loophole opened in 4.3.12.
- Detect when the firing sector, ship or land unit changes across
- the target prompt. Abusable.
+ the target prompt. Can be abused to duplicate commodities, and
+ more.
* Fix parsing of anchor-relative time in update schedule. Broken in
4.3.13.
* Fix logging of player input in the journal to include command
~p before the first line of text never worked.
* Fix ancient bridge building race condition that could break the
test whether the player can afford the bridge.
- * Fix trade lot change detection in set command. Probably abusable.
+ * Fix trade lot change detection in set command. Can probably be
+ abused to defraud sellers.
* The pthread code now compiles under Solaris.
* navigate and march now permit any whitespace between route and
optional argument for radar, lookout, sonar, not just spaces.
* The country command's `temporary' state of disorder ended after
ten years.
* Telegram notifications could get lost in exotic circumstances,
- e.g. while a second client attempted to connect. Abusable.
+ e.g. while a second client attempted to connect. Can be abused for
+ stealthy attacks.
* Remove option SNEAK_ATTACK.
* Fix lboard not to let you board dead land units.
* Fix stack smash in bomb, drop, fly, paradrop, recon and sail.
messages. See new doc/unicode for technical details.
* New login command `options' for client/server option negotiation.
See new doc/clients-howto for technical details. The only option
- so far is UTF-8.
+ so far is utf-8.
* emp_client -u now requests UTF-8. This requires a terminal that
understands UTF-8.
* Fix news for land unit defensive support.