From 0ea0ee1439a6472c86bbc70407fef906f2c34b25 Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Wed, 16 Aug 1995 01:39:53 +0000 Subject: [PATCH 1/1] Added -defaultroute and -proxyarp options. --- pppd/options.c | 30 +++++++++++++++++++++++++++++- pppd/pppd.8 | 13 ++++++++++++- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/pppd/options.c b/pppd/options.c index 87a902f..d6f89e2 100644 --- a/pppd/options.c +++ b/pppd/options.c @@ -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 @@ -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() { diff --git a/pppd/pppd.8 b/pppd/pppd.8 index 25c20fa..e1c7bbd 100644 --- a/pppd/pppd.8 +++ b/pppd/pppd.8 @@ -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 Append the domain name 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. -- 2.39.2