After testing diag_dns behaviour some regressions have been noticed.
1) Looking up ipv6.google.com (it only has AAAA records) doesn't work
- gethostbyname() only supports v4, ipv6.google.com only has v6
- this bug was recently and inadvertently introduced
2) Results table will always show even when domain is not resolved
- since refactoring ages ago, $resolved is an array, bad idea to replace with a string, this will cause issues
- this piece of code was 'dead' until the recent commit has 'enabled' it again, removing it as not needed
3) Parameters for display_host_results (see: fe74228f2a for its introduction) weren't correctly updated
- mostly a dead function, doubt this is used for anything, keeping it just in case.
This commit fixes all aforementioned issues.
When dhcp6c without RA is enabled, dhcp6c isn't killed and respawned, this causes the system not being able to pick up the routing changes. In this case, running the configuration script which fires rc.newwanipv6 solves the problem.
Replaced posix_kill() in kill_dhcp6client_process() with mwexec("kill -9 $pid"), this is because the posix_kill call was not reliably killing the dhcp6c process, kill -9 works every time.
Changes to the rtsold script creation. The script lines starting dhcp6c should not have be written to the script when dhcpwithoutra is true.
Style corrections, I spend more time doing these than changing code!
- Do not call resolve_host_addresses() when hostname cannot be resolved
by gethostbyname(). The old check was considering gethostbyname would
return NULL in this case but it returns a string with the hostname
passed on parameter
- Since resolve_host_addresses() always return an array, look for the
first A record to set $ipaddr, which will be used later to link with
IP WHOIS and IP Info
Based on Pull Request #3100 submitted by @NewEraCracker
- ip6_to_bin() and bin_to_ip6() are copies obtained from pear-Net_IPv6
since the version available in the class is protected and we don't
want to add more patches to thirdy part software. If upstream accept
to change them to public we can retire them
- bin_to_compressed_ip6 is just a short way to conver binary direct to
a compressed IPv6 address
Reported at: https://forum.pfsense.org/index.php?topic=117601.0