ftp.proxy - history


** Notice: Version 1.0.2 - 1.0.6 and 1.0.9 - 1.1.1 were never released
           to the public.

Version 1.2.3 - 30072004asg
- --------------------------------

  * Fixed bug in waitpid handling in daemon mode.

  * Added optional xferlog logging.

  * Added -q option to set the source IP of the outgoing control
    connection (which set also the IP for data connections).


Version 1.2.2 - 16122003asg
- --------------------------------

  * Fixed a error in ending an connection after receiving "QUIT".

  * Added support for configuration files. Two new parameters are
    added for this. (-f and -F)

  * renamed `dcp' to `ctp' because we thought that `connection translation
    programs' gives a better idea of what the really do.


Version 1.2.1 - 19082003asg
- --------------------------------

  * Fixed a bug in dologin.
    Now the use of ftp.proxy with a fixed server works again. 


Version 1.2.1 - 19082003asg
- --------------------------------

  * Fixed a bug in dologin.
    Now the use of ftp.proxy with a fixed server works again.


Version 1.2.0 - 11072003asg
- --------------------------------

  * Looking in this file this numbering scheme displeased me.
    From now on every beta release get a subnumber and official 
    releases a major number.
    So this new release will start with 1.2.0


Version 1.1.7.pre3 - 09072003asg
- --------------------------------

  * Fixed missing line in the do_login function. Could solve unexpected
    behaviour of ftp.proxy.
    Mentioned by Michael A. Meiszl and Rasca Gmelch.


Version 1.1.7.pre2 - 06042003asg
- --------------------------------

  * Another attempt to deal with an old problem: Suppose the client
    lists an almost empty directory (or does any other small data
    transmission with the remote server) is might happen that the
    proxy receives and spools the data before the 150 response is
    send to the client.  ftp.proxy uses the TCP_NODELAY socket
    options since version 1.1.4 but what if the server (or upstream
    proxy) causes the problem?

    The proxy does now track if the 150 response arrived already and
    the data transmission between client and server is delayed until
    it has been received.
 

Version 1.1.7.pre1 - 04042003asg
- --------------------------------

  * Introducing `dynamic configuration programs' aka DCP's.  In short
    a DCP receives username and remote server as supplied by the user
    and sends the proxy server the real FTP server the proxy should
    connect to with perhaps different username and password.

    Everything of this is optional.  Furthermore there is yet no
    documentation because DCPs are work in progress and even the DCP
    scheme is not fixed yet.  There is however a sample DCP named
    operator.dcp showing how things basically work.

    DCP's required changes to the source code.  Even if you do not
    use DCP's the changes may influence the way ftp.proxy is working.

    The DCP's are based on the idea of 'connection translation program'
    from Damian Ivereigh and replaces this feature introduced in 1.1.6.beta6


Version 1.1.6.beta8 - 25MAR2003asg
- ----------------------------------

  * Changed -D option: the proxy server port number must now be set
    with the -D option.

    
Version 1.1.6.beta7 - 10FEB2003asg
- ----------------------------------

  * Added compile-help in src/Makefile for solaris and a putenv
    workaround for the missing function.
    Hope ftp.proxy will now compile on solaris without errors.
    Mentioned by Gregoire Barbier, Lefteris Giakoumatos, 
    Christophe Giraud-Briquet, Neil McCalden and others.

  * Complete rewrite of multiline server response handling.
    Handling is now much more RFC conform in this point.


Version 1.1.6.beta6 - 22JAN2003asg
- ----------------------------------

  * Added sample script to start ftp.proxy in debug mode.
	
  * Added sample trp script.

  * Do not fork ftp.proxy in daemon mode when debug option is set.

  * Changed syslog calls to be more ANSI-C conform.

  * Source code compatibility: changed the syslog's `%m' to `%s' with
    a `strerror(errno)' argument.

  * Added support connection translation program (short: trp's), mentioned
    by Damian Ivereigh.

  * Introduced version variable in Makefile.

  * Added new command line option '-u' to allow usernames with a '@'
    in it. Mentioned by Paul Dragicevich.
    
  * Changed GPL to current version.

  * Changed getc_fd to handle servers that close the data connection.

  * Changed proxy response on PASV because mozilla does not like it.

  * Added daemon mode. Now you can start ftp.proxy as daemon using '-D'.
    This is still experimental do not use this on productive environments.
    The feature will be added official in the next release.
    Additional parameters are required.

  * Applied patch which fixes problems with multi-line server greetings,
    as it appears on 'AppleShare IP FTP Server'. Mentioned by Menno Smits. 

  * Changed default log facility to LOG_DAEMON. On Linux, FreeBSD and NetBSD
    it is still LOG_FTP. 

  * Modified cfputs() to send the line together with the CR/LF in one
    packet to make broken firewalls happy.


Version 1.1.5 - 04FEB2002asg
- --------------------------

  * Changed 'dologin()' so that ftp.proxy now supports server that do not
    want a password after the 'USER' command.

  * Added support for the FEAT command.
    ftp.proxy only report features to the client that are support by both
    the remote ftpserver and the ftp.proxy.

  * Disabled the modification in  request handling made in 1.1.4 for
    non-linux systems.  

  * Added '-y' to allow any data ports on any remote interfaces.  Use this
    option the following case:

	The proxy connects to an FTP server which runs on a network card
	with multiple IP numbers, a data connection is initiated (either
	PORT or PASV) and the proxy refuses the connect because the remote
	port is not on the interface the proxy uses for the data connection.
	This happens if e.g. the remote server runs on eth0:2 but the
	server uses eth0 for it's data connection port.  This is clearly
	the server's fault, but anyway.  ftp.redhat.com was reported to
	work that way.

    Try to avoid using this option, because it can cause security problems.

  * Changed log facility to LOG_FTP. (Hope this will work on all systems.) 

  * ftp.proxy now allows blanks and other special charackters in passwords.
    Added new parameter to allow this. (ftp.proxy -B)


Version 1.1.4 - 21JAN2002asg
- --------------------------

  * Fixed potential problems after immediate initial unseccsesful up/downloads.

  * Fixed error in `cmdtab[]'.  ftp.proxy expected parameter for PASV. 

  * Small modification in request handling to prevent us from the rare case
    that the ftp.proxy transfers data to/from the client before the client
    has seen the "150 ..." message.


Version 1.1.3 - 06DEC2001asg
- --------------------------

  * Fixed missing entry in syslog output. Mentioned by Markus Meitner. 
  
  * Changed array name MAXBSIZE to FTPMAXBSIZE to solve conflict when
    compiling under NetBSD or SUN Solaris.  Mentioned by Denis Ahrens.  
 
  * Changed path for `#include ' to `' in all sources
    to improve compatibility to NetBSD or SUN Solaris. 
    Mentioned by Denis Ahrens.  

  * Added support for the XCUP command.


Version 1.1.2 - 13NOV2001asg
- --------------------------

  * Added old X-Commands which are reintroduced by Microsoft W2K
    FTP-Client (XCWD, XPWD, XMKD, XRMD) see RFC 1123 and RFC 775.   

  * Added support for the MDTM command to check the modification
    time of a file.

  * Added new parameter to check Version. (ftp.proxy -V)

  * Enhanced server handling:

    - Attempt to solve early write events:  In some rare cases the FTP
      server send data through the data channel before the command response
      was received by the proxy.  ftp.proxy can detect such events but not
      really handle it due to the way it works.  An artifical sleep(2)
      might work as a work around.

    - There is at least one type of firewall around that didn't like
      FTP commands split into two TCP packets.  They disconnected from
      the proxy without any notice.  This problem has been fixed now.

    - ftp.proxy handles now multiline responses after a data transfer.

  * Eliminated compiler warning.


Version 1.0.7 - 11MAY2001asg
- --------------------------

  * Several manpage updates.


Version 1.0.6 - 20DEC2000asg
- --------------------------

  * Added support for the SIZE command.


Version 1.0.5 - 17DEC2000asg
- --------------------------

  * Introduced PASV mode.

  * Several minor bug fixes.


Version 1.0.4 - 27JUN2000asg
- --------------------------

  * Fixed bug in readline_fd()/getc_fd(): Some FTP servers send two
    response lines in a single TCP/IP packet.  The second line was
    not recognized by ftp.proxy before.

  * Added -b switch to allow blanks in filenames (still not allowed
    at the beginning or end) on customer request.


Version 1.0.3 - 18MAY2000asg
- --------------------------

  * Added -p option to specify the data source port ftp.proxy uses
    to connect to the client.  It's possible to tell ftp.proxy to
    use the FTP standard data port 20 but this requires root perms
    for the proxy.  Mentioned by Juergen Ilse via Wolfgang Zekoll.


Version 1.0.2 - 23SEP1999wzk
- --------------------------

  * Look into sample-ccp for a command control and applied monitoring
    example.

  * Added `-b' option to allow blanks in FTP command parameters.

  * Added the monitor mode.  This is experimental.

  * Fixed a bug in the command lookup: an unknown command resulted in
    a sigsegv.

  * The ccp's output goes now to syslog while and it's stderr is sent to
    the client.

  * Fixed a file descriptor bug inside the acp and ccp handling code.


Version 1.0.1 - 27AUG1999wzk
- --------------------------

  * Changed FTP session timeout to 15 minutes.

  * Added support for command control programs.


Maintained by Andreas Schoenberg