Find a file
Markus Armbruster 1c08ccf25b Revamp server's Windows POSIX compatibility code
Unlike POSIX sockets, Windows sockets are not file descriptors, but
"OS handles", with a completely separate set of functions.

However, Windows can create a file descriptor for a socket, and return
a file descriptor's underlying handle.  Use that instead of wrapping
our own file descriptors around Windows file descriptors and sockets.

Remove the wrapping machinery: MAX_FDS, enum fdmap_io_type, struct
fdmap, fdmap[], nfd, get_fd(), free_fd(), set_fd(), lookup_handle(),
lookup_fd().

Rewrite SOCKET_FUNCTION(), posix_accept(), posix_socket(),
posix_close(), ftruncate(), posix_open(), posix_read(), posix_write(),
fcntl().

Remove FILE_FUNCTION(), posix_fstat(), posix_lseek(),
SHARED_FUNCTION(), and fileno(), because the system's functions now
work fine.

posix_fsync() is used only #ifdef _WIN32, remove it, and call
_commit() directly.

The old code stuffed WSA error codes into errno, which doesn't work.
Use new w32_set_winsock_errno() to retrieve, convert & stuff into
errno.  Adapt inet_ntop() to set the WSA error code instead of errno,
so it can use w32_set_winsock_errno().

Move EWOULDBLOCK from sys/socket.h to w32misc.h, and drop unused
ENOTSOCK, EAFNOSUPPORT.

Use SOCKET rather than int in Windows-specific code.
2009-11-30 19:45:04 +01:00
doc Update change log for 4.3.22 2009-04-25 13:57:45 +02:00
include Fix accepting connections from hosts with "long" IPv6 address 2009-11-30 19:43:47 +01:00
info Make budget's "Sector building" line look better 2009-07-19 13:58:47 -04:00
m4 Rename m4/my_termlib.m4 to m4/my_terminfo.m4 2009-04-25 13:57:45 +02:00
man New server option -E to choose what to do on oops 2008-04-21 21:52:27 +02:00
scripts Make savecore put $PWD in the mail subject 2009-04-23 20:32:42 +02:00
src Revamp server's Windows POSIX compatibility code 2009-11-30 19:45:04 +01: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.23 2009-04-30 21:16:56 +02: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 Fix autoconfiguration of libraries 2009-04-25 13:57:45 +02: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 Rename m4/my_termlib.m4 to m4/my_terminfo.m4 2009-04-25 13:57:45 +02: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!