diff options
author | ume <ume@FreeBSD.org> | 2006-09-18 03:50:30 +0000 |
---|---|---|
committer | ume <ume@FreeBSD.org> | 2006-09-18 03:50:30 +0000 |
commit | 0f4b1054e71d44f907b40e318b20850ded64b2b3 (patch) | |
tree | 418642e2c442308e425b99b76bc7cc065589cb64 /usr.sbin/ppp | |
parent | 46470485d3612bdbd08ede95758caaecc5521e39 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | usr.sbin/ppp/server.c | 7 |
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)); |