Conversations: Use IPv6

Created on 4 Jun 2018  路  12Comments  路  Source: iNPUTmice/Conversations

General information

  • Version: 2.2.2
  • Device: FP2
  • Android Version: Android 7.1
  • Server name: eg conversations.im, jabber.at or self hosted
  • Server software: ejabberd 16.04 or prosody 0.10 (if known)
  • Installed server modules: eg Stream Managment, CSI, MAM
  • Conversations source: eg PlayStore, PlayStore Beta Channel, F-Droid, self build (latest HEAD)

Steps to reproduce

Connect to a dual-stack xmpp hoster.

Expected result

Connection with IPv6

Actual result

Connected with IPv4

Debug output

Please post the output of adb logcat. The log should begin with the start of Conversations and include all the
steps it takes to reproduce the problem.

adb logcat -s conversations

Most helpful comment

@iNPUTmice why did you close the bug? This is a valid issue.

All 12 comments

I鈥檓 not sure I agree with the premise of the expected result.
IPv6 is broken on a surprising numbers of wifis and servers and that鈥檚 why IPv4 gets tried first. Can you explain why you want it to prefer IPv6?

@iNPUTmice, IPv6 is preferred over IPv4 on all modern operation systems. In fact, there's a standard of a priority of various IP address types: https://tools.ietf.org/html/rfc3484
A proper way to handle IPv6 and IPv4 without any delays is Happy Eyeballs algorithm.

A proper way to handle IPv6 and IPv4 without any delays is Happy Eyeballs algorithm.

And you are very welcome to implement this or pay me to implement this. Until it has and given the situation described above i think it is in the interest of the users to have a working solution across all networks.

Use libraries or implement RFCs or other standards, DO NOT implement own algorithms for this.
Broken IPv6 should not be handle by manuelle programming, that is a problem of hosting and ISPs.
Modern ISPs has already problems with IPv4, because they try already to use ipv6-only (with thinks like SIIT/464xlat, VodafoneKabel or Verizon)

If i want to switch off IPv4, i take a look at statistics which are incorrect, because of a wrong implementation of a network stack.

IPv6 become 20 years this year, and it is sad, to see that nobody give it a try.

@iNPUTmice why did you close the bug? This is a valid issue.

Interested: https://git.sum7.eu/sum7/Conversations/merge_requests/2 ?
Or should i pay you to take it bring a patch upstream?

@genofire This is a very wasteful implementation. What one needs to do is establish the sockets that will actually be used for XMPP simultaneously and use the one that establishes a stream first.

  1. It is better than to force the use of IPv4, only because there is an IPv4 DNS entry.
    That does not work in IPv6-only networks. I do not get any working connection. (Your Application does not work there).
    So we need really a solution.

  2. On this way, it works for everyone and use there the best connection.
    So nobody could say that it not work on his broken IPv4 or IPv6 network.

It is better than to force the use of IPv4, only because there is an IPv4 DNS entry.
That does not work in IPv6-only networks. I do not get any working connection. (Your Application does not work there).

The current code is supposed to try both. Just with a preference of IPv4 over IPv6. If that doesn鈥檛 work please provide the output of adb logcat during the connection attempt.

Also you are more than welcome to implement happy eye balls correctly. But your code doesn鈥檛 do that.

Hi guys,

please negotiate again about ipv6 support. Better do it privately, but I'm really sure it does not help to split forces and develop this flagship of secure mobile xmpp in parallel!

Behind the scenes, ipv6 is here since years now and it is indeed faster.

And as a plus for the hackers utopia of distributed xmpp servers as backbone of world-wide secure communication:
Many large ISPs leave private customers with no choice but host an ipv6 server or pay for ipv4. Enable them to host their own server (no problem at all) and still use Conversations!

Best,

Henning

Many large ISPs leave private customers with no choice but host an ipv6 server or pay for ipv4. Enable them to host their own server (no problem at all) and still use Conversations!

Conversations connects absolutely fine to IPv6 only servers.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jplitza picture jplitza  路  4Comments

eyome picture eyome  路  3Comments

link2xt picture link2xt  路  4Comments

tbeitter picture tbeitter  路  3Comments

guy6498765413168978463153248 picture guy6498765413168978463153248  路  4Comments