Find a file
Markus Armbruster 2196ffd55c Fix client not to hang when EOF on stdin overtakes C_EXECUTE
Player input may overtake batch file contents (well-known protocol
flaw, see doc/clients-howto for details).  This includes EOF.  When
that happens, the client closes standard input, sends an EOF cookie,
and continues reading output until the server closes the connection.
When it gets C_EXECUTE, it redirects input to the batch file.  But it
then failed to read the batch file.  The server waited forever for the
execute's EOF cookie, the client waited forever for the server closing
the connection.

Fix by stopping only reading from standard input.  Broken in 8b7d0b91,
v4.3.11.

Note that the EOF cookie still overtakes the batch file contents,
which makes the server interpret the input between the execute command
and the EOF as batch file, and the batch file contents as ordinary
input.
2009-04-05 10:58:30 +02:00
doc Belatedly document batch file restrictions 2009-04-05 10:55:46 +02:00
include Fix confusion of landmines with seamines 2009-03-31 22:52:03 +02:00
info Fix info build, mine, navigate, sweep on mines 2009-03-31 23:03:41 +02:00
m4 LWP doesn't work with Darwin due to OS bugs, avoid it for now 2008-12-07 17:25:35 -05:00
man New server option -E to choose what to do on oops 2008-04-21 21:52:27 +02:00
scripts Update copyright notice 2009-02-08 09:33:18 +01:00
src Fix client not to hang when EOF on stdin overtakes C_EXECUTE 2009-04-05 10:58:30 +02:00
.gitignore Fix unintentionally broad patterns in .gitignore 2008-02-07 08:01:53 +01:00
bootstrap Replace other occurences of git-FOO by git FOO 2008-12-03 07:57:14 -05:00
compile Replace the build process. The new one requires GNU Make, Autoconf 2005-12-20 20:25:35 +00:00
config.guess Replace the build process. The new one requires GNU Make, Autoconf 2005-12-20 20:25:35 +00:00
config.sub Replace the build process. The new one requires GNU Make, Autoconf 2005-12-20 20:25:35 +00:00
configure.ac Bump version to 4.3.22 2009-03-10 20:50:01 +01:00
COPYING Update to current version from http://www.gnu.org/licenses/gpl.txt: 2006-01-22 21:29:04 +00:00
CREDITS Fix trailing whitespace 2008-09-17 21:31:40 -04:00
depcomp Replace the build process. The new one requires GNU Make, Autoconf 2005-12-20 20:25:35 +00:00
GNUmakefile.in Update copyright notice 2009-02-08 09:33:18 +01:00
INSTALL Replace the build process. The new one requires GNU Make, Autoconf 2005-12-20 20:25:35 +00:00
install-sh Replace the build process. The new one requires GNU Make, Autoconf 2005-12-20 20:25:35 +00:00
Make.mk Fix distclean to remove generated files distributed in client tarball 2009-03-10 13:08:15 +01:00
README Update copyright notice 2009-02-08 09:33:18 +01:00

Welcome to Empire 4, code-named Wolfpack.

Empire is a multi-player, client/server Internet based war game.
Copyright (C) 1986-2009, Dave Pare, Jeff Bailey, Thomas Ruschak, Ken
Stevens, Steve McClure

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License (in file
`COPYING'), or (at your option) any later version.

See file `CREDITS' for a list of contributors.

Directory `doc' has additional information.  File `doc/README'
describes the files there and what they talk about.

To build the server and set up a game, follow the steps below.

(1) Unpacking the source tree

    If you downloaded a tarball, unpack it.

    If you cloned a git repository, run bootstrap.  This requires
    recent versions of Autoconf and Automake to be installed.

(2) Building a server

    Prerequisites: IEEE Std 1003.1-2001 (POSIX.1-2001), GNU make, a
    curses library, Perl, and either nroff or GNU troff (`groff').

    See file `INSTALL' for detailed compilation and installation
    instructions.  Quick guide for the impatient: run configure; make;
    make install.  The last step is optional; everything runs fine
    right from the build tree.

    If make fails without doing anything, you're probably not using
    GNU make.  Some systems have it installed as `gmake'.

    Solaris supports POSIX.1-2001, but you need to set up your
    environment for that.  Try passing
        SHELL=/usr/xpg4/bin/sh PATH=/usr/xpg6/bin:/usr/xpg4/bin:$PATH
    to make.  See standards(5) for details.

(3) Creating a game

    * Create a configuration for your game.  make install installs one
      in $prefix/etc/empire/econfig ($prefix is /usr/local unless you
      chose something else with configure).  You can use pconfig to
      create another one.

    * Edit your configuration file.  See doc/econfig for more
      information.

      Unless you put your configuration file in the default location
      (where make install installs it), you have to use -e with all
      programs to make them use your configuration.

    * Run files to set up your data directory.

    * Run fairland to create a world.  For a sample world, try
      `fairland 10 30'.  This creates file ./newcap_script, which will
      be used below.  You can edit it to change country names and
      passwords.

      Check out fairland's manual page for more information.

    * Start the server.  For development, you want to run it with -d
      in a debugger, see doc/debugging.  Do not use -d for a real
      game!

    * Log in as deity POGO with password peter.  This guide assumes
      you use the included client `empire', but other clients should
      work as well.

      For help, try `info'.

      To change the deity password, use `change re <password>'.

    * Create countries with `exec newcap_script'.

    Your game is now up!

Naturally, there's more to running a real game than that, but that's
beyond the scope of this file.

Please report bugs to <wolfpack@wolfpackempire.com> or via SourceForge
http://sourceforge.net/projects/empserver (registration required).

For more information or help, try rec.games.empire on Usenet, or send
e-mail to <wolfpack@wolfpackempire.com> and we'll try to answer if we
can.  Also check out our web site at "http://www.wolfpackempire.com".

Have fun!

Wolfpack!