Sooner or later, probably later.
Apparently we already have some rudimentary support as the OpenSSH we ship supports IPv6. I was successfully running ThinLinc via IPv6 against my ThinLinc server at home this weekend.
I think the biggest challenge with IPv6 is supporting RFC 3484. Administrators should be able to configure agent_hostname with IP addresses, which means they will need to specify at least two in order to support both IPv4 and IPv6. To properly follow IPv6 behaviour we should allow any number of addresses though.
The problem is that normally the magic to select between addresses is handled by getaddrinfo(). But that only works if we have a single hostname. So we will most likely need to duplicate the logic in there.
Lastly we need to change our SSH interaction so we can attempt a connection at each of those candidate addresses. Either we change ssh so we can give it multiple addresses, or we let tlclient handle connection errors and starts ssh multiple times until we get a connection.
Might want to look at bug 2810 at the same time if we're doing a lot of work on name resolution.
Remember to test with IPv6 disabled after this is done.
Note that Windows got most of it's IPv6 support after XP, so we might need to drop that platform to support IPv6 on Windows.
Information about how glibc does getaddrinfo():
We should also consider implementing "Happy Eyeballs", i.e. RFC 6555.
(In reply to Pierre Ossman from comment #6)
> We should also consider implementing "Happy Eyeballs", i.e. RFC 6555.
Python's asyncio implemented happy eyeballs in Python 3.8, which could be helpful on the server at least.
As of bug 8224, vsmserver and vsmagent now listen on both IPv4 and IPv6.
tlwebadm and tlwebaccess have been listening to both for an unknown amount of time.