wrcp Version 0.91
Copyright (c) 1994, Gregorian Programmers Guild

Windows Socket rcp client
Written by Steeve McCauley
steeve@stoner.eps.mcgill.ca

Description
-----------
This is an rcp client for Windows sockets version 1.1.  I provide the
program as freeware and will not accept any responsibility for its
use or abuse.  Also note that there is no warranty express or implied.
Use it at your own risk.

Changes since 0.9
-----------------
 - fixed problem forming a correct path when recieving files to the
   root directory of the hard disk.

Changes since 0.4 beta
----------------------
 - added a 'backup' option.  By this I mean, that when sending files
   to a remote host, you can have the program only send files that are
   x days old or newer.  See the options dialog.
 - did a whole bunch 'o tweaking here and there and was too lazy to
   document the changes I was making so you'll just have to believe
   me.

Changes since 0.3 beta
----------------------
 - added an options dialog ...
    o Minimise program on send
    o Minimise on receive
    o sound when done
    o save settings
    o password protect
 - When receiving a remote directory the last part of the remote path
   is stripped and appended to the local current directory
 - When receiving a file that is NOT a valid 8.3 dos file spec a dialog 
   box prompts you to enter a valid name, otherwise files are copied as is
 - added an Abort button on sends (I will also add this to the
   receive side, REAL SOON NOW)

Changes since 0.2 beta
----------------------
 - cleaned up the interface (moved controls about)
 - copies are A LOT faster now that the progress is displayed
   as the number of bytes copied rather than printing out
   the silly little dots to the edit control.  (Tranfer rates
   went from about 20K/sec to about 90K/sec between my windows
   machine and my unix machine).
 - added a filter edit control to change directory listing filter.
 - fixed a couple of problems related to receiving directories
   recursively.
 - the edit control is no longer read only
 - added a scroll bar to the edit control

Changes since 0.1 beta
----------------------
 - the program can now recieve files from a remote host but only
   when the copy is initiated locally (that is, the program is not
   set up to respond to a remsh request to send or recieve files)
 - the program has drag and drop abilities.  First you have to set
   up the remote host and specify a default destination in the main
   program screen.  You also have to specify a 'local user'. It is a
   good idea to specify a remote directory and then click on the
   'dest must be directory' button.

Setting up Remote Host
----------------------

   You will have to configure the remote host to accept remote logins
from your Windows box.  Login to the remote and edit your .rhosts
file to include your windows IP address and a suitable local user name
(you can set the local user name in the main program screen).
Each line the the .rhosts file looks something like,

my.ip.address myname

where the address represents a remote host which will be allowed access
to your account.  Note that this file must be owned by you.  See
the man page for hosts.equiv.

   It may also be possible to do this between different windows boxes
but I have not tried it at this point.

Sending Files / Dirs Interactively
----------------------------------

   Assuming that you have set up your remote host to accept remote
requests from your windows machine it is quite simple to send files.
First set the remote user/host and directory (or file) and then
select the files/directories that you want to send.  Click on send
and off they go.  If you've selected a directory, you will probably
want to also click the recurse directories button (otherwise the
send will fail).  Click on preserve attributes to preserve file
time/date stamps.  If you want the remote to be a directory (the
entry in the 'Dir / File' edit control, click on the dest must be
a directory button.

Receiving Files / Dirs Interactively
------------------------------------

   Type in the name of the file or directory into the 'Dir / File'
edit control in the remote options section.  If you've specified
a remote directory you'll also want to click on 'recurse subdirectories'.
Note that I have opted to strip off the last part of the remote
file or dir so that if you specified /users/ted/mydir and were in
the directory c:\files when you clicked Receive, the files in
the remote directory would be recursively copied to c:\files\mydir.
If you click on the 'dest must be directory' button, then the dir
c:\files\mydir in the above example must already exist.

Using the Command Line
----------------------
The program runs automatically if you supply command line options.  If
the command completes successfully the program closes automatically.
Otherwise an error message will be printed.

wrcp [-p] f1 f2
   -p   - preserve file date/time
   f1   - local file (specifies the full path to the file to be copied
          to the remote host)
   f2   - specifies the name of the full path of the file on the remote
          host.  This is specifed as [user@]host:/path/to/destination/file.

   eg. wrcp -p c:\windows\win.ini john@unix.box.org:/home/john/win.ini

wrcp [-p] [-r] [-d]] f1 ... fn directory
   -p  - same
   -r  - recursively copy directories
   -d  - specifies that the remote directory must already exist
   f1  - first file (or dir if -r has been specified) to be copied.
   fn  - last file ... to be copied.
   directory - remote destination directory as [user@]host:/path/to/dir

CAVEATS
-------
 - it is difficult to deal with the file system differences when recieving
   files so the program prompts you for the destination file name before
   copying the file.  I should probably put some logic into the program
   to first determine whether the file will be a valid 8.3 filename before
   prompting the user for assistance.
 - as of now you can only receive one file or directory at a time.
 - can't set directory date/time attributes when recieving (DOS can be
   a real pain sometimes)
 - note that I am currently saving some of the remote options when the
   program is exited.  This is a potential security risk and should
   probably be made an option.

BUGS
----
 - it may not be possible (well easy anyway) to get the program
   to act as a 'rcp deamon'.  I'll have to experiment with this.
   This would require having a remsh deamon always running on the
   local machine.
 - one of these days I'll write a help file.

The program is an port/adaptation of the bsd rcp code.  As such I include
below the copyright notice and all the other legal mumbo jumbo.

/*****************************************************************************
Copyright (c) 1983, 1990 The Regents of the University of California.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
   must display the following acknowledgement:
This product includes software developed by the University of
California, Berkeley and its contributors.
4. Neither the name of the University nor the names of its contributors
   may be used to endorse or promote products derived from this software
   without specific prior written permission.

   THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
*****************************************************************************/

