shithub: riscv

Download patch

ref: 5c000bbe6378de33b55080bcc8be1cfb907c2d22
parent: 919863dab3490b624fdb6197566cf9e3b5980c2a
author: cinap_lenrek <[email protected]>
date: Thu Dec 5 17:39:43 EST 2013

cpu: add -n flag for the remote site to allow "none" authentification method (inspired from sources cpu-noauth patch)

--- a/sys/man/1/cpu
+++ b/sys/man/1/cpu
@@ -30,6 +30,8 @@
 .PP
 .B cpu
 [
+.B -n
+] [
 .B -A
 .I address
 ] [
@@ -127,6 +129,11 @@
 This is used if the local host is in a different protection domain than
 the server or if the user wants to log into the server as a different
 user.
+.TP
+.B none
+This skips authentication. This requires the
+.IR -n
+flag to be specified on the remote side.
 .PD
 .PP
 The
@@ -181,6 +188,16 @@
 of the 
 .I cpu
 protocol.
+The
+.B -n
+option allows using the
+.B none
+authentication method for incoming connections and must be
+specified before the
+.B -R
+and
+.B -O
+flags.
 .PP
 The
 .B -p
--- a/sys/src/cmd/cpu.c
+++ b/sys/src/cmd/cpu.c
@@ -30,6 +30,7 @@
 int	exportpid;
 char	*system;
 int	cflag;
+int	nflag;
 int	dbg;
 char	*user;
 char	*patternfile;
@@ -59,7 +60,7 @@
 {
 	{ "p9",		p9auth,		srvp9auth,},
 	{ "netkey",	netkeyauth,	netkeysrvauth,},
-//	{ "none",	noauth,		srvnoauth,},
+	{ "none",	noauth,		srvnoauth,},
 	{ nil,	nil}
 };
 AuthMethod *am = authmethod;	/* default is p9 */
@@ -176,6 +177,10 @@
 	case 'f':
 		/* ignored but accepted for compatibility */
 		break;
+	case 'n':
+		/* must be specified before -R/-O */
+		nflag++;
+		break;
 	case 'A':
 		anstring = EARGF(usage());
 		break;
@@ -349,7 +354,7 @@
 		if(n < 0)
 			fatal("authenticating: %r");
 	}
-	if(setamalg(cmd) < 0){
+	if(setamalg(cmd) < 0 || (nflag == 0 && am->sf == srvnoauth)) {
 		writestr(fd, "unsupported auth method", nil, 0);
 		fatal("bad auth method %s", cmd);
 	} else