- support for IP_RECVDSTADDR (for *BSD ip4).
- fix for BSD, do not use ip4to6 mapping, make two sockets, once
ip6 and once ip4, uses socket options.
+ - goodbye ip4to6 mapping.
17 January 2008: Wouter
- fixup configure in case -lldns is installed.
# interface: 192.0.2.154
# interface: 2001:DB8::5
- # enable this feature to detect all available interfaces automatically
- # May not be supported on all platforms. experimental. Do not forget
- # to enable access-control for your ip4, ip6 and ip6mappedip4 addrs.
+ # enable this feature to copy the source address of queries to reply.
+ # Socket options not be supported on all platforms. experimental.
# interface-automatic: no
# port to answer queries from
The interfaces are not changed on a reload (kill \-HUP) but only on restart.
.TP
.B interface-automatic: \fI<yes or no>
-Detect all interfaces and use them. This feature is experimental, and needs
-support in your OS for IPv6 (and its socket options). You have to set access
-control for IPv4, IPv6 addresses and also for mapped IPv4 to IPv6 addresses
-(i.e. ::ffff:192.168.0.0/112 and so on). IPv4 TCP connections use the IPv4
-access control, IPv4 UDP queries use the mapped access control.
-On FreeBSD sysconfig is associated with this, net.inet6.ip6.v6only in
-/etc/sysctl.conf, it should work with this set or unset. OpenBSD may not
-support it at all. Default value is no.
+Detect source interface on UDP queries and copy them to replies. This
+feature is experimental, and needs support in your OS for IPv6
+(and its socket options) and IPv4 (and have source-interface socket options).
+Default value is no.
.TP
.B outgoing\-interface: \fI<ip address>
Interface to use to connect to the network. This interface is used to send
if(!do_udp && !do_tcp)
return 0;
if(do_auto) {
- /* skip ip4 sockets, ip4 udp gets mapped to v6 */
- /* TODO no mapping! */
if((s = make_sock(SOCK_DGRAM, ifname, port, hints, 1)) == -1)
return 0;
+ /* getting source addr packet info is highly non-portable */
if(!set_recvpktinfo(s, hints->ai_family))
return 0;
if(!port_insert(list, s, listen_type_udpancil)) {