Comment 9 for bug 487313

Revision history for this message
In , Guillaume-desmottes (guillaume-desmottes) wrote :

http://git.collabora.co.uk/?p=user/cassidy/telepathy-gabble;a=shortlog;h=refs/heads/proxy

This branch fixes 2 things:

A) Remove all the hardcoded proxies and use proxy.telepathy.im instead (our future DNS round robin proxy).

B) Stop querying fallback proxies when connected. Instead query them when:
- requesting a FT channel
- requesting a 1-1 D-Bus tube channel
- receiving an incoming Stream tube channel
Proxy discovered on the connection (so provided by your server) are still queried right away.

There are still room for improvements:

C) gabble_bytestream_socks5_initiate should become async, so we'll be able to wait until we receive replies from server if we don't have any proxy yet.

D) the bytestream factory could query more than once the same server. That will give us a chance to get different proxies from the DNS round robin server.

I think we could consider merging this branch as it as that's already a big improvement comparing to the current situation.
Current code could lead to some "regressions" (if trying to send the SOCKS5 stanza before receiving the proxy replies) but in the worst case we should fallback to IBB (assuming the other side is running Gabble as well).

Furthemore, the SOCKS stanza is not sent before we receive the reply from the SI request from the other peer (involving a network round trip and user UI interactions) so that shouldn't be too bad.