Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sbin/pppoectl Added keywords that are ipcp, noipcp, ipv6cp, ...



details:   https://anonhg.NetBSD.org/src/rev/ff08248bc638
branches:  trunk
changeset: 983234:ff08248bc638
user:      yamaguchi <yamaguchi%NetBSD.org@localhost>
date:      Tue May 11 05:51:42 2021 +0000

description:
Added keywords that are ipcp, noipcp, ipv6cp, noipv6cp
for configuring NCP

diffstat:

 sbin/pppoectl/pppoectl.c |  52 ++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 44 insertions(+), 8 deletions(-)

diffs (147 lines):

diff -r 41159c93d0ac -r ff08248bc638 sbin/pppoectl/pppoectl.c
--- a/sbin/pppoectl/pppoectl.c  Tue May 11 03:43:30 2021 +0000
+++ b/sbin/pppoectl/pppoectl.c  Tue May 11 05:51:42 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pppoectl.c,v 1.27 2021/04/23 02:28:40 yamaguchi Exp $  */
+/*     $NetBSD: pppoectl.c,v 1.28 2021/05/11 05:51:42 yamaguchi Exp $  */
 
 /*
  * Copyright (c) 1997 Joerg Wunsch
@@ -31,7 +31,7 @@
 #include <sys/cdefs.h>
 
 #ifndef lint
-__RCSID("$NetBSD: pppoectl.c,v 1.27 2021/04/23 02:28:40 yamaguchi Exp $");
+__RCSID("$NetBSD: pppoectl.c,v 1.28 2021/05/11 05:51:42 yamaguchi Exp $");
 #endif
 
 
@@ -55,8 +55,9 @@
 __dead static void usage(void);
 __dead static void print_error(const char *ifname, int error, const char * str);
 static void print_vals(const char *ifname, int phase, struct spppauthcfg *sp,
-       int lcp_timeout, time_t idle_timeout, int authfailures, 
-       int max_auth_failures, u_int maxalive, time_t max_noreceive);
+       int lcp_timeout, time_t idle_timeout, int authfailures,
+       int max_auth_failures, u_int maxalive, time_t max_noreceive,
+       int ncp_flags);
 static void print_dns(const char *ifname, int dns1, int dns2, int s, int tabs);
 static void print_stats(const char *ifname, int s, int dump);
 static const char *phase_name(int phase);
@@ -81,10 +82,12 @@
 
 static int set_auth, set_lcp, set_idle_to, set_auth_failure, set_dns,
     clear_auth_failure_count, set_keepalive;
+static u_int set_ncpflags, clr_ncpflags;
 static int maxalive = -1;
 static int max_noreceive = -1;
 static struct spppauthcfg spr;
 static struct sppplcpcfg lcp;
+static struct spppncpcfg ncp;
 static struct spppstatus status;
 static struct spppidletimeout timeout;
 static struct spppauthfailurestats authfailstats;
@@ -202,6 +205,8 @@
        strncpy(spr.ifname, ifname, sizeof spr.ifname);
        memset(&lcp, 0, sizeof lcp);
        strncpy(lcp.ifname, ifname, sizeof lcp.ifname);
+       memset(&ncp, 0, sizeof ncp);
+       strncpy(ncp.ifname, ifname, sizeof ncp.ifname);
        memset(&status, 0, sizeof status);
        strncpy(status.ifname, ifname, sizeof status.ifname);
        memset(&timeout, 0, sizeof timeout);
@@ -245,6 +250,8 @@
 
                if (ioctl(s, SPPPGETLCPCFG, &lcp) == -1)
                        err(EX_OSERR, "SPPPGETLCPCFG");
+               if (ioctl(s, SPPPGETNCPCFG, &ncp) == -1)
+                       err(EX_OSERR, "SPPPGETNCPCFG");
                if (ioctl(s, SPPPGETSTATUS, &status) == -1)
                        err(EX_OSERR, "SPPPGETSTATUS");
                if (ioctl(s, SPPPGETIDLETO, &timeout) == -1)
@@ -258,7 +265,8 @@
                    timeout.idle_seconds, authfailstats.auth_failures,
                    authfailstats.max_failures,
                    keepalivesettings.maxalive,
-                   keepalivesettings.max_noreceive);
+                   keepalivesettings.max_noreceive,
+                   ncp.ncp_flags);
 
                if (spr.hisname) free(spr.hisname);
                if (spr.myname) free(spr.myname);
@@ -300,6 +308,16 @@
                if (ioctl(s, SPPPSETLCPCFG, &lcp) == -1)
                        err(EX_OSERR, "SPPPSETLCPCFG");
        }
+       if (set_ncpflags != 0 || clr_ncpflags != 0) {
+               if (ioctl(s, SPPPGETNCPCFG, &ncp) == -1)
+                       err(EX_OSERR, "SPPPGETNCPCFG");
+
+               ncp.ncp_flags |= set_ncpflags;
+               ncp.ncp_flags &= ~clr_ncpflags;
+
+               if (ioctl(s, SPPPSETNCPCFG, &ncp) == -1)
+                       err(EX_OSERR, "SPPPSETNCPCFG");
+       }
        if (set_idle_to) {
                if (ioctl(s, SPPPSETIDLETO, &timeout) == -1)
                        err(EX_OSERR, "SPPPSETIDLETO");
@@ -344,7 +362,8 @@
                    timeout.idle_seconds, authfailstats.auth_failures,
                    authfailstats.max_failures,
                    keepalivesettings.maxalive,
-                   keepalivesettings.max_noreceive);
+                   keepalivesettings.max_noreceive,
+                   ncp.ncp_flags);
        }
 
        return 0;
@@ -459,6 +478,18 @@
        } else if (startswith(arg, "query-dns=")) {
                dnssettings.query_dns = atoi(arg+off);
                set_dns = 1;
+       } else if (strcmp(arg, "ipcp") == 0) {
+               set_ncpflags |= SPPP_NCP_IPCP;
+               clr_ncpflags &= ~SPPP_NCP_IPCP;
+       } else if (strcmp(arg, "noipcp") == 0) {
+               set_ncpflags &= ~SPPP_NCP_IPCP;
+               clr_ncpflags |= SPPP_NCP_IPCP;
+       } else if (strcmp(arg, "ipv6cp") == 0) {
+               set_ncpflags |= SPPP_NCP_IPV6CP;
+               clr_ncpflags &= ~SPPP_NCP_IPV6CP;
+       } else if (strcmp(arg, "noipv6cp") == 0) {
+               set_ncpflags &= ~SPPP_NCP_IPV6CP;
+               clr_ncpflags |= SPPP_NCP_IPV6CP;
        } else
                errx(EX_DATAERR, "bad parameter: \"%s\"", arg);
 }
@@ -472,7 +503,7 @@
            "       %s [-f config] ifname [...]\n"
            "       %s [-v] ifname [{my|his}auth{proto|name|secret}=...] \\\n"
             "                      [callin] [always] [{no}rechallenge]\n"
-            "                      [query-dns=3]\n"
+            "                      [query-dns=3] [{no}ipcp] [{no}ipv6cp]\n"
            "           to set authentication names, passwords\n"
            "           and (optional) paramaters\n"
            "       %s [-v] ifname lcp-timeout=ms|idle-timeout=s|\n"
@@ -495,7 +526,7 @@
 static void
 print_vals(const char *ifname, int phase, struct spppauthcfg *sp, int lcp_timeout,
        time_t idle_timeout, int authfailures, int max_auth_failures,
-       u_int maxalive_cnt, time_t max_noreceive_time)
+       u_int maxalive_cnt, time_t max_noreceive_time, int ncp_flags)
 {
 #ifndef __NetBSD__
        time_t send, recv;
@@ -540,6 +571,11 @@
        printf("\tenable_vj: %s\n",
               sp->defs.enable_vj ? "on" : "off");
 #endif
+
+       printf("\tipcp: %s\n",
+           ncp_flags & SPPP_NCP_IPCP ? "enable" : "disable");
+       printf("\tipv6cp: %s\n",
+           ncp_flags & SPPP_NCP_IPV6CP ? "enable" : "disable");
 }
 
 static void



Home | Main Index | Thread Index | Old Index