summaryrefslogtreecommitdiffstats
path: root/usr.sbin/npppd
diff options
context:
space:
mode:
authordlg <dlg@openbsd.org>2020-01-23 00:17:27 +0000
committerdlg <dlg@openbsd.org>2020-01-23 00:17:27 +0000
commitecb0fe7be82ae49e5e3998c590b6ae074edcd768 (patch)
tree8d32e9444ecf95397782fc4e3a19dac8dbb1c3af /usr.sbin/npppd
parentadd pppac(4) code for a dedicated PPP Access Concentrator interface. (diff)
downloadwireguard-openbsd-ecb0fe7be82ae49e5e3998c590b6ae074edcd768.tar.xz
wireguard-openbsd-ecb0fe7be82ae49e5e3998c590b6ae074edcd768.zip
allow npppd to use pppac(4) (once i wire it up)
Diffstat (limited to 'usr.sbin/npppd')
-rw-r--r--usr.sbin/npppd/npppd/privsep.c37
1 files changed, 17 insertions, 20 deletions
diff --git a/usr.sbin/npppd/npppd/privsep.c b/usr.sbin/npppd/npppd/privsep.c
index 5b934469ef1..81b25749d91 100644
--- a/usr.sbin/npppd/npppd/privsep.c
+++ b/usr.sbin/npppd/npppd/privsep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: privsep.c,v 1.23 2017/04/19 05:36:13 natano Exp $ */
+/* $OpenBSD: privsep.c,v 1.24 2020/01/23 00:17:27 dlg Exp $ */
/*
* Copyright (c) 2010 Yasuoka Masahiko <yasuoka@openbsd.org>
@@ -986,6 +986,7 @@ privsep_npppd_check_open(struct PRIVSEP_OPEN_ARG *arg)
{ "/dev/bpf", 0, 0 },
{ "/etc/resolv.conf", 0, 1 },
{ "/dev/tun", 1, 0 },
+ { "/dev/pppac", 1, 0 },
{ "/dev/pppx", 1, 0 }
};
@@ -1069,46 +1070,42 @@ privsep_npppd_check_get_user_info(struct PRIVSEP_GET_USER_INFO_ARG *arg)
}
static int
-privsep_npppd_check_get_if_addr(struct PRIVSEP_GET_IF_ADDR_ARG *arg)
+privsep_npppd_check_ifname(const char *ifname)
{
- if (startswith(arg->ifname, "tun") || startswith(arg->ifname, "pppx"))
+ if (startswith(ifname, "tun") ||
+ startswith(ifname, "pppac") ||
+ startswith(ifname, "pppx"))
return (0);
- return (1);
+ return (0);
}
static int
-privsep_npppd_check_set_if_addr(struct PRIVSEP_SET_IF_ADDR_ARG *arg)
+privsep_npppd_check_get_if_addr(struct PRIVSEP_GET_IF_ADDR_ARG *arg)
{
- if (startswith(arg->ifname, "tun") || startswith(arg->ifname, "pppx"))
- return (0);
+ return (privsep_npppd_check_ifname(arg->ifname));
+}
- return (1);
+static int
+privsep_npppd_check_set_if_addr(struct PRIVSEP_SET_IF_ADDR_ARG *arg)
+{
+ return (privsep_npppd_check_ifname(arg->ifname));
}
static int
privsep_npppd_check_del_if_addr(struct PRIVSEP_DEL_IF_ADDR_ARG *arg)
{
- if (startswith(arg->ifname, "tun") || startswith(arg->ifname, "pppx"))
- return (0);
-
- return (1);
+ return (privsep_npppd_check_ifname(arg->ifname));
}
static int
privsep_npppd_check_get_if_flags(struct PRIVSEP_GET_IF_FLAGS_ARG *arg)
{
- if (startswith(arg->ifname, "tun") || startswith(arg->ifname, "pppx"))
- return (0);
-
- return (1);
+ return (privsep_npppd_check_ifname(arg->ifname));
}
static int
privsep_npppd_check_set_if_flags(struct PRIVSEP_SET_IF_FLAGS_ARG *arg)
{
- if (startswith(arg->ifname, "tun") || startswith(arg->ifname, "pppx"))
- return (0);
-
- return (1);
+ return (privsep_npppd_check_ifname(arg->ifname));
}