>What is the progress on development of a program to automatically (and
>quickly) redial and reconnect to a SLIP or PPP server? Is this done
>yet (I have seen no announcements for it)? The dial on demand still
>might work provided that it will trigger on ping or some such continuous
>"demand". I'm using SLIP right now but I can switch to PPP easy enough
>I am sure.
I realize that you are not looking for "dial on demand" per se, but
let me clarify what diald does, since I think it will do what you want.
First, I am assuming that what you want is a program that will
keep the line up ALL the time, and that the instant it goes down it will
notice the hangup and dial out again.
Now, diald does "dial on demand", but the concept of demand is somewhat
flexible. Diald maintains a queue of "live connections". If there is
anything in this queue it thinks the line should be "up". If for any
reason the line goes down while it thinks it should be up
(i.e. it sees a hangup on the serial line), then diald will immediatly
redial the line. Notice that there does NOT need to be any actual traffic
between the time that the line goes down, and the line is redialed.
It simply needs to be the case that the connection queue is non-empty.
Now, to accomplish what you want one just configures diald so that its
connection queue is never empty. This is not particularly hard.
The way diald maintains its connection queue is to run each packet
it receives through a function that generates an "identifier", which
is then placed into the queue with some timeout. It will stay in the
queue until the timeout expires. If the identifier is already in the
queue then it is replaced by a new copy with a new timeout.
If we configure diald to assign the same identifier to all packets,
and give them a very large timeout value, say something on the order
of a few years, then the queue will only become empty if the traffic
falls below one packet every few years.
I hope this clarifies things somewhat. If not, feel free to ask me
questions.
-- eric
---------------------------------------------------------------------------
Department of Computer Science, University of Toronto