summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/server.c
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2006-09-18 03:50:30 +0000
committerume <ume@FreeBSD.org>2006-09-18 03:50:30 +0000
commit0f4b1054e71d44f907b40e318b20850ded64b2b3 (patch)
tree418642e2c442308e425b99b76bc7cc065589cb64 /usr.sbin/ppp/server.c
parent46470485d3612bdbd08ede95758caaecc5521e39 (diff)
downloadFreeBSD-src-0f4b1054e71d44f907b40e318b20850ded64b2b3.zip
FreeBSD-src-0f4b1054e71d44f907b40e318b20850ded64b2b3.tar.gz
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
Diffstat (limited to 'usr.sbin/ppp/server.c')
-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 5be1357..864c627 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));
OpenPOWER on IntegriCloud