
		MUDDLEFTPD DOCUMENTATION (Version 1.1.1)
		Beau Kuiper (ekuiperba@cc.curtin.edu.au)
		License under GPL

1) THE MUDDLEFTPD PROGRAM

1a) System Requirements:

Your system needs to following to compile and run muddleftpd.

* Some operating system that resembles UNIX (linux, FreeBSD, SunOs, Solaris,
  Irix, Ultrix). Muddleftpd has been tested on FreeBSD, linux with libc5,
  linux with glibc2, Irix 5.3, solaris 2.6, linux with glibc2.1 and Sun-os.
* GNU gcc or any gcc compatible compiler (egcs, etc). I will accept patches to
  make muddleftpd compile on non-gcc compilers (as long as nothing breaks).
* GNU make. Other makes seem to get confused about what I use in the Makefile

1b) Building muddleftpd:

* Run the following command in the top level directory

	./configure

  or if you wish to specify a prefix directory to install (eg /usr/local)
  
  	./configure --prefix=<prefix directory>
  
* Open defaults.h. There is a #define CONFIGFILEE statement in the first few 
  lines. eg:

  #define CONFIGFILE "/etc/muddleftpd/ftpd.conf"

  If this is not where you want to place the main config file, then modify it
  to the location and filename you wish use instead. If you don't perform
  this step, muddleftpd and ftpwho will need to be manually told where their
  configuration files are each time they are started.

* run the following to create the executables:

  make

  if you want to create a version that doesn't output startup messages, run:
  
  make QUIET=1
    
  NOTE: on some systems you may need to run gmake instead of just make.

1c) Installing muddleftpd:

* run the following to install muddleftpd:

  make install

* Create the configuration at the location you specified in CONFIGFILE above.
  You may use one of the example configurations (standard set is recommended),
  see examples/README for more information.

1d) Running muddleftpd:

To start muddleftpd, type

muddleftpd [configfile]

If you specify [configfile], then it will use [configfile] as the main
configuration file instead of the one compiled into muddleftpd. 

If you want muddleftpd to run each time you boot the system up, then you need
to put the muddleftpd statement above into one of your startup files,
probably /etc/rc.d/rc.local (on linux systems)

2) TROUBLESHOOTING:

2a) Compile Problems:

If problems occur while compiling, check the following:

* If you are running OpenLinux 2.2, make sure that you have downloaded and
  installed the crypt package. Get it from:

ftp://ftp.linuxland.de/pub/OpenLinux/crypto/2.2/glibc-crypt-2.1-3i.i386.rpm

  Everything should compile OK then.
 
2b) Running problems:
 
If you get the message:

----------------------------------------------------------------------------
  muddleftpd error in file init.c line 51: muddleftpd already running!
  CANNOT RESUME. Goodbye

  This means that you are already running a copy of muddleftpd using the
  configuration file muddleftpd tried to open. (That is, the default
  compiled in config file, or what you specified on the command line).
  Simply close down the old version (with a SIGTERM) and start it again.

----------------------------------------------------------------------------
  muddleftpd error in file shmem.c line 91: Permission denied
  CANNOT RESUME. Goodbye
  
  This means that muddleftpd could not get write permission on the main
  configuration file (It is used for locking the shared memory). You must
  give the user running muddleftpd write permission to the main config file
  muddleftpd will be running as.

----------------------------------------------------------------------------