Added -defaultroute and -proxyarp options.
authorPaul Mackerras <paulus@samba.org>
Wed, 16 Aug 1995 01:39:53 +0000 (01:39 +0000)
committerPaul Mackerras <paulus@samba.org>
Wed, 16 Aug 1995 01:39:53 +0000 (01:39 +0000)
pppd/options.c
pppd/pppd.8

index 87a902fc0bb87524b878f14656afbb886aba4be0..d6f89e2ab097db056be71b2dce3bad59ff17d80f 100644 (file)
@@ -18,7 +18,7 @@
  */
 
 #ifndef lint
-static char rcsid[] = "$Id: options.c,v 1.23 1995/07/04 12:33:01 paulus Exp $";
+static char rcsid[] = "$Id: options.c,v 1.24 1995/08/16 01:39:35 paulus Exp $";
 #endif
 
 #include <stdio.h>
@@ -138,7 +138,9 @@ static int setremote __P((char **));
 static int setauth __P((void));
 static int readfile __P((char **));
 static int setdefaultroute __P((void));
+static int setnodefaultroute __P((void));
 static int setproxyarp __P((void));
+static int setnoproxyarp __P((void));
 static int setpersist __P((void));
 static int setdologin __P((void));
 static int setusehostname __P((void));
@@ -223,7 +225,9 @@ static struct cmd {
     {"auth", 0, setauth},      /* Require authentication from peer */
     {"file", 1, readfile},     /* Take options from a file */
     {"defaultroute", 0, setdefaultroute}, /* Add default route */
+    {"-defaultroute", 0, setnodefaultroute}, /* disable defaultroute option */
     {"proxyarp", 0, setproxyarp}, /* Add proxy ARP entry */
+    {"-proxyarp", 0, setnoproxyarp}, /* disable proxyarp option */
     {"persist", 0, setpersist},        /* Keep on reopening connection after close */
     {"login", 0, setdologin},  /* Use system password database for UPAP */
     {"noipdefault", 0, setnoipdflt}, /* Don't use name for default IP adrs */
@@ -1496,17 +1500,41 @@ setauth()
 static int
 setdefaultroute()
 {
+    if (!ipcp_allowoptions[0].default_route) {
+       fprintf(stderr, "%s: defaultroute option is disabled\n", progname);
+       return 0;
+    }
     ipcp_wantoptions[0].default_route = 1;
     return 1;
 }
 
+static int
+setnodefaultroute()
+{
+    ipcp_allowoptions[0].default_route = 0;
+    ipcp_wantoptions[0].default_route = 0;
+    return 1;
+}
+
 static int
 setproxyarp()
 {
+    if (!ipcp_allowoptions[0].proxy_arp) {
+       fprintf(stderr, "%s: proxyarp option is disabled\n", progname);
+       return 0;
+    }
     ipcp_wantoptions[0].proxy_arp = 1;
     return 1;
 }
 
+static int
+setnoproxyarp()
+{
+    ipcp_wantoptions[0].proxy_arp = 0;
+    ipcp_allowoptions[0].proxy_arp = 0;
+    return 1;
+}
+
 static int
 setpersist()
 {
index 25c20fa087f000664a0b8fdfdf8bcca562fd2881..e1c7bbdd9886e52569e3dbcae36baea65934716c 100644 (file)
@@ -1,5 +1,5 @@
 .\" manual page [] for pppd 2.0
-.\" $Id: pppd.8,v 1.13 1995/08/11 02:35:43 paulus Exp $
+.\" $Id: pppd.8,v 1.14 1995/08/16 01:39:53 paulus Exp $
 .\" SH section heading
 .\" SS subsection heading
 .\" LP paragraph
@@ -256,6 +256,11 @@ through syslog with facility \fIdaemon\fR and level \fIdebug\fR.  This
 information can be directed to a file by setting up /etc/syslog.conf
 appropriately (see syslog.conf(5)).
 .TP
+.B \-defaultroute
+Disable the \fBdefaultroute\fR option.  The system administrator who
+wishes to prevent users from creating default routes with \fIpppd\fR
+can do so by placing this option in the /etc/ppp/options file.
+.TP
 .B domain \fI<d>
 Append the domain name <d> to the local host name for authentication
 purposes.  For example, if gethostname() returns the name porsche, but the
@@ -326,6 +331,12 @@ Add an entry to this system's ARP [Address Resolution Protocol] table
 with the IP address of the peer and the Ethernet address of this
 system.
 .TP
+.B \-proxyarp
+Disable the \fBproxyarp\fR option.  The system administrator who
+wishes to prevent users from creating proxy ARP entries with
+\fIpppd\fR can do so by placing this option in the /etc/ppp/options
+file.
+.TP
 .B persist
 Do not exit after a connection is terminated; instead try to reopen
 the connection.