On 2015-05-06 13:52, Christos Zoulas wrote:
In article <Pine.NEB.4.64.1505061638440.2440%vps1.whooppee.com@localhost>, Paul Goyette <paul%whooppee.com@localhost> wrote:what controls the selection of a protocol when both are available? More specifically, if I 'ftp ftp.netbsd.org' what causes it to try ipv6 first, and use ipv4 as a fall back?
In a way it depends on the program. A program can explicitly ask for V4 or V6 addresses, and then obviously that is the order things will be handled. If a program calls getaddrinfo() without specifying the family, getaddrinfo() in NetBSD prefers V6 addresses over V4 addresses. This manifests itself by the result that getaddrinfo() returns have the IPv6 addresses appear first in the resulting list, and the IPv4 addresses come after. A program would normally go through the list from start to end, trying one address at a time, so then it would try IPv6 first. But of course, a program can do things differently if it wants to...
My ipv6 connectivity is via a slow vpn (from Manila to San Jose, CA!) so I would prefer that connections default to ipv4 unless I explicitly ask for v6.
You could just throw in "-4" to the ftp command, and you will be doing IPv4 only...
FreeBSD has: https://www.freebsd.org/cgi/man.cgi?query=ip6addrctl&sektion=8 I was thinking of copying it...
That could be handy. However, how does it work? Do getaddrinfo() then somehow lookup this preference table and sort the results based on that? Or is this somehow solved in some different way?
Johnny -- Johnny Billquist || "I'm on a bus || on a psychedelic trip email: bqt%softjar.se@localhost || Reading murder books pdp is alive! || tryin' to stay hip" - B. Idol