diff options
author | Hajimu UMEMOTO <ume@FreeBSD.org> | 2006-09-18 03:50:30 +0000 |
---|---|---|
committer | Hajimu UMEMOTO <ume@FreeBSD.org> | 2006-09-18 03:50:30 +0000 |
commit | bba6dc1d5b0e724b357da4b3829835bc9df3b337 (patch) | |
tree | 418642e2c442308e425b99b76bc7cc065589cb64 /usr.sbin/ppp | |
parent | 5ef35a9854e0fc2ba10c996035d84db05bf7bfe9 (diff) | |
download | src-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.c | 7 |
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)); |