summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbz <bz@FreeBSD.org>2009-08-13 09:11:47 +0000
committerbz <bz@FreeBSD.org>2009-08-13 09:11:47 +0000
commita693328e464a56bf4c768dc2c8b2ae34794877bf (patch)
tree8280325ce2370c7229f508df7ec4d211cffaac12
parent32589bd8e20017b25c9ec4172c12dd778fa0bcc3 (diff)
downloadFreeBSD-src-a693328e464a56bf4c768dc2c8b2ae34794877bf.zip
FreeBSD-src-a693328e464a56bf4c768dc2c8b2ae34794877bf.tar.gz
Start respecting WITHOUT_INET6.
Make regression/priv compile again after the multi-IP jail changes. Note that we are still using the legacy jail(2) rather than the jail_set(2)/jail(3) syscall. Add an IPv4, and an IPv6 loopback address in case we compile with INET6 enabled. Make the priv_vfs_extattr_system compile on amd64 as well using the proper length modifier to printf(3) for ssize_t. Reviewed by: rwatson Approved by: re (kib)
-rw-r--r--tools/regression/priv/Makefile6
-rw-r--r--tools/regression/priv/main.c19
-rw-r--r--tools/regression/priv/priv_netinet_ipsec.c20
-rw-r--r--tools/regression/priv/priv_vfs_extattr_system.c2
4 files changed, 40 insertions, 7 deletions
diff --git a/tools/regression/priv/Makefile b/tools/regression/priv/Makefile
index 6f494a8..814f5c3 100644
--- a/tools/regression/priv/Makefile
+++ b/tools/regression/priv/Makefile
@@ -2,6 +2,8 @@
# $FreeBSD$
#
+.include <bsd.own.mk>
+
PROG= priv
SRCS= main.c \
priv_acct.c \
@@ -49,4 +51,8 @@ WARNS= 3
DPADD+= ${LIBIPSEC}
LDADD+= -lipsec
+.if ${MK_INET6_SUPPORT} != "no"
+CFLAGS+= -DINET6
+.endif
+
.include <bsd.prog.mk>
diff --git a/tools/regression/priv/main.c b/tools/regression/priv/main.c
index 5dd411a..e594c44 100644
--- a/tools/regression/priv/main.c
+++ b/tools/regression/priv/main.c
@@ -142,20 +142,24 @@ static struct test tests[] = {
priv_netinet_ipsec_policy4_bypass,
priv_netinet_ipsec_policy_bypass_cleanup },
+#ifdef INET6
{ "priv_netinet_ipsec_policy6_bypass",
priv_netinet_ipsec_policy6_bypass_setup,
priv_netinet_ipsec_policy6_bypass,
priv_netinet_ipsec_policy_bypass_cleanup },
+#endif
{ "priv_netinet_ipsec_policy4_entrust",
priv_netinet_ipsec_policy4_entrust_setup,
priv_netinet_ipsec_policy4_entrust,
priv_netinet_ipsec_policy_entrust_cleanup },
+#ifdef INET6
{ "priv_netinet_ipsec_policy6_entrust",
priv_netinet_ipsec_policy6_entrust_setup,
priv_netinet_ipsec_policy6_entrust,
priv_netinet_ipsec_policy_entrust_cleanup },
+#endif
{ "priv_netinet_raw", priv_netinet_raw_setup, priv_netinet_raw,
priv_netinet_raw_cleanup },
@@ -420,12 +424,23 @@ static void
enter_jail(const char *test)
{
struct jail j;
+ struct in_addr ia4;
+#ifdef INET6
+ struct in6_addr ia6 = IN6ADDR_LOOPBACK_INIT;
+#endif
bzero(&j, sizeof(j));
- j.version = 0;
+ j.version = JAIL_API_VERSION;
j.path = "/";
j.hostname = "test";
- j.ip_number = htonl(INADDR_LOOPBACK);
+ j.jailname = "regressions/priv";
+ ia4.s_addr = htonl(INADDR_LOOPBACK);
+ j.ip4s = 1;
+ j.ip4 = &ia4;
+#ifdef INET6
+ j.ip6s = 1;
+ j.ip6 = &ia6;
+#endif
if (jail(&j) < 0)
err(-1, "test %s: jail", test);
}
diff --git a/tools/regression/priv/priv_netinet_ipsec.c b/tools/regression/priv/priv_netinet_ipsec.c
index c2014da..a485886 100644
--- a/tools/regression/priv/priv_netinet_ipsec.c
+++ b/tools/regression/priv/priv_netinet_ipsec.c
@@ -69,6 +69,7 @@ priv_netinet_ipsec_policy_bypass_setup_af(int asroot, int injail,
return (-1);
}
break;
+#ifdef INET6
case AF_INET6:
sd = socket(AF_INET6, SOCK_DGRAM, 0);
if (sd < 0) {
@@ -76,6 +77,7 @@ priv_netinet_ipsec_policy_bypass_setup_af(int asroot, int injail,
return (-1);
}
break;
+#endif
default:
warnx("%s: unexpected address family", __func__);
return (-1);
@@ -92,6 +94,7 @@ priv_netinet_ipsec_policy4_bypass_setup(int asroot, int injail,
AF_INET));
}
+#ifdef INET6
int
priv_netinet_ipsec_policy6_bypass_setup(int asroot, int injail,
struct test *test)
@@ -100,7 +103,7 @@ priv_netinet_ipsec_policy6_bypass_setup(int asroot, int injail,
return (priv_netinet_ipsec_policy_bypass_setup_af(asroot, injail, test,
AF_INET6));
}
-
+#endif
static int
@@ -121,6 +124,7 @@ priv_netinet_ipsec_policy_entrust_setup_af(int asroot, int injail,
return (-1);
}
break;
+#ifdef INET6
case AF_INET6:
sd = socket(AF_INET6, SOCK_DGRAM, 0);
if (sd < 0) {
@@ -128,6 +132,7 @@ priv_netinet_ipsec_policy_entrust_setup_af(int asroot, int injail,
return (-1);
}
break;
+#endif
default:
warnx("%s: unexpected address family", __func__);
return (-1);
@@ -144,6 +149,7 @@ priv_netinet_ipsec_policy4_entrust_setup(int asroot, int injail,
AF_INET));
}
+#ifdef INET6
int
priv_netinet_ipsec_policy6_entrust_setup(int asroot, int injail,
struct test *test)
@@ -152,7 +158,7 @@ priv_netinet_ipsec_policy6_entrust_setup(int asroot, int injail,
return (priv_netinet_ipsec_policy_entrust_setup_af(asroot, injail, test,
AF_INET6));
}
-
+#endif
void
priv_netinet_ipsec_pfkey(int asroot, int injail, struct test *test)
@@ -196,10 +202,12 @@ priv_netinet_ipsec_policy_bypass_af(int asroot, int injail, struct test *test,
level = IPPROTO_IP;
optname = IP_IPSEC_POLICY;
break;
+#ifdef INET6
case AF_INET6:
level = IPPROTO_IPV6;
optname = IPV6_IPSEC_POLICY;
break;
+#endif
default:
warnx("%s: unexpected address family", __func__);
return;
@@ -227,13 +235,14 @@ priv_netinet_ipsec_policy4_bypass(int asroot, int injail, struct test *test)
priv_netinet_ipsec_policy_bypass_af(asroot, injail, test, AF_INET);
}
+#ifdef INET6
void
priv_netinet_ipsec_policy6_bypass(int asroot, int injail, struct test *test)
{
priv_netinet_ipsec_policy_bypass_af(asroot, injail, test, AF_INET6);
}
-
+#endif
static void
priv_netinet_ipsec_policy_entrust_af(int asroot, int injail, struct test *test,
@@ -246,10 +255,12 @@ priv_netinet_ipsec_policy_entrust_af(int asroot, int injail, struct test *test,
level = IPPROTO_IP;
optname = IP_IPSEC_POLICY;
break;
+#ifdef INET6
case AF_INET6:
level = IPPROTO_IPV6;
optname = IPV6_IPSEC_POLICY;
break;
+#endif
default:
warnx("%s: unexpected address family", __func__);
return;
@@ -277,13 +288,14 @@ priv_netinet_ipsec_policy4_entrust(int asroot, int injail, struct test *test)
priv_netinet_ipsec_policy_entrust_af(asroot, injail, test, AF_INET);
}
+#ifdef INET6
void
priv_netinet_ipsec_policy6_entrust(int asroot, int injail, struct test *test)
{
priv_netinet_ipsec_policy_entrust_af(asroot, injail, test, AF_INET6);
}
-
+#endif
void
priv_netinet_ipsec_policy_bypass_cleanup(int asroot, int injail,
diff --git a/tools/regression/priv/priv_vfs_extattr_system.c b/tools/regression/priv/priv_vfs_extattr_system.c
index 9f8f887..a766a04 100644
--- a/tools/regression/priv/priv_vfs_extattr_system.c
+++ b/tools/regression/priv/priv_vfs_extattr_system.c
@@ -80,7 +80,7 @@ priv_vfs_extattr_system(int asroot, int injail, struct test *test)
else if (ret == EA_SIZE)
error = 0;
else
- err(-1, "priv_vfs_extattr_system: set returned %d", ret);
+ err(-1, "priv_vfs_extattr_system: set returned %zd", ret);
if (asroot && injail)
expect("priv_vfs_extattr_system(asroot, injail)", error, -1,
EPERM);
OpenPOWER on IntegriCloud