]> git.pond.sub.org Git - empserver/blobdiff - doc/CHANGES4.X
Update change log again for 4.3.30
[empserver] / doc / CHANGES4.X
index 50b1c2c36e09c86018506a907d32940c29f68c35..894a2954b713871909354179c17e1e5515c10bce 100644 (file)
@@ -1,3 +1,266 @@
+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
@@ -5,14 +268,15 @@ Changes to Empire 4.3.27 - Sun Apr 17 11:36:29 UTC 2011
  * 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
+ * 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, 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.
@@ -64,7 +328,7 @@ Changes to Empire 4.3.27 - Sun Apr 17 11:36:29 UTC 2011
  * 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.
@@ -1822,7 +2086,7 @@ Changes to Empire 4.2.21 - Sat Jul 16 17:51:01 UTC 2005
    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.