1Call Manager is a single-threaded application.
2It's easier that way.
3Nothing blocks except a select() call.
4
5The pptp code provides an fd_set for us to watch, and a function
6to call to see if a given event pertains to the pptp code.
7Each CALL connection goes in the exceptions set, and is watched for close.
8We need a separate list of these, to check against the fd_set when
9an event happens.
10
11Writes get copied in a queue, and are only written if the select says we
12can.
13
14Reads go in another queue -- non-blocking! -- and messages are made from
15the queue as we are able.
16
17We register callbacks on significant events (any and all of them, if
18we please) which can trigger a close on a user unix socket, for
19example.
20
21Nomenclature:
22  inet_read|write  ... TCP port 1723 PPTP control connection
23  unix_read|write  ... Call manager Unix socket to pppd/gre.
24