ref: 37a93ef857ad49bee2059a5a52f50190b7bf040f
parent: 36adf27af89970ce73e77d798794479c077678f2
author: cinap_lenrek <[email protected]>
date: Tue Aug 7 11:57:42 EDT 2012
ppp: noauth server option (import from sources)
--- a/sys/man/8/ppp
+++ b/sys/man/8/ppp
@@ -4,7 +4,7 @@
.SH SYNOPSIS
.B ip/ppp
[
-.B -CPScdfu
+.B -CPSacdfu
] [
.B -b
.I baud
@@ -112,11 +112,21 @@
in a communications stream. However, the normal mode is to
specify a communications device, usually a serial line with a modem.
.PP
-PPP supports the following options:
+.I Ppp
+supports the following options:
+.TP 3
+.B a
+as server, don't request authentication from the client
.TP
.B b
set the baud rate on the communications device
.TP
+.B c
+disallow packet compression
+.TP
+.B C
+disallow IP header compression
+.TP
.B f
make PPP add HDLC framing. This is necessary when using
PPP over a serial line or a TCP connection
@@ -133,6 +143,11 @@
.B m
set the maximum transfer unit (default 1450)
.TP
+.B M
+chat with the modem as specified in the chat file. Each line in
+the chat file contains a string that is transmitted to the modem
+and the response expected (e.g. 'AT' 'OK')
+.TP
.B P
use this as the primary IP interface; set the default
route through this interface and write its configuration
@@ -144,6 +159,14 @@
.I dev
instead of standard I/O
.TP
+.B S
+run as a server
+.TP
+.B t
+before starting the PPP protocol, write
+.I modemcmd
+to the device
+.TP
.B u
before starting the PPP protocol with the remote end, shuttle
bytes between the device and standard I/O until an EOF on standard
@@ -153,28 +176,9 @@
.I ppp
takes over
.TP
-.B S
-run as a server
-.TP
-.B t
-before starting the PPP protocol, write
-.I modemcmd
-to the device
-.TP
.B x
use the IP stack mounted at
.I netmntpt
-.TP
-.B M
-chat with the modem as specified in the chat file. Each line in
-the chat file contains a string that is transmitted to the modem
-and the response expected (e.g. 'AT' 'OK')
-.TP
-.B c
-disallow packet compression
-.TP
-.B C
-disallow ip header compression
.PD
.PP
If both the
@@ -196,19 +200,14 @@
(default
.BR /net/ether0 ).
The
-.I pppoe -specific
+.IR pppoe -specific
options are:
-.TP
+.TP 3
.B A
insist on an access concentrator named
.I acname
during PPPoE discovery
.TP
-.B S
-insist on a service named
-.I srvname
-during PPPoE discovery
-.TP
.B d
write debugging output to standard error,
and pass
@@ -215,6 +214,11 @@
.B -d
to
.I ppp
+.TP
+.B S
+insist on a service named
+.I srvname
+during PPPoE discovery
.PD
.PP
The other options are relayed to
@@ -245,10 +249,15 @@
packets are sent back and forth using PPP inside of
GRE packets.
The options are:
-.TP
+.TP 3
.B d
write debugging output to standard error.
.TP
+.B D
+drop
+.I fraction
+of the received packets. This is used for testing.
+.TP
.B p
use the IP stack mounted at
.I pppnetmtpt
@@ -257,11 +266,6 @@
.B w
set the receive window to
.IR window .
-.TP
-.B D
-drop
-.I fraction
-of the received packets. This is used for testing.
.PD
.SH SOURCE
.B /sys/src/cmd/ip/ppp
--- a/sys/src/cmd/ip/ppp/ppp.c
+++ b/sys/src/cmd/ip/ppp/ppp.c
@@ -17,6 +17,7 @@
static int pppframing = 1;
static int noipcompress;
static int server;
+static int noauth;
static int nip; /* number of ip interfaces */
static int dying; /* flag to signal to all threads its time to go */
static int primary; /* this is the primary IP interface */
@@ -332,7 +333,7 @@
if(p->proto == Plcp) {
if(state == Sopened)
- setphase(ppp, Pauth);
+ setphase(ppp, noauth? Pnet : Pauth);
else if(state == Sclosed)
setphase(ppp, Pdead);
else if(p->state == Sopened)
@@ -355,7 +356,7 @@
}
if(p->proto == Pipcp && state == Sopened) {
- if(server && ppp->chap->state != Cauthok)
+ if(server && !noauth && ppp->chap->state != Cauthok)
abort();
err = ipopen(ppp);
@@ -2658,7 +2659,9 @@
void
usage(void)
{
- fprint(2, "usage: ppp [-cCdfPSu] [-b baud] [-k keyspec] [-m mtu] [-p dev] [-s username] [-x netmntpt] [-t modemcmd] [local-addr [remote-addr]]\n");
+ fprint(2, "usage: ppp [-CPSacdfu] [-b baud] [-k keyspec] [-m mtu] "
+ "[-M chatfile] [-p dev] [-x netmntpt] [-t modemcmd] "
+ "[local-addr [remote-addr]]\n");
exits("usage");
}
@@ -2691,6 +2694,9 @@
modemcmd = nil;
ARGBEGIN{
+ case 'a':
+ noauth = 1;
+ break;
case 'b':
baud = atoi(EARGF(usage()));
if(baud < 0)