On Monday 15 October 2012, Daniel-Constantin Mierla wrote:
On 10/11/12 2:11 PM, Alex Hermann wrote:
On Thursday 11 October 2012, Daniel-Constantin Mierla wrote:
DEBUG: <core> [dns_cache.c:567]: dns_hash_find([IPv6 Address](30), 1), h=707 DEBUG: <core> [resolve.c:727]: get_record: lookup([IPv6 Address],
- failed DEBUG: <core> [dns_cache.c:895]: dns_cache_mk_bad_entry([IPv6
Address], 1, 60, 1) DEBUG: <core> [dns_cache.c:828]: dns_cache_add: adding [IPv6 Address](30) 1 (flags=1) at 707 ERROR: dispatcher [dispatch.c:325]: could not resolve [IPv6 Address] WARNING: <core> [mem/f_malloc.c:474]: WARNING:fm_free: free(0) called
looking at the code it seems to be ending in doing an A lookup instead of AAAA, a matter of dns_flags value that should be enabled for IPv6 if you set dns_try_ipv6 global parameter. I couldn't spot where this would be disabled if no IPv6 listen socket is provided.
in main.c: if (default_core_cfg.dns_try_ipv6 && !(socket_types & SOCKET_T_IPV6)){ /* if we are not listening on any ipv6 address => no point * to try to resovle ipv6 addresses */ default_core_cfg.dns_try_ipv6=0; }
If you try the trick of adding one udp worker to listen on ::1, like:
socket_workers=1 listen=[::1]
Does it work?
Yes, that works, but I'd like to prevent the process from listening on IPv6 at all.
I think i'll go with the database view solution or patch dispatcher locally to skip IPv6 records.
Thanks,