add maxfail option to control the max # of failed attempts
authorPaul Mackerras <paulus@samba.org>
Thu, 12 Aug 1999 04:17:07 +0000 (04:17 +0000)
committerPaul Mackerras <paulus@samba.org>
Thu, 12 Aug 1999 04:17:07 +0000 (04:17 +0000)
pppd/main.c
pppd/options.c

index a33a5e242188bfc6f0437ce0f448f58853e9750b..4acc217d1661a9868da3a966c21ff380c6c71287 100644 (file)
@@ -18,7 +18,7 @@
  */
 
 #ifndef lint
-static char rcsid[] = "$Id: main.c,v 1.80 1999/07/21 00:24:31 paulus Exp $";
+static const char rcsid[] = "$Id: main.c,v 1.81 1999/08/12 04:17:07 paulus Exp $";
 #endif
 
 #include <stdio.h>
@@ -87,6 +87,7 @@ struct stat devstat;          /* result of stat() on devnam */
 int prepass = 0;               /* doing prepass to find device name */
 int devnam_fixed;              /* set while in options.ttyxx file */
 volatile int status;           /* exit status for pppd */
+int unsuccess;                 /* # unsuccessful connection attempts */
 
 static int fd_ppp = -1;                /* fd for talking PPP */
 static int fd_loop;            /* fd for getting demand-dial packets */
@@ -498,6 +499,7 @@ main(argc, argv)
        ttyfd = -1;
        real_ttyfd = -1;
        status = EXIT_OK;
+       ++unsuccess;
 
        if (demand) {
            /*
@@ -856,7 +858,7 @@ main(argc, argv)
            pidfilename[0] = 0;
        }
 
-       if (!persist)
+       if (!persist || (maxfail > 0 && unsuccess >= maxfail))
            break;
 
        kill_link = 0;
index 5d144162a66b5c9cc4d01069c46c89a457551c5a..59c7b5b9f6e0353bc2335f7587633ea155bb0d9a 100644 (file)
@@ -18,7 +18,7 @@
  */
 
 #ifndef lint
-static char rcsid[] = "$Id: options.c,v 1.60 1999/07/21 00:24:31 paulus Exp $";
+static const char rcsid[] = "$Id: options.c,v 1.61 1999/08/12 04:17:07 paulus Exp $";
 #endif
 
 #include <ctype.h>
@@ -93,6 +93,7 @@ char  *record_file = NULL;    /* File to record chars sent/received */
 int    using_pty = 0;
 bool   sync_serial = 0;        /* Device is synchronous serial device */
 int    log_to_fd = 1;          /* send log messages to this fd too */
+int    maxfail;                /* max # of unsuccessful connection attempts */
 
 extern option_t auth_options[];
 extern struct stat devstat;
@@ -239,6 +240,8 @@ option_t general_options[] = {
     { "nologfd", o_int, &log_to_fd,
       "Don't send log messages to any file descriptor",
       OPT_NOARG | OPT_VAL(-1) },
+    { "maxfail", o_int, &maxfail,
+      "Maximum number of unsuccessful connection attempts to allow" },
 
 #ifdef PPP_FILTER
     { "pdebug", o_int, &dflag,