home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1998 April
/
ChipCD_498.iso
/
software
/
ftp
/
wftp
/
winftp.doc
< prev
next >
Wrap
Text File
|
1994-01-07
|
18KB
|
482 lines
WinFTP - A WinSock-based FTP Client for Windows 3.1 and Windows/NT.
Written by : Santanu Lahiri
Based on : WS_FTP & WS_PING by Mr John A. Junod
Release Date: January 7th, 1993
Please read the installation guide before proceeding with the actual
installation of this software, as there are some incompatibilities
with the original version.
WinFTP is based on the WS_FTP program originally written by Mr John A.
Junod, for Microsoft Windows 3.1. In WinFTP, I have added a few features
that I feel would be nice to have in a program of this kind. I am using
the FTP engine from WS_FTP, as I believe Mr. Junod has done a really
superb job on it, and I give him full credit for that. I would like
to take this opportunity to thank him for releasing the source to Public
Domain. That has made it possible for me to learn some of the basics
of WinSock programming from a working source.
I am including the source for the project as part of the release.
Unfortunately, I do not have the necessary expertise in or access to
Borland's compiler or environment to make the code portable to either.
This current version has been compiled with Microsoft Visual C for Windows
and Visual C for Windows NT. If you adapt this code to Borland's compiler,
please consider making the source available as Public Domain.
If you run into any bugs in this release, or would like to see other features,
please let me know at the following address, or simply post on alt.winsock.
I will attempt to maintain the source, but I can not guarantee a prompt
turn-around. If you add to or modify the source, please consider contacting
me so that I can incorporate the changes as well.
Internet: slahiri@magnus.acs.ohio-state.edu
BITNET : lahiri@ohsthr
Disclaimer.
------------
While I have run this software on several different machines and operating
systems, and have made an attempt to fix any bugs I've run into, you use
this software at your own risk. To the best of my knowledge, the program
is virus-free and has not exhibited any unusual tendencies to go berserk.
However, I am not liable for any damages you may incur as a consequence of
using this software.
Also, while this release was posted using Ohio State University's
resources, OSU is not responsible for it, nor should it be held liable. My
development of this software was done independent of my connection to
OSU.
------------------------------------------------------------------------
Now with the pleasantries out of the way, here is a description of the
release itself. For those of you who had already gotten the previous
release (WS_FTPB.ZIP, not WS_FTP.ZIP), you will need to make some
modifications to your INI file. These are detailed later.
The INI File Format.
---------------------
The program works on the presumption that it is easier to remember and
understand a descriptive string like "CICA.Indiana Windows File Archive"
rather than the name ftp.cica.indiana.edu. And the assumption that now
and then we need to log in to the same machine using more than one User
ID. The concept of a Configuration is that you associate a description
with a combination of Host ID and User ID. Once a Configuration is
defined, it is unique.
The .INI File format is given below. You can supply a Configuration
string to name each configuration. In this version, the HostType
values are as follows:
AutoDetect 0
Unix 1 QVT 8
IBM VM 2 IBM/TCP 9
VMS/Multinet 3 Chameleon 10
VMS/UCX 4 SuperTCP 11
Ftp Software 5 SI NT FTPD 12
CUTCP/NCSA 6 IBM MVS 13
NOS 7 UniSys 5000 14
The following file is a sample WINFTP.INI file. If you wish to set
up a proper initialization file, you must edit all references to
directories and all passwords.
WIN16: Copy the WINFTP.INI file into the WINDOWS directory
WIN32: Copy the WINFTP.INI file into the \WINNT directory
Sample WINFTP.INI file:
---------------------------
[WINFTP]
CONFIG=Oakland FTP Service
HOSTNAME=oak.oakland.edu
USERID=anonymous
MAILADDR=slahiri@magnus.acs.ohio-state.edu
VIEWER=d:\pfe\pfe32
LogFile=
LogFlag=On
TempDir=D:\TEMP
ConfigNum=20
ViewerCount=6
Retain=0
DblClk=1
AUTOSTART=1
FLAGS=21
CFG0=Oakland FTP Service
CFG1=Monash FTP Archives
CFG2=Biochemistry
CFG3=Cica FTP Archives
CFG4=SunSite Archives
[WINFTP:Viewer]
Viewer1=A,.TXT,D:\PFE\PFE,D:\Docs
Viewer2=I,.ZIP,D:\WIN\WIZ\WIZUNZIP
Viewer3=I,.GIF,D:\WIN\WINGIF\WINGIF,D:\WIN\WINGIF
Viewer4=I,.BMP,D:\WIN\WINGIF\WINGIF,D:\WIN\WINGIF
Viewer5=A,.LST,D:\WIN\GANDER\GANDER
Viewer6=I,.WRI,WRITE
[WINFTP:Oakland FTP Service]
HostName=oak.oakland.edu
UserID=anonymous
PASS=slahiri@magnus.acs.ohio-state.edu
HostType=AutoDetect
TimeOut=65
Save=0
[WINFTP:Monash FTP Archives]
HostName=ftp.cc.monash.edu.au
UserID=anonymous
PASS=slahiri@magnus.acs.ohio-state.edu
DIR=/pub/win3
HostType=AutoDetect
TimeOut=65
Save=1
DIR1=/pub/win3
DIR2=/pub/win3/access
DIR3=/pub/win3/drivers
DIR4=/pub/win3/drivers/printer
DIR5=/pub/win3/nt
[WINFTP:Biochemistry]
HostName=biochemistry.bioc.cwru.edu
UserID=anonymous
PASS=slahiri@magnus.acs.ohio-state.edu
HostType=Unix
TimeOut=65
[WINFTP:Cica FTP Archives]
HostName=ftp.cica.indiana.edu
UserID=anonymous
PASS=slahiri@magnus.acs.ohio-state.edu
HostType=AutoDetect
TimeOut=65
[WINFTP:SunSite Archives]
HostName=sunsite.unc.edu
UserID=anonymous
PASS=slahiri@magnus.acs.ohio-state.edu
HostType=AutoDetect
TimeOut=65
Description of Dialogs used in WinFTP
======================================================
The HostName Dialog
---------------------
This dialog appears when you wish to connect to a host and click on the
"Connect" button. Note that the "Save Configuration" option has now been
replaced by "Save Directories." and has a different functionality to it.
The components of the dialog are:
Config : The name assigned to the configuration.
Host : The name of the Remote host you wish to connect to.
UserID : User ID you will be logging in with
Passwd : Corresponding password
TimeOut : Time in seconds after which WinFTP will abort the connection.
HostType: Type of Operating System on the host you are connecting to.
Script : Name of a Script file. Not Implemented yet. DO NOT USE.
Account : MiniDisk Password option. Not implemented yet, DO NOT USE.
Save Password : Will save your password as part of your configuration.
Save Directories: If selected, will save list of visited directories on
Close or Exit.
Anonymous Login : Resets UserID & Passwd fields to appropriate values.
DelCfg : Delete Current configuration.
SaveCfg : Save/Update Current Configuration.
Cancel : Cancel the Dialog.
OK : Accept Current Configuration & Log in to Host
If a configuration name is not supplied, WinFTP will attempt to create
one when saving a configuration.
The host types currently supported are listed above in the .INI file
section. If the type of host you are logging into is not available
in the list, please contact me with a directory listing and I will
attempt to include it.
The PingHost Dialog
--------------------
This dialog allows you to query a name server or your hosts file for the
InterNet address corresponding to a host, and ping that host if you
wish. The "Resolve" button performs the DNS query, while the "PingHost"
button pings it. You can specify the size of the Ping packet, and the
repeat count.
The Ping code draws heavily on the WS_PING program by John Junod.
Both blocking and async ping operations are supported, at least on the
Trumpet stack.
This function is still not quite there, though. For now, I've only been
able to get it to work with the Trumpet stack, version A17, A18. It does
NOT work under Win/NT, or with the FTP Software stack as yet. It works
with the Trumpet stack only because this stack seems to support the
socket type SOCK_RAW when creating a socket. Any suggestions as to
using a different socket type or code is welcome.
The Options Dialog
--------------------
Program Options
Viewer : Default viewer to use if no association is defined or found.
EMail : Default password for anonymous logins
TempDir: Default Directory for temporary files, for viewing purposes.
AutoConnect: Hostname Dialog to be displayed on startup?
RetainFiles: Leave viewed files on Temporary directory to be cleaned
up manually.
Viewers
Type : File Extension, such as .TXT, .ZIP, .BMP etc to look for.
Viewer : Program to use in order to view the selected file.
VuDir : Directory to use for this viewer.
TransferType: The type to be used (ASCII or Binary) for downloading
files from remote host prior to viewing.
DoubleClick: Interpret double-click on a file as a View command or a
Transfer.
FTP Session Options
Verbose : If selected, shows every message being processed.
Prompt : Ask User for file name before transferring files.
RecvUniq : Assign Unique File name when receiving files.
PortCmds : Internal - Pick Unused port or reuse existing socket.
Bell : Sound bell on transfer
Transfer Mode: Default Transfer Mode to use - ASCII, Binary or L8.
Viewer Support in WinFTP
==================================
I have added Viewer support for various file types. You do need to
define the viewers, though. The section in the .INI file labelled
[WINFTP:Viewer]
has the following format:
ViewerNN=<TransferType>,<FileExtension>,<ViewerName>[,<ViewerDirectory>]
where TransferType is A (ASCII) or I (Image/Binary)
FileExtension is of the form ".EXT"
ViewerDirectory is the directory where the file will be viewed
Example:
Viewer1=A,.TXT,D:\PFE\PFE,D:\Docs
Viewer2=I,.ZIP,D:\WIN\WIZ\WIZUNZIP
If you manually add or delete viewers, you should also update the
ViewerCount variable in the [WINFTP] section
The Viewer type is determined by the file extension, so this may or may not
work for every type of file. Also, when specifying a viewer, you MUST
specify the transfer type. For example, if you wish to view .ZIP files,
you must set the transfer type to Binary, or the downloaded file will be
garbage.
Lastly, if there is no viewer defined, the Windows version will attempt
to use the associations defined for the File Manager. If it does not
find one, it will use the default viewer, with ASCII transfer type.
Modifying the WS_FTP.INI file from the WS_FTPB release
======================================================
For those of you who downloaded the WS_FTPB.ZIP archive, I apologize for
putting you through this inconvenience. The WS_FTP.INI filename is now
used by the original WS_FTP program, hence I have changed the name of my
application to WinFTP. You can convert the WS_FTP.INI file created by
my previous release by renaming the file to WINFTP.INI, and replacing
all occurances of WS_FTP in the file by WINFTP using a text editor like
NotePad, or Edit.
I strongly recommend switching over from the WS_FTPB release as there has
been a substantial number of bug fixes in this release of WinFTP.
Release Notes :
==========================================
December 14th, 1993
--------------------------
This release includes a Win16 version of the program as well as a Win32
native application. The Win32 application was compiled with the Microsoft
Visual C++/NT compiler for a 486 class machine. I am not sure if it
will also run on a 386. You are welcome to try it.
Following are some of the features of the software:
----------------------------------------------------
+ Configuration Entry as the base unit for the HostName dialog, and
the ability to save and delete configurations within the dialog.
This allows you to have multiple logins defined for the same host
using different configuration names.
+ A "Directory History" box for both local and remote sites so that
you can pick a directory you have already visited, without having
to traverse the entire directory tree.
+ Association of frequently visited directories with each host. The
directories are saved along with the configuration, and the next time
you log in using the same configuration, the History box is
initialized with this list. You do need to set a flag for this.
+ File Specification filters. This will allow you to look for specific
file types such as *.txt, or a*.zip in the local and remote hosts.
+ File Viewer support. You can specify viewers through the Options
Dialog and use them to view files at the remote of local host. If
no viewer is defined, attempt to use associations from File Manager.
See the section on Viewer Support for more details.
+ Ability to interpret a double-click on a file name as a View command
rather than a file transfer. You can select the mode from the
Options dialog. This was a request from an user of the Norton
Desktop software.
+ Message Logging ability. Select the Flags/Log To File option on
the Debug window to enable or disable Message Logging. by default
the function is disabled.
+ Ability to Ping a remote host. This is available under the Host menu
item. See section on PingHost Dialog for details.
Future Enhancements Planned
----------------------------
+ Ability to run scripts.
+ Ability to use MiniDisk Passwords.
+ Ability to perform transfers through firewalls.
The software was tested on a 486 PC Clone with several remote hosts
using Peter Tattam's Trumpet Winsock A17 & A18 with the internal SLIP
driver. The Windows NT version was tested using the Microsoft WinSock
implementation released with the Windows NT SDK, final release.
The Test Host Types were VMS/Multinet, VMS/UCX, QVT/Net 3.94, Ultrix,
IBM MVS and flavors of Unix as found on various FTP sites.
Known Bugs:
-------------
On the Windows NT version, I get an error when I am uploading a file to
the remote host - "Connection reset by peer". I am trying to track
this. However, it does not seem to affect the actual upload.
There is also a resource leak that I have not yet been able to identify.
I believe it may have to do with the way I paint the screen. But the
leak is sporadic, and if anyone else notices it, I would like to be
informed so that I can fix it. Also any suggestions on tracking it
is most welcome.
Compiling for Windows Vs Windows NT
------------------------------------------
The source for the program is included in the ZIP file WSFTPSRC.ZIP. It
is for both environments, except that when compiling under Windows NT,
you need to define the symbol "WIN32". I have included makefiles for
both Visual C++/Windows and Visual C++/WinNT. These can serve as a
starting point if you wish to recompile the software.
Version of 01/07/94
==========================================
General Notes
-------------------------------------
This version should be quite a bit more stable than the last
release. I have received a number of suggestions as to desired
features. A few have been implemented, others are still waiting.
For those of you who wanted a macro feature, I am sorry, but
this version is not it. However, some other ideas are in place
and hopefully will prove useful.
Also, this will be the last release with identical code for the
Windows and Windows NT. I am reworking the code completely and
in the next release I would like to take advantage of NT-specific
features such as multithreading and so on. Don't know how much
time I'll have to devote to that though. So don't hold your breath.
Bug Fixes:
------------------------------------------------------------
The bug causing WinQVT to choke has been fixed. Logging out will now
correctly restore the FTP Server to the Ready state.
A memory overwrite that was causing a random GPF has been fixed.
A bug that prevented more than twenty configurations has been fixed.
Features added this version:
-----------------------------------
+ %Done Bar - This will be displayed on all uploads and on downloads
where the server sends the file size in bytes to the client.
+ Zoom Window - Lets you view the messages displayed in the main window
in a separate window, hopefully with a more readable font.
+ FireWall Info - You can finally specify the Firewall info from the main
window. However, this feature is still untried as I do not have access
to a firewall host. Located under the "File" menu item.
+ Delete All Dialog - Now you can get around the "Confirm Delete" message
if you are deleting multiple files.
+ DragDrop Capability - Drag a set of files from the File Manager and drop
them anywhere on the main window to upload them to the remote host.
+ Directory Sort feature for Remote Directory. In this version you can
have the remote directory sorted by name or by date & time if you are
logging in to an Unix Host. The sorted directory will be visible
using the LongDir command. Unfortunately, I have not implemented it
for every host type yet, so for non-Unix hosts you can not do this yet.
Look under the "View" menu item for this option.
Menu Layout:
===========================================================================
File View Hosts Script Zoom About
WinFTP Setup Sort By Name Ping Host
LogFile Name Sort By Date Host Types
FireWall Setup DebugWin
Commands SaveDir
CWD, HELP, Log To File
LIST,NLST,
MKD, QUOTE,
PWD, RETR,
RMD, STOR
Connect
Disconnect
Download
Exit