
  Windows Sockets FTP Client Application -  - Version 93.12.05

  Written by:
      John A. Junod             Internet: <junodj@gordon-css583.army.mil>
      267 Hillwood Street                 <zj8549@trotter.usma.edu>
      Martinez, GA 30907      Compuserve: 72321,366     AOL: jjunod

  THE INFORMATION AND CODE PROVIDED IS PROVIDED AS IS WITHOUT WARRANTY 
  OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  PURPOSE. IN NO EVENT SHALL JOHN A. JUNOD BE LIABLE FOR ANY DAMAGES 
  WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS 
  OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF JOHN A. JUNOD HAS BEEN 
  ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

  This program executable and all source code is released into the public
  domain.  It would be nice (but is not required) to give me a little 
  credit for any use of this code.  The primary purpose of this application 
  was to learn what it takes to write a Windows Sockets Application.

  The user interface for this FTP client is designed with the novice FTP user
  in mind.  Usage should (??) be obvious with the possible exception of the
  the transfer mode; ascii, binary or l8.  All controls are standard Windows
  controls.

  My development and testing was all completed at home on two 386 PC's using
  the Trumpet Windows Sockets DLL Alpha 15 with NCSA Telnet and WinQVT/Net 2.6
  and 3.94 as the remote host.  Source code may be compiled with Borland C++
  in large mode.

  Some code concepts and names are based on code that is copyright by the
  Regents of the University of California or code published in UNIX Network
  Programming by W. Richard Stevens or code in WATTCP or other public sources.
  The rest is based on my knowledge of Windows programming and my 
  interpretation of RFC 969 and the Windows Sockets API version 1.1.

  Known problems:

  1) May not work correctly for some FTP servers due to the directory
     listing that comes back.  In this case the directories and files
     dialog boxes will remain empty and the full directory listing will
     be visible by clicking the [LONGDIR] button.  If you have a host that
     doesn't work, e-mail me a listing of that listing and the output 
     of the remote FTP help command.

  2) No restart of aborted transfers coded.

  3) No abort of transfers coded other than pressing [CLOSE] or [EXIT].

  4) No support for EBCDIC (does anyone use this??) transfers.

  5) Use of menu items in the debug window may be confusing to the novice 
     user.

  6) Makes use of blocking socket calls.

Still to do:
1.  Make it use ASYNC calls.  (anyone want to help???)
2.  Support abort on transfers and restarts if necessary.
3.  Eliminate debug window.  (It could be gone now!  Any comments?)
4.  Windows 3.1 style directory list boxes.

93.10.01
  Fixed the gethostbyname problem.
  Fixed WinQVT/Net 3.x directory expansion problem.
  Fixed transfer abort problem with [CLOSE] or [EXIT].

93.10.05
  added host remembering
  added automatic password for anonymous userid (option mail address)
  corrected problem going to biochemistry.cwru.edu
  corrected linked directories problem (??)

93.10.10
  moved options button to main window
  fixed options, including prompting, bell, receive_unique
  added filename conversion for illegal dos filenames
  added timeout editing in host dialog
  changed listen timeout from 5 seconds to standard timeout
  changed messages going to status window
  set nolinger on socket close
  rewrote error module to eliminate possible copyright problem
  cleaned/colored main window
  added MS Visual C++ makefile

93.10.17
  added host linked userids, passwords, initial directory and hosttype
  added support for new host types (note that these are mostly untested)
  moved debug window routines to ws_debug.c
  changed bind address to 0 for vxdtcp (seems to work ok for Trumpet also,
    so I left it in, even though I never could get vxdtcp to work reliably.
    vxdtcp bind returned a WSAEADDRNOTAVAIL (or something like that))
  corrected bug in filename conversion
  changed anonymous userid processing (must select a check box, now)
 
NOTE:  While WS_FTP allows you to save a password for a host and does some
  minor encryption, it is not intended to be secure and is not recommended
  to be used for private accounts!  It was added on request.

93.10.24
  more clean up of the source code
  attempt to fix problems with Unisys 5000 EXOS (junk) ftp daemon
  fix remote to local name conversion when multiple dots/spaces exist
  fix timeout problem.  timeouts ONLY happen when connecting or
    waiting for control message responses.  send and receive processing
    contains no timeout processing.  timeouts limited to 65 seconds
  rewrote host information routines to use global memory so number of
    saved names may be increased.  userid automatically saved for
    each host.  timeouts saved by host.
  released HBRUSH resources properly

93.11.12
  uses port 21 if "services" file not found
  added two line scrolling status window
  updated debug and paint procedures to multi-window versions
  added period to end of names not having an extention for viewer
  modified about dialog box
  temporary files are now located in the %TEMP% directory instead
    of root of current drive.

93.12.04
  fixed VMS name parsing (hopefully) (93.11.15)
  used protocol 6 if "protocol" file not found
  incorporated AMS gateway (firewall) machine connection (thanks
    to Jeff Welty for code modification)
  lifted restriction on userid and password length
  fixed MVS/VM name parsing 
  incorporated account processing (not tested)
  prompt for password if not entered
  added support for ftp.uwp.edu (use WinQVT/Net)
  eliminated blank lines in VM listing
  added support for NT ftp daemon (use IBMPC TCP/IP)
  added std support (autodetect) for another NT ftpd
  allow a timeout on on initial connection if FTP_PRELIM
  eliminated setsockopt(linger) for Lanera (also fixed problem with
     WinQVT/Net ftp server)
  fixed setdisk problem for MSC++ (uses _chdrive)

93.12.05 (beta of new functions)
  Reworked HOST dialog box and all HOST routines.  Now allows
    unlimited save of configurations, and allows deletions.
  Reworked GATEWAY host dialogs. (Gateways are saved for each config)
  Now uses own WS_FTP.INI file (in Windows directory)  You will
    "lose" all previous hosts.  (If you need information from the
    earlier version, print out the WINDOWS\winsock.ini file.)
    For a good start, copy the WS_FTP.INI file to your Windows dir.
  Implemented DRAG/DROP processing.  You drag one or more files from
    the Windows File Manager and drop anywhere on the main FTP window
    (or when iconized) and they will be transfered to the current 
    directory on the remote host using the current transfer mode.
    This does support file name prompting for name changes.  Default
    name will be the lowercase basename of the file.  You can't drag
    directories and you can't drag from the remote host to another
    process.

STILL NEED A WINDOWS HELP FILE FOR THIS THING.....

