shithub: riscv

Download patch

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)