/**
@mainpage

@section main GSI-Wuftpd release notes

This is wuftpd version wu-2.6.0(1) (Wed Mar 1 14:31:16 CST 2000) with
GridFTP patches (version 0.6).

This software is brand-spanking new, not-heavily tested. Please be
prepared to run into problems. Please report any problems or bugs with
this software to "bugs@globus.org". General questions or comments
should be sent to "dicuss@globus.org".

This file describes the features of this software, as well as
steps needed build and install wuftpd with
GridFTP support. It is not meant as a comprehensive guide for
installing wuftpd. While it may point out commonly desired features
or pitfalls with wuftpd installation, please see the normal wuftpd
documentation in the README and INSTALL files, the doc/ subdirectory
and at http://www.wuftpd.org

@subsection gsi_wuftpd_status Status

This server implements portions of the GridFTP protocol. The following
features are implemented, beyond the standard wuftpd server:

GSI Authentication via the AUTH GSSAPI mechanism.
The FEAT command, with the following features supported
- REST STREAM (see draft-ietf-ftpext-mlst-13.txt)
- ESTO (see GridFTP Protocol Extensions)
- ERET (see GridFTP Protocol Extensions)
- MDTM (see draft-ietf-ftpext-mlst-13.txt)
- SIZE (see draft-ietf-ftpext-mlst-13.txt)
- PARALLEL (see GridFTP Protocol Extensions)

This server does not implement the SBUF command described in GridFTP Protocol
Extensions, rather, the command SITE BUFSIZE can be used to achieve the same
result.

For the PARALLEL features of GridFTP, this server is capable of operating as
a non-striped server only. It may inter-operate with other striped servers.

@subsection globus_gsi_wuftpd_prerequisites Prerequisites

In order to build the wuftpd daemon you will need the GridFTP Control
and GSI development packages, along with their dependencies.

In order to run the wuftpd daemon with GSI authentication you will
need to have configured your host with the globus_ssl_utils
setup package.

@subsection globus_gsi_wuftpd_building Building

GSI and GridFTP support is only enabled when using configure and
make (see README.AUTOCONF). You cannot use the makefiles in the makefiles/
subdirectory and expect to get GSI support.

The simplest way to build the server is using the globus-build tool, supplied
with the Globus packaging tools. If you want to configure manually, follow
these directions:

@par Step 1. Configuring By Hand

When running configure add the following option to get GSI support:
@code
--enable-gssapi=globus
@endcode

Currently configure will look in /usr/local/globus and /usr/local/gsi
and GLOBUS_INSTALL_PATH for a Globus or GSI installation. If your installation
is not in either of those locations you will need to tell configure where to
find it with the following option:
@code
--with-gssapi-dir=<path to Globus/GSI installation>
@endcode

Currently configure uses the ssl configuration used by your globus build.
If your ssl installation can not be found via this method, then you will
need to tell configure where to find it with the following option:
@code
--with-ssl-dir=<path to SSLeay installation>
@endcode

By default the resulting binaries and man pages will be installed
undef the prefix /usr in bin/, sbin/ and man/. Although a Grid-enabled
wuftpd will also behave like a normal wuftpd, you may want to change
this install prefix to give a clear indication of this binary. To
change the prefix from /usr, use the following configure option (this
is a standard wuftpd feature):
@code
--prefix=<prefix to replace /usr>
@endcode

Normally, the wuftpd looks in /etc for configuration files. This version
can be configured to look in $GLOBUS_LOCATION for configuration files
by using the following option:
@code
--with-globus-paths
@endcode


@par Step 2: Building

Just run 'make' as usual.

@par Step 3: Installation

Run 'make install' to install the binaries under /usr or whatever
prefix you chose in the configuration step.

@par Step 4: Configuration

The GSI-enable wuftp should run on it's own port as assigned by
IANA. This port is 2811/tcp. Add the following line to your
/etc/services file:
@code
gsiftp          2811/tcp
@endcode

Then add the following line to your /etc/inetd.conf file:
@code
gsiftp  stream  tcp     nowait  root    /usr/sbin/in.ftpd in.ftpd -l -G <GLOBUS_LOCATION>
@endcode

Note that you may need to change the path to in.ftpd if you specified
a different prefix for installation.

The '-l' option indicates that wuftpd should log all connections (this
is a standard wuftpd feature).

The '-G' option indicates what GLOBUS_LOCATION should be used to locate
ftp configuration files.

Then restart inetd however you normally do so (typically 'kill -1
<inetd's pid>').

@subsection globus_gsi_wuftpd_changelog ChangeLog
@code
0.6    
 + Added support for building binary packages using globus-build's
   patch-and-build scheme.

0.5    17 May 2001
 + Fixed configure bug causing SIZE to always return 0 on Solaris machines.
 + Added support for DCAU, PBSZ, and PROT for data channel authentication
   and protection.
0.4b   15 Dec 2000
 + SC'00 backend server code
 + 64 bit file support, updated to globus 64 bit file ftp control API
0.4b4  25 Oct 2000
 + Fixed build problems when globus data not enabled
 + Missing file "configure" in the last tarball
 + Fixed "SITE BUFSIZE" response text 
 + "SITE BUFSIZE" command implemented for globus-data
 + Striped-server backend code included.
 + Added support for profiling the wuftpd server
 + Stop truncate files when doing extended-block mode restarts
 + Improved performance of parallel transfers

0.4b3  10 Oct 2000 
 + parallel file transfers implemented.

0.4b1   9/19/00
 + initial addition of GridFTP support.

0.3b1	6/27/00
 + src/ftpcmd.y, src/ftpd.c: Applied lreply-buffer-overflow.patch
   from www.wuftpd.org to fix security hole.

0.2b2   6/19/00

 + aclocal.m4: Fixed problem with the obsolete --with-gssapi overriding
   the argument to --enable-gssapi

0.2b1	4/24/00

 + Added AFS support. Support for Transarc AFS libraries somewhat tested.
   libkrbafs support still untested.

 + README.GSI: Fixed inetd.conf example line.

 + aclocal.m4: Fixed typo with --with-gssapi. Removed exta -lsys from AFS_LIBS

 + src/ftpd.c: Moved gssapi_setup_environment() call so that KRB5CCNAME
   now gets set properly.

0.1	3/6/00
@endcode
*/
