#1294 prosody should fallback to ipv4 when ipv6 fails
Reporter
phil
Owner
Nobody
Created
Updated
Stars
★ (1)
Tags
Type-Enhancement
Status-New
Priority-Medium
phil
on
Description of feature:
When using prosody on dual stack server prosody should fallback to ipv4 when ipv6 fails.
In my case, connecting to one of my s2s' ipv6 address leads to a connection timeout due to routing problems. Prosody cancels' the connection attempt with:
Disconnecting mydomain.example[s2sout_unauthed], <stream:error> is: connection-timeout
Since ipv4 works fine it'd be nice if prosody could try the server's A-RR as well.
Zash
on
This is already what the code does, under certain circumstances. Notably, there is an
overall s2s connection timeout defaulting to 90 seconds, after which Prosody gives up
completely. If an individual TCP connection times out before that, then Prosody will try
another SRV target. The problem is that with Linux default settings, this takes slightly
more than 90 seconds, so it gives up and never tries the next IP.
What network backend are you using? (network_backend = ? or use_libevent = ?)
phil
on
I'm using the default one ("select").
Thanks for the hint, I'll try other network backends.
Description of feature: When using prosody on dual stack server prosody should fallback to ipv4 when ipv6 fails. In my case, connecting to one of my s2s' ipv6 address leads to a connection timeout due to routing problems. Prosody cancels' the connection attempt with: Disconnecting mydomain.example[s2sout_unauthed], <stream:error> is: connection-timeout Since ipv4 works fine it'd be nice if prosody could try the server's A-RR as well.
This is already what the code does, under certain circumstances. Notably, there is an overall s2s connection timeout defaulting to 90 seconds, after which Prosody gives up completely. If an individual TCP connection times out before that, then Prosody will try another SRV target. The problem is that with Linux default settings, this takes slightly more than 90 seconds, so it gives up and never tries the next IP. What network backend are you using? (network_backend = ? or use_libevent = ?)
I'm using the default one ("select"). Thanks for the hint, I'll try other network backends.