| From | Sent On | Attachments |
|---|---|---|
| Jay L. West | Feb 8, 1996 1:13 am | |
| Nate Williams | Feb 8, 1996 10:10 am | |
| we...@intele.net | Feb 8, 1996 11:34 pm | |
| Nate Williams | Feb 9, 1996 7:47 am | |
| we...@intele.net | Feb 9, 1996 11:10 pm | |
| Jay L. West | Feb 12, 1996 11:32 pm | |
| Jay L. West | Feb 12, 1996 11:40 pm | |
| Nate Williams | Feb 13, 1996 7:23 am | |
| Nate Williams | Feb 13, 1996 7:32 am |
| Subject: | Auto-dial iijppp (was Re: Several misc. questions on user mode PPP) | |
|---|---|---|
| From: | Nate Williams (na...@sri.MT.net) | |
| Date: | Feb 13, 1996 7:32:04 am | |
| List: | org.freebsd.freebsd-questions | |
I think he was just looking for a somewhat more elegant way to starting the interface, as opposed to editing /etc/netstart, which is now supposed to be sacrosanct. Try the following:
Hmm, that's not the impression I got. He was using -auto already, but needed to pint the remote host to get things started.
I was wanting to have the system bring up the link (ie. dial) upon bootup without haveing to do the ping command to 'fudge' an outgoing packet. But I do think the start_if.interface script is rather elegant, and will do it that way. (Albeit, that doesn't solve the original question).
OK, here are my 'ddial' patches updated to the most recent version of ppp in -stable. If you use 'ppp -ddial host', it will do it's darndest to keep the link up *all* the time, no matter if there is traffic needing to be sent.
Nate
--------- Index: command.c =================================================================== RCS file: /home/CVS/src/usr.sbin/ppp/command.c,v retrieving revision 1.5.4.3 diff -c -r1.5.4.3 command.c *** command.c 1996/02/05 17:02:52 1.5.4.3 --- command.c 1996/02/13 15:26:28 *************** *** 99,105 **** { char *mes = NULL;
! if (mode & MODE_AUTO) mes = "Working in auto mode."; else if (mode & MODE_DIRECT) mes = "Working in direct mode."; --- 99,107 ---- { char *mes = NULL;
! if (mode & MODE_DDIAL) ! mes = "Working in dedicated dial mode."; ! else if (mode & MODE_AUTO) mes = "Working in auto mode."; else if (mode & MODE_DIRECT) mes = "Working in direct mode."; Index: defs.h =================================================================== RCS file: /home/CVS/src/usr.sbin/ppp/defs.h,v retrieving revision 1.2.4.2 diff -c -r1.2.4.2 defs.h *** defs.h 1996/02/05 17:02:54 1.2.4.2 --- defs.h 1996/02/13 15:26:29 *************** *** 59,64 **** --- 59,65 ---- #define MODE_AUTO 2 /* Auto calling mode */ #define MODE_DIRECT 4 /* Direct connection mode */ #define MODE_DEDICATED 8 /* Dedicated line mode */ + #define MODE_DDIAL 16 /* Dedicated dialing line mode */
#define EX_NORMAL 0 #define EX_START 1 Index: ip.c =================================================================== RCS file: /home/CVS/src/usr.sbin/ppp/ip.c,v retrieving revision 1.4.4.2 diff -c -r1.4.4.2 ip.c *** ip.c 1996/02/05 17:03:02 1.4.4.2 --- ip.c 1996/02/13 15:26:33 *************** *** 53,59 **** void StartIdleTimer() { ! if (!(mode & MODE_DEDICATED)) { StopTimer(&IdleTimer); IdleTimer.func = IdleTimeout; IdleTimer.load = VarIdleTimeout * SECTICKS; --- 53,59 ---- void StartIdleTimer() { ! if (!(mode & MODE_DEDICATED|MODE_DDIAL)) { StopTimer(&IdleTimer); IdleTimer.func = IdleTimeout; IdleTimer.load = VarIdleTimeout * SECTICKS; *************** *** 74,80 **** static void RestartIdleTimer() { ! if (!(mode & MODE_DEDICATED) && ipKeepAlive ) { StartTimer(&IdleTimer); ipIdleSecs = 0; } --- 74,80 ---- static void RestartIdleTimer() { ! if (!(mode & MODE_DEDICATED|MODE_DDIAL) && ipKeepAlive ) { StartTimer(&IdleTimer); ipIdleSecs = 0; } Index: main.c =================================================================== RCS file: /home/CVS/src/usr.sbin/ppp/main.c,v retrieving revision 1.5.4.3 diff -c -r1.5.4.3 main.c *** main.c 1996/02/05 17:03:09 1.5.4.3 --- main.c 1996/02/13 15:26:39 *************** *** 204,210 **** void Usage() { ! fprintf(stderr, "Usage: ppp [-auto | -direct | -dedicated] [system]\n"); exit(EX_START); }
--- 204,211 ---- void Usage() { ! fprintf(stderr, ! "Usage: ppp [-auto | -direct | -dedicated | -ddial ] [system]\n"); exit(EX_START); }
***************
*** 223,228 ****
--- 224,231 ----
mode |= MODE_DIRECT;
else if (strcmp(cp, "dedicated") == 0)
mode |= MODE_DEDICATED;
+ else if (strcmp(cp, "ddial") == 0)
+ mode |= MODE_DDIAL|MODE_AUTO;
else
Usage();
optc++;
***************
*** 294,302 ****
printf("Interactive mode\n");
netfd = 0;
} else if (mode & MODE_AUTO) {
! printf("Automatic mode\n");
if (dstsystem == NULL) {
! fprintf(stderr, "Destination system must be specified in auto mode.\n");
exit(EX_START);
}
}
--- 297,306 ----
printf("Interactive mode\n");
netfd = 0;
} else if (mode & MODE_AUTO) {
! printf("Automatic Dialer mode\n");
if (dstsystem == NULL) {
! fprintf(stderr,
! "Destination system must be specified in auto or ddial
mode.\n");
exit(EX_START);
}
}
***************
*** 335,341 ****
Cleanup(EX_START);
}
if ((mode & MODE_AUTO) && DefHisAddress.ipaddr.s_addr == INADDR_ANY) {
! fprintf(stderr, "Must specify dstaddr with auto mode.\n");
Cleanup(EX_START);
}
}
--- 339,345 ----
Cleanup(EX_START);
}
if ((mode & MODE_AUTO) && DefHisAddress.ipaddr.s_addr == INADDR_ANY) {
! fprintf(stderr, "Must specify dstaddr with auto or ddial mode.\n");
Cleanup(EX_START);
}
}
***************
*** 639,644 ****
--- 643,655 ----
tries = 0;
for (;;) {
FD_ZERO(&rfds); FD_ZERO(&wfds); FD_ZERO(&efds);
+
+ /*
+ * If the link is down and we're in DDIAL mode, bring it back
+ * up.
+ */
+ if (mode & MODE_DDIAL && LcpFsm.state <= ST_CLOSED)
+ dial_up = TRUE;
/* * If Ip packet for output is enqueued and require dial up, Index: ppp.8 =================================================================== RCS file: /home/CVS/src/usr.sbin/ppp/ppp.8,v retrieving revision 1.8.4.3 diff -c -r1.8.4.3 ppp.8 *** ppp.8 1996/02/05 17:03:17 1.8.4.3 --- ppp.8 1996/02/13 15:26:44 *************** *** 9,15 **** Point to Point Protocol (aka iijppp) .Sh SYNOPSIS .Nm ! .Op Fl auto \*(Ba Fl direct Fl dedicated .Sh DESCRIPTION This is a user process .Em PPP --- 9,15 ---- Point to Point Protocol (aka iijppp) .Sh SYNOPSIS .Nm ! .Op Fl auto \*(Ba Fl direct \*(Ba Fl dedicated \*(Ba Fl ddial .Sh DESCRIPTION This is a user process .Em PPP *************** *** 52,57 **** --- 52,64 ---- link. When this happens, the daemon automatically dials and establishes the connection.
+ In almost the same manner ddial mode (dedicated dialing or demon dialing) + also automatically dials and establishes the connection. However, it + differs in that it will dial the remote site any time it detects the + link is down, even if there are no packets to be sent. This mode is + useful for full-time connections who worry less about line charges + and more about being connected full time. + .It Supports server-side PPP connections. Can act as server which accepts incoming .Em PPP *************** *** 274,279 **** --- 281,288 ----
To play with demand dialing, you must use the .Fl auto + or + .Fl ddial option. You must also specify the destination label in .Pa /etc/ppp/ppp.conf to use. It should contain the *************** *** 287,292 **** --- 296,303 ----
When .Fl auto + or + .Fl ddial is specified, .Nm runs as a daemon but you can still configure or examine its





