2 pptp hostname [[pptp options] --] [pppd options]
6 gethostbyname([hostname]) to get ip number.
8 Try to open unix domain socket at /var/run/pptp/ip.num.ber.here.
9 If not found, launch call manager for that ip address.
11 Call manager opens unix domain socket at /var/run/pptp/ip.num.ber.here, does:
12 1) Open connection to the ip address using port 1723 protocol.
13 2) accept unix domain socket connection.
14 [wait for any pptp call request to this ip]
15 3) On receiving a connection, open CALL to ip.address using port 1723.
16 2) send callID over unix domain socket for gre encapsulation.
17 3) Keepalive the socket. When either side closes socket, send
18 call-close message to ip.address using port 1723.
19 4) on close of last call, send connection close using port 1723,
20 close the unix domain socket at /var/run/pptp/ip.num.ber.here,
23 Once call manager is opened (fork when done to return status to parent),
24 the main process forks.
25 Parent) launch gre-copy task. Holds call manager socket.
26 Child) launch pppd with command-line options.
28 Killing any of the three threads should cleanly shutdown system. HOW?
29 Send pid of parent and child to call manager after fork over
32 Alternatively pptp may be launched by pppd. One advantage is that
33 many existing tools for managing serial ppp connections can be used with
34 pptp connections as well. Another is some pppd options can only be used
35 this way. In particular the options "persist" and "demand" may be of use.
37 Add the following option to your pppd options script:
39 pty "<insert.path.to>/pptp hostname --nolaunchpppd [--phone phone-nr]"
41 and start the connection like any other pppd connection. Note that
42 old versions of pppd may not support the pty option.
44 The following options are understood by pptp:
47 Specify the phone number for the connection. This is required
48 by a number of ADSL services.
51 Needed if pptp is to be launched by pppd. See above