=== !FreeFinger Help File

Motivation

If you do not know what "finger" is or how to use it stop now. You will
be wasting your time.

I wanted to have an implementation of finger which did not lock up the
WIMP even in a TaskWindow. 

Health Warning

!FreeFinger is blacksmithed code. It is ancient code from the days of UNIX soldered
onto a pedagogical RISC-OS application using a collection of freeware libraries.
The building is done with Acorn Desktop C version 4. It probably should be done
with Toolbox and C++ (or Java and JDK-Classlib or Ada95 and an old windsock).

It works. On my machine using Internet 5.02 with RO3.70. If it does not work
for you remember the advice from Zen and the Art of Motorcycle maintenence,
"For assembling the item great peace of mind is required."

It it fails you then given the nature of networking you are probably using
a stressed system. If you are going to write a problem report to the e-mail
at the bottom of the helpfile then decide if you have the time to re-run
a test in a calmer state of mind and log the results OR hey, maybe it's
not worth bothering. It's free and you probably want to do what you were
doing when it went wrong. !FreePing is supplied "as is" and is not warranted
to function on any particular machine. Also using !FreeFinger does not imply
any liability for consequential damages.

Copyright

The software !FreeFinger is Copyright  Peter Chambers 1998.
Certain parts and libraries have copyrights from other authors whose
copyright does not preclude inclusion.

!FreeFinger is FREEWARE and may be used by anyone. It may be distributed
freely by non-profit means. If a fee is charged for copying it that fee
must be strictly to cover the costs of the copying process. All copying
and distribution must be of the whole software including all relevent
notices, credits and documentation.

It must not be sold for commercial gain or distributed as part of a
"cover disc" or profit making software library without the permission of
the author. In the interests of users distribution by on-line means is
preferred and attempts will be made to ensure the latest version is available
on-line.

Credits

The basic function of !FreeFinger is based on the NetBSD Finger.c ported to RISC-OS
by Tom Hughes who seems to have written much of the RISC-OS freeware starting
with FreeNet (though others are now following his sterling example).

The application skeleton is based (a lot!) on Client_Ex by Duncan Ferguson.
Duncan took the attitude that other authors could make what they wanted of it.
I used it to learn how to hack network applications under a dozy GUI. Thanks.

The look'n'some'of'feel and the sprites come from !Finger by Tim Howarth which
is a front end for the command line Finger. I lifted the idea of the Most Recently Used
hostnames from !Ping. Tim encouraged me to just get on with it and replace !Finger
with !FreeFinger in the interests of the users. He also strongly advocated using BASIC
as the size of the runimage is small. Even with the Best Basic In The World I had to
write it in C as the sight of lines like "block!8=&0700008" brings on the red mist.

The next layer down is the ShellLib by Julian Smith which I needed for the output
window. This uses DeskLib also by Julian. He took the same helpful attitude as
the others are replied promptly to my news plea when I found that DeskLib had
no "txt" element.  One day the ghosts of RiscOS-lib will be finally laid.
Until that time free libraries like this which have what programmers actually
use will be our stopgap.

The network interface is provided by NetLib which has the names of Andy Mell
and Stewart Brodie in it's credits. Long ago they tried to explain to me why RiscOS
cannot use "close()" for sockets. Stewart used the word "disjoint" to explain.
This does not detract from the immense value they have given Acorn programmers
in NetLib. Since it matches the interface is Comer and Stevens straight from
the box that's the one that got used. I gather that Adam Goodfellow did the
"gettimeofday()" function which cannot quite guarantee the microseconds so
the time results get granularised in the code (which should always have been
possible).

History


0.02 removed debug logfile fprintf()s for distribution

0.01 improved socket problems, added async connect()

0.00 First hacked from FreePing.

Author

Peter Chambers         mailto:  freeping@hightown.demon.co.uk