Module Name: src
Committed By: yamaguchi
Date: Fri Apr 23 01:13:26 UTC 2021
Modified Files:
src/sys/net: if_sppp.h if_spppsubr.c
Log Message:
Introduct a new flag to accept different authentication protocol
in myauthproto and hisauthproto
When the flag is enabled, a authentication protocol notified
at LCP negotiation is used as my authentication protocol.
When the flags is NOT enabled, my authentication protoco is
not changed at LCP negotiation.
To generate a diff of this commit:
cvs rdiff -u -r1.30 -r1.31 src/sys/net/if_sppp.h
cvs rdiff -u -r1.217 -r1.218 src/sys/net/if_spppsubr.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/net/if_sppp.h
diff -u src/sys/net/if_sppp.h:1.30 src/sys/net/if_sppp.h:1.31
--- src/sys/net/if_sppp.h:1.30 Wed Dec 2 14:20:20 2020
+++ src/sys/net/if_sppp.h Fri Apr 23 01:13:25 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: if_sppp.h,v 1.30 2020/12/02 14:20:20 wiz Exp $ */
+/* $NetBSD: if_sppp.h,v 1.31 2021/04/23 01:13:25 yamaguchi Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -44,6 +44,7 @@
#define SPPP_AUTHFLAG_NOCALLOUT 1 /* do not require authentication on */
/* callouts */
#define SPPP_AUTHFLAG_NORECHALLENGE 2 /* do not re-challenge CHAP */
+#define SPPP_AUTHFLAG_PASSIVEAUTHPROTO 4 /* use authproto proposed by peer */
struct spppauthcfg {
char ifname[IFNAMSIZ]; /* pppoe interface name */
Index: src/sys/net/if_spppsubr.c
diff -u src/sys/net/if_spppsubr.c:1.217 src/sys/net/if_spppsubr.c:1.218
--- src/sys/net/if_spppsubr.c:1.217 Fri Apr 16 02:12:00 2021
+++ src/sys/net/if_spppsubr.c Fri Apr 23 01:13:25 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: if_spppsubr.c,v 1.217 2021/04/16 02:12:00 yamaguchi Exp $ */
+/* $NetBSD: if_spppsubr.c,v 1.218 2021/04/23 01:13:25 yamaguchi Exp $ */
/*
* Synchronous PPP/Cisco link level subroutines.
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_spppsubr.c,v 1.217 2021/04/16 02:12:00 yamaguchi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_spppsubr.c,v 1.218 2021/04/23 01:13:25 yamaguchi Exp $");
#if defined(_KERNEL_OPT)
#include "opt_inet.h"
@@ -2701,6 +2701,10 @@ sppp_lcp_confreq(struct sppp *sp, struct
addlog(" [invalid chap len]");
break;
}
+ if (ISSET(sp->myauth.flags, SPPP_AUTHFLAG_PASSIVEAUTHPROTO)) {
+ if (authproto == PPP_PAP || authproto == PPP_CHAP)
+ sp->myauth.proto = authproto;
+ }
if (sp->myauth.proto == 0) {
/* we are not configured to do auth */
if (debug)
@@ -2831,6 +2835,10 @@ sppp_lcp_confreq(struct sppp *sp, struct
case LCP_OPT_AUTH_PROTO:
authproto = (p[2] << 8) + p[3];
+ if (ISSET(sp->myauth.flags, SPPP_AUTHFLAG_PASSIVEAUTHPROTO)) {
+ if (authproto == PPP_PAP || authproto == PPP_CHAP)
+ sp->myauth.proto = authproto;
+ }
if (sp->myauth.proto != authproto) {
/* not agreed, nak */
if (debug)