Commit Graph

64 Commits

Author SHA1 Message Date
akwizgran
c5282c5b17 Moved some API classes into packages. 2015-12-17 16:56:57 +00:00
Torsten Grote
2d28dcada2 Create two new events to signal enabling and disabling of transports 2015-12-17 11:34:10 -02:00
akwizgran
81c9992075 Code style: squashed. 2015-12-15 17:26:28 +00:00
Santiago Torres
403ab75d13 [plugins/tor/TorPlugin] Adds tor-over-wifi setting
Provides a checkbox in the settings view, as well as an event handler to
disable/enable the tor network if the device is not on using the wifi
connection.

Refactors network-enabling code to a separate function. This function
is ran after the network state changes, or the settings change and
will update the status accordingly.
2015-12-15 10:17:29 -05:00
akwizgran
e4ac6d3afd Create hidden service in a subdirectory. #161
The permissions for the parent directory are too permissive (775) for Tor 0.2.7.5. The subdirectory is created with permissions 700.
2015-12-08 12:26:00 +00:00
akwizgran
53f6f24d53 Don't enable Bluetooth by default. #99 2015-12-03 17:13:49 +00:00
akwizgran
427efdc7d6 Raise minimum Java version to 6, upgrade H2. #24 2015-12-02 14:59:51 +00:00
akwizgran
79d9b4b6af Raised minimum Android version to 2.3 (API 9). #23 2015-12-02 13:20:55 +00:00
akwizgran
027ae8340f Whitespace-only code formatting changes. 2015-11-30 09:38:25 +00:00
akwizgran
6135bea2b4 Support Tor on Android x86 (thanks to n8fr8). 2015-04-16 08:02:57 +01:00
akwizgran
6e7578a0e0 Don't try to access Build.CPU_ABI2 on API version 7. 2015-04-07 19:11:59 +01:00
akwizgran
a1d2aaf10e Use JDK 1.7, target Android 5.1. 2015-04-03 20:56:01 +01:00
akwizgran
10924709d0 Use PIE Tor binary on API version 16+. 2015-03-23 11:03:00 +00:00
akwizgran
a5b1d92eae Log discovered devices to track down discovery bugs. 2015-03-11 10:24:53 +00:00
akwizgran
c14697972a Upgraded Tor to 0.2.5.10 with OpenSSL 1.0.2. 2015-01-30 19:23:36 +00:00
akwizgran
d3bf2d59a1 Use the same maximum frame length for all transports. 2015-01-05 16:24:44 +00:00
akwizgran
388b36b6be Check periodically for retransmittable packets. Bug #46. 2014-12-14 20:26:41 +00:00
akwizgran
29a6596ee3 Use the transport's idle timeout, not a hardcoded value. 2014-12-14 15:18:39 +00:00
akwizgran
d4fa656dbb Application layer keepalives to detect dead TCP connections.
DuplexOutgoingSession flushes its output stream if it's idle for a
transport-defined interval, causing an empty frame to be sent. The TCP
and Tor plugins use a socket timeout equal to twice the idle interval to
detect dead connections.

See bugs #27, #46 and #60.
2014-12-13 12:00:40 +00:00
akwizgran
7b8181e309 Massive refactoring to merge handling of simplex and duplex connections. 2014-11-04 16:51:25 +00:00
akwizgran
9e5e2e2df2 Patched tor and jtorctl for improved hidden service performance.
Two changes have been made to Tor:

1. Set can_complete_circuit to false when the network is disabled, and
don't try to build introduction circuits while can_complete_circuit is
false. This avoids a situation where Tor tries to build introduction
circuits as soon as the network is re-enabled, all the circuits fail,
and then Tor waits 5 minutes before trying to build more.

2. Added a FORGETHS command to the control protocol which clears any
cached client state relating to a specified hidden service. This can be
used to flush state that's likely to be stale before trying to connect
to a hidden service with an unstable network connection.

Support for the FORGETHS command was also added to jtorctl.
2014-10-06 18:57:57 +01:00
akwizgran
e5620f8b05 Parts of our jtorctl patch have been merged upstream. 2014-10-03 13:29:12 +01:00
akwizgran
6a4ea49786 Merge branch 'simpler-threading'.
This merge reduces the number of thread pools.
2014-10-02 18:26:26 +01:00
akwizgran
941efb4bbe Merged IncomingConnectionExecutor and PluginExecutor into IoExecutor.
We don't need two separate executors for long-running IO threads.
2014-10-02 18:02:53 +01:00
akwizgran
d406853f68 Shut down the Tor process without hacks.
Tor has a controller command, TAKEOWNERSHIP, and a configuration option,
__OwningControllerProcess, that work together to ensure Tor shuts down
when the controlling process dies and/or disconnects from the control
port. By using them we can avoid creating runaway Tor processes that
have to be killed with hacks.
2014-07-08 22:35:37 +01:00
akwizgran
7d9ce4c973 Don't assume Tor has bootstrapped if it's already running. 2014-07-02 23:01:14 +01:00
akwizgran
294a8853f2 Consider Tor to have started when it's bootstrapped and built a circuit. 2014-06-05 09:29:35 +01:00
akwizgran
586a0c468f Fixed logging of Tor circuit paths, added more Tor logging. 2014-06-05 09:29:35 +01:00
akwizgran
5ea0cce2bf Tell Tor to shut down when control socket is closed; more Tor logging.
Patched jtorctl to pass more information about circuit events to the
controller to help us debug connection problems.
2014-05-14 15:23:36 +01:00
akwizgran
eaff042601 Don't try to close server sockets twice.
This may have been the cause of bug #69. Removed the wait-for-shutdown
code in DroidtoothPlugin that was added to attempt to avoid that bug.
2014-05-09 19:09:13 +01:00
akwizgran
c86525c1d4 Kill zombie Tor processes more reliably. 2014-05-09 19:09:13 +01:00
akwizgran
f489da1a21 Wait for Bluetooth to be disabled before exiting.
This may have been the cause of Bluetooth not always being disabled at
shutdown on the Sony Xperia Tipo.
2014-04-05 21:36:56 +01:00
akwizgran
6745bbf9df Skip a logging method if logging is disabled. 2014-04-05 20:24:58 +01:00
akwizgran
6a0e7f8add Tor config was not being installed for fresh installs. 2014-04-05 20:12:20 +01:00
akwizgran
e3a8db6b7a Minor refactoring of TorPlugin. 2014-04-05 00:00:58 +01:00
akwizgran
08b91d2483 Poll plugins when connectivity changes. Bug #66.
This should enable us to connect to contacts faster at startup and
whenever a new means of connecting becomes available.
2014-04-04 22:06:36 +01:00
akwizgran
9f8d12e6c2 Extract latest Tor binary before starting Tor process. Dev task #81. 2014-04-04 20:04:47 +01:00
akwizgran
a563fcc192 Better connectivity detection for the Tor plugin. 2014-04-04 20:04:47 +01:00
akwizgran
75ce6cf1da LAN plugin should re-bind each time wifi becomes available. Bug #51. 2014-04-04 20:04:47 +01:00
akwizgran
e260aac3d2 All tryToClose() methods should check for null arguments. 2014-04-04 20:04:47 +01:00
akwizgran
a4954408a8 Less verbose Tor logging: don't log when circuits are extended.
We can get all the information we need from the other status messages.
2014-04-02 17:46:06 +01:00
akwizgran
c028728c19 Code cleanup for DroidtoothPlugin. 2014-03-22 16:35:47 +00:00
akwizgran
ab2849e2f3 Bluetooth discovery was running for too long. Bug #64 and possibly #61.
The variable now wasn't being updated when no devices were discovered.
2014-03-22 15:20:56 +00:00
akwizgran
5755aed362 Android Bluetooth plugin binds a socket each time BT is enabled.
Dev task #80.
2014-03-13 18:39:53 +00:00
akwizgran
814167613c Verbose logging of Tor connections, streams and circuits. 2014-03-13 09:37:30 +00:00
akwizgran
b270f0e8b1 Call Thread.currentThread().interrupt() when handling interruption. 2014-03-12 21:11:11 +00:00
akwizgran
b99a503f24 Removed unnecessary conditionals from logging statements.
Very important stuff.
2014-03-12 21:00:14 +00:00
akwizgran
4560cf17ff Notification settings. Dev task #76. 2014-03-10 18:00:36 +00:00
akwizgran
b5429f121a Use application context for all background tasks. 2014-03-06 18:25:37 +00:00
akwizgran
304ba53807 Check whether to enable or disable Tor at each connectivity change. 2014-03-06 15:42:21 +00:00