===============
Getting ICPLD
===============

ICPLD is currently available from http://www.ibiblio.org/icpld/icpld-0.1.tar.bz2 .
It is also mirrored at http://www.northernmost.org/icpld/

ICPLD might very well also be mirrored at other locations, but for the latest official
release, stick to one of the two above URLS.

Do you want to mirror ICPLD? Drop me an e-mail.


===============
What is ICPLD?
===============

ICPLD aka. Internet Connection Performance Logging Daemon (nifty name, huh?)
is a daemon which, by sending ICMP requests to an ip of your selection, monitors
whether your, Internet connection is up. It will log any failures, and stamp 
a log as soon as the the connection is available. It keeps track of when the connection was unavailable, 
as well as for how long. Both totally down, as well as at each occasion of interrupted connection.

=================
Installing ICPLD 
=================

See INSTALL

====================
Where will it work?
====================

ICPLD is known to build and function properly at the following OS's and platforms:

Linux
Free BSD
Net BSD
Solaris

And probably most other somewhat normal UNIX like systems. You got it running on some alien OS? 
Contact me, I'd love to know.

It requires no third party software at all, except for the 'ping' program. A somewhat recent compiler 
is recommended though.

================================
How to use ICPLD & How it works
================================

Personally, I wrote this program, due to my ISP. It was under a period of time incredible unstable, and
didn't perform well at all. So before I called them up, I let ICPLD run a few days. Thanks to this information,
rather than "It goes down every now and then, and stays down for a while", they could see patterns, and solve the
issue rather quickly. 
Well, to the topic; It's recommended to run ICPLD toward a host that's aware of this, as 
constant ICMP requests might be less appreciated by some administrators. This is when the -dinterval switch comes in 
handy, as you can use another interval for checking, once the connection is down. And when a working connection is 
detected, ICPLD will fall back to either the default interval, or the one specified with -interval.
-dinterval should, however, NOT be lower than 3 seconds, as the timeout for two ICMP packets is ~3 seconds. Setting
dinterval lower, will spawn a pinging process, faster than the old one has been terminated.

The normal way to use ICPLD without the configuration file is as follows:
icpld -ip ip.of.the.target -fbip ip.of.another.target

This will fork ICPLD to the background, and send an ICMP request every 10 seconds to ip.of.the.target. If a reply isn't 
received within an appropriate amount of time from either the ip or the fbip, the connection is considered broken and 
a stamp with the time and date is put in the log.

The log may be read by executing 
icpld -log
The log file is by default stored in ~/.icpld/log

Another example would be:
icpld -ip 192.168.0.1 -fbip 192.168.0.2 -interval 15 -dinterval 5
Which will check if 192.168.0.1 is available every 15 seconds. If it's considered down (it doesn't reply), it will try every
5 seconds. 

It is however recommended to use a configuration file since it saves a lot of time on regular usage.

Please note that the log will not be 100% accurate, due to timeout time and interval (the lower the interval, the higher
accuracy you will obtain, as well as higher traffic). It is roughly a few seconds differing at each occasion. 

There's several other options available, please see 'icpld --help', or 'man icpld'  for further information on these.

==========================================
I have; found a bug, had an idea, a tips,
had enough of you and want to flame you.
==========================================

Feedback is always welcomned by most developers. 
Please see http://northernmost.org/~erik/contact.html before sending me any emails what so ever.
Afterward, feel free to mail me at on of the following addresses;
erik.ljungstrom@metalab.unc.edu  <- Preferred
erik@storuman.nu


However, do NOT contact me if your issue involves any of the following;

1. You are trying to compile ICPLD with an ancient GCC version such as 2.*.* or some alien compiler
2. An administrator has confronted you for being naughty with constant ICMP requests
3. You haven't even tried to solve the problem yourself
4. If you haven't read this document first.


But please DO contact me if your issue involves any of the following:

1. You want to hire me for a job (anything, programmer (not likely, huh?), bust-boy, driver, etc..)
2. You want to give me your appreciations and/or thanks
3. You got a cool idea that you would like to have implemented in the next version
4. You want to be a beta-tester.

===========
Thanks to
===========

My wonderful live-in girlfriend for putting up with me constantly bringing her
connection down and up. 

Bob Falfa, for ideas and general help.

Jerry McLewis <jmclw@translab.com>
Balzas Ignachuk <balzas@philips.hu>
