aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/route6d/route6d.c
diff options
context:
space:
mode:
authorHajimu UMEMOTO <ume@FreeBSD.org>2003-08-17 16:08:56 +0000
committerHajimu UMEMOTO <ume@FreeBSD.org>2003-08-17 16:08:56 +0000
commit65033d4fcb0ca36843d95f0c57e5a5991fd3a7b6 (patch)
tree5de686db3979a1e1925cbfb4e39a00ae71dd81e4 /usr.sbin/route6d/route6d.c
parent1dd7cfc46fcae4a597ac1fc86dd98e7ea11302b9 (diff)
downloadsrc-65033d4fcb0ca36843d95f0c57e5a5991fd3a7b6.tar.gz
src-65033d4fcb0ca36843d95f0c57e5a5991fd3a7b6.zip
set IPV6_V6ONLY.
Obtained from: KAME MFC after: 1 week
Notes
Notes: svn path=/head/; revision=119034
Diffstat (limited to 'usr.sbin/route6d/route6d.c')
-rw-r--r--usr.sbin/route6d/route6d.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/usr.sbin/route6d/route6d.c b/usr.sbin/route6d/route6d.c
index 6d7fddd7c60a..769799c5a1c8 100644
--- a/usr.sbin/route6d/route6d.c
+++ b/usr.sbin/route6d/route6d.c
@@ -585,7 +585,8 @@ ripalarm()
void
init()
{
- int i, int0, int255, error;
+ int error;
+ const int int0 = 0, int1 = 1, int255 = 255;
struct addrinfo hints, *res;
char port[10];
@@ -609,12 +610,18 @@ init()
/*NOTREACHED*/
}
- int0 = 0; int255 = 255;
ripsock = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
if (ripsock < 0) {
fatal("rip socket");
/*NOTREACHED*/
}
+#ifdef IPV6_V6ONLY
+ if (setsockopt(ripsock, IPPROTO_IPV6, IPV6_V6ONLY,
+ &int1, sizeof(int1)) < 0) {
+ fatal("rip IPV6_V6ONLY");
+ /*NOTREACHED*/
+ }
+#endif
if (bind(ripsock, res->ai_addr, res->ai_addrlen) < 0) {
fatal("rip bind");
/*NOTREACHED*/
@@ -630,16 +637,15 @@ init()
/*NOTREACHED*/
}
- i = 1;
#ifdef IPV6_RECVPKTINFO
- if (setsockopt(ripsock, IPPROTO_IPV6, IPV6_RECVPKTINFO, &i,
- sizeof(i)) < 0) {
+ if (setsockopt(ripsock, IPPROTO_IPV6, IPV6_RECVPKTINFO,
+ &int1, sizeof(int1)) < 0) {
fatal("rip IPV6_RECVPKTINFO");
/*NOTREACHED*/
}
#else /* old adv. API */
- if (setsockopt(ripsock, IPPROTO_IPV6, IPV6_PKTINFO, &i,
- sizeof(i)) < 0) {
+ if (setsockopt(ripsock, IPPROTO_IPV6, IPV6_PKTINFO,
+ &int1, sizeof(int1)) < 0) {
fatal("rip IPV6_PKTINFO");
/*NOTREACHED*/
}