]> git.ozlabs.org Git - ppp.git/commitdiff
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
  */
 
 #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>
 #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 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 setproxyarp __P((void));
+static int setnoproxyarp __P((void));
 static int setpersist __P((void));
 static int setdologin __P((void));
 static int setusehostname __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 */
     {"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, 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 */
     {"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()
 {
 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;
 }
 
     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()
 {
 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;
 }
 
     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()
 {
 static int
 setpersist()
 {
index 25c20fa087f000664a0b8fdfdf8bcca562fd2881..e1c7bbdd9886e52569e3dbcae36baea65934716c 100644 (file)
@@ -1,5 +1,5 @@
 .\" manual page [] for pppd 2.0
 .\" 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
 .\" 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
 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
 .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
 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.
 .B persist
 Do not exit after a connection is terminated; instead try to reopen
 the connection.