aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/ppp
diff options
context:
space:
mode:
authorHajimu UMEMOTO <ume@FreeBSD.org>2006-09-18 03:50:30 +0000
committerHajimu UMEMOTO <ume@FreeBSD.org>2006-09-18 03:50:30 +0000
commitbba6dc1d5b0e724b357da4b3829835bc9df3b337 (patch)
tree418642e2c442308e425b99b76bc7cc065589cb64 /usr.sbin/ppp
parent5ef35a9854e0fc2ba10c996035d84db05bf7bfe9 (diff)
downloadsrc-bba6dc1d5b0e724b357da4b3829835bc9df3b337.tar.gz
src-bba6dc1d5b0e724b357da4b3829835bc9df3b337.zip
Listen to a control socket on an IPv4 as well through
an IPv4-mapped IPv6 address. Reported by: Julian H. Stacey <jhs__at__flat.berklix.net> Test by: Julian H. Stacey <jhs__at__flat.berklix.net> MFC after: 1 week
Notes
Notes: svn path=/head/; revision=162389
Diffstat (limited to 'usr.sbin/ppp')
-rw-r--r--usr.sbin/ppp/server.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/usr.sbin/ppp/server.c b/usr.sbin/ppp/server.c
index 5be1357d17e5..864c62742aa9 100644
--- a/usr.sbin/ppp/server.c
+++ b/usr.sbin/ppp/server.c
@@ -346,6 +346,13 @@ server_TcpOpen(struct bundle *bundle, u_short port)
goto failed;
}
+#ifndef NOINET6
+ if (probe.ipv6_available) {
+ int off = 0;
+ setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&off, sizeof(off));
+ }
+#endif
+
setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &s, sizeof s);
if (bind(s, (struct sockaddr *)&ss, sz) < 0) {
log_Printf(LogWARN, "Tcp: bind: %s\n", strerror(errno));