IPPROTO_DIVERT and PF_INET6
- From: Edwin Groothuis <edwin@xxxxxxxxxxx>
- Date: Sat, 3 May 2008 20:00:43 +1000
Greetings,
Before somebody shoots me down on it: I know that ipfw_divert() is
not suitable for IPv6 packets.
So, to the point. This code:
struct sockaddr_in6 addr6;
struct in6_addr ip6_any = IN6ADDR_ANY_INIT;
sin = socket(PF_INET6, SOCK_RAW, IPPROTO_DIVERT);
if (sin == -1)
errx(1, "Unable to create sin socket.");
if (sin > fdmax)
fdmax = sin;
addr6.sin6_family = AF_INET6;
addr6.sin6_addr = ip6_any;
addr6.sin6_port = htons(8669);
if (bind(sin, (struct sockaddr *) &addr6, sizeof(addr6)) == -1)
errx(1, "Unable to bind incoming divert socket: %s",
strerror(errno));
compiles and run fine, but it gives me this in the lsof output:
nat6to4d 67887 root 3u IPv6 0xc8b05000 0t0 HOPOPTS *:*
HOPOPTS is "0" according to /etc/protocols. Making everything IPv4,
it gives this:
nat6to4d 67899 root 3u IPv4 0xc865421c 0t0 DIVERT *:8669
which is what I expected. So why doesn't this get displayed for the
IPv6 sockets?
Edwin
--
Edwin Groothuis | Personal website: http://www.mavetju.org
edwin@xxxxxxxxxxx | Weblog: http://www.mavetju.org/weblog/
_______________________________________________
freebsd-net@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscribe@xxxxxxxxxxx"
- Follow-Ups:
- Re: IPPROTO_DIVERT and PF_INET6
- From: JINMEI Tatuya / 神明達哉
- Re: IPPROTO_DIVERT and PF_INET6
- From: Edwin Groothuis
- Re: IPPROTO_DIVERT and PF_INET6
- Prev by Date: Re: MFC of em/igb drivers
- Next by Date: Re: MFC of em/igb drivers
- Previous by thread: MFC of em/igb drivers
- Next by thread: Re: IPPROTO_DIVERT and PF_INET6
- Index(es):