Commit Graph

16 Commits

Author SHA1 Message Date
John Brooks a56dbfa5b9 core: Improve OnionConnector backoff and retry behavior
OnionConnector will now reset the backoff timer and try again
immediately when network connection status changes. Connection attempts
now scale up to 15 minutes, instead of waiting only 10 seconds each
time.
2016-11-06 19:35:15 -07:00
John Brooks 1be58828fe core: Remove hardcoded tor control address
The default address will be set from the environment, or fall back to
trying 127.0.0.1:9051. There is now an API to allow this to be
overriden as well.
2016-11-05 22:09:18 -06:00
John Brooks 2a0e5b7976 core: Make onion listeners delete the service on close 2016-10-28 16:17:19 -06:00
John Brooks d37d40def4 Change imports after moving repository 2016-10-16 22:26:35 -06:00
John Brooks f56204116c core: Make outbound contact connections
Refactor the connection management on contacts to have a goroutine
responsible for tracking the state of a contact's connection, launching
and canceling outbound attempts when appropriate, etc.
2016-09-29 22:13:55 -07:00
John Brooks ec8d6f5430 core: Add Network WaitForProxyDialer method 2016-09-27 15:24:16 -06:00
John Brooks fe117d10c8 core: Choose a SOCKS port from tor's listeners 2016-09-20 16:37:59 -06:00
John Brooks 346971368b core: Refactor network reconnection to fix onion republication
A race would cause a call to AddOnionPorts that was blocked waiting for
a control connection to try to publish the service twice, because the
onion republication wasn't done until after the connection status
change.

This is fixed by refactoring the control connection setup to do all
setup before signalling the state change, including copying the list of
onions to publish. The code is slightly cleaner now as well.
2016-09-15 18:16:00 -06:00
John Brooks cf903a3b7d core: Add protocol from s-rah and accept inbound connections
Start using Sarah's protocol implementation (plus some patches to be
merged there), publish the local onion service, and handle inbound
connections.
2016-09-11 21:38:04 -06:00
John Brooks 20700414fc core: Implement contact list monitor and contact removal 2016-09-02 11:51:24 -05:00
John Brooks be5a8f1f4e core: Add functions for publishing onion services 2016-08-28 19:59:49 -06:00
John Brooks bec3784f2f core: Track Tor's connectivity state and other details 2016-08-28 19:59:49 -06:00
John Brooks d5cb5feff1 core: Clean up network implementation 2016-08-02 23:39:13 -06:00
John Brooks 5be932a194 This is definitely not related to Ricochet 2016-08-02 17:35:42 -06:00
John Brooks 7733c6d572 core: Prototype tor control connection and API 2016-08-02 17:35:42 -06:00
John Brooks 0508f0b5e3 Skeleton of core API 2016-06-30 21:18:55 -06:00