On Wed, Feb 01, 2023 at 09:00:13PM +0900, YASUOKA Masahiko wrote: > Hi > > ... > > But I think we should keep the part since it is needed when adding a > tunneling protocol which is not supported by pipex, or running npppd > on another OS. > > >> If having "pipex yes/no" configuration is misleading, we can improve > >> the man page or the configuration itself. > > > > pipex yes | no > > Specify whether npppd(8) uses pipex(4). The default is > > “yes”. The sysctl(8) variable net.pipex.enable should > > also be enabled to use pipex(4). > > > > There is no misleading. But with "pipex no" npppd(8) is usable with > > pppac(4), but with pppx(4) it is not. Also, I don't like that it > > successfully creates connection. Guess, it better to deny "pipex no" > > for pppx(4). > > I agree both. >
So, deny "pipex no" for pppx(4) interfaces. Index: usr.sbin/npppd/npppd/npppd.conf.5 =================================================================== RCS file: /cvs/src/usr.sbin/npppd/npppd/npppd.conf.5,v retrieving revision 1.30 diff -u -p -r1.30 npppd.conf.5 --- usr.sbin/npppd/npppd/npppd.conf.5 31 Mar 2022 17:27:30 -0000 1.30 +++ usr.sbin/npppd/npppd/npppd.conf.5 1 Feb 2023 18:28:29 -0000 @@ -362,6 +362,11 @@ variable .Va net.pipex.enable should also be enabled to use .Xr pipex 4 . +This value must be +.Dq yes +for +.Xr pppx 4 +interfaces. .It Ic debug-dump-pktin Ar protocol ... If this option is specified, .Xr npppd 8 Index: usr.sbin/npppd/npppd/parse.y =================================================================== RCS file: /cvs/src/usr.sbin/npppd/npppd/parse.y,v retrieving revision 1.25 diff -u -p -r1.25 parse.y --- usr.sbin/npppd/npppd/parse.y 15 Oct 2021 15:01:28 -0000 1.25 +++ usr.sbin/npppd/npppd/parse.y 1 Feb 2023 18:28:29 -0000 @@ -924,6 +924,14 @@ bind : BIND TUNNEL FROM STRING AUTHENTI free($9); YYERROR; } + if (tunn->pipex == 0 && iface->is_pppx) { + yyerror("pipex should be enabled for" + " interface %s", $9); + free($4); + free($7); + free($9); + YYERROR; + } if ((n = malloc(sizeof(struct confbind))) == NULL) { yyerror("out of memory"); free($4);