Opportunistic IPv4/IPv6 connection
I had IPv6 connectivity loss on my server for a while, and noticed Profanity failing to connect at all. It would be great with some kind of googley eyes behaviour, probably for each and every one of the connections it tries to establish.
The domain of my server is reachable via IPv4 and v6. However the xmpp service only listens on IPv4. Being configured like this i can not connect to my server with profanity. If connection through one method fails, the other should be tried as well. Other clients like mcabber and conversations had no problem.
My server admin was unaware about missing IPv6 connectivity and is going to fix it. On the other hand from 1000 clients nobody seemed to have an issue with that in 5 years :sweat_smile:
@pasis can we do this?
yes, this is libstrophe issue, please, open ticket there to check all possible addresses until one succeeds. Now, libstrophe checks them one by one until one only starts connecting successfully. But this is not enough if port is closed on the remote side for a particular address family.
Does anyone know domain/address of such a server to check a solution? Where server runs only on IPv4, but address is resolved to both IPv4 and IPv6.
Bad XMPP has a few intentionally misconfigured hosts for testing against, including IPv4+IPv6 where one will not connect. The tests are however currently only for server-to-server connections, tests for clients are planned but not there yet. For socket-level connectivity testing this might still work, if you can change the SRV service name to xmpp-server instead of xmpp-client while testing.
@Zash This will help a lot, thanks!
The feature has been added to libstrophe master (strophe/libstrophe#221). Use latest sources or wait for the next libstrophe release.
For future reference: users will need libstrophe > 0.12.2 (we maybe dont hard require this)
libstrophe 0.12.3 with the fix has been released. Profanity 0.14.0 will depend on it.