Commit Graph

49 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
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
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
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
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
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
304ba53807 Check whether to enable or disable Tor at each connectivity change. 2014-03-06 15:42:21 +00:00
akwizgran
0198e40719 Made coding style consistent with rest of project. 2014-03-06 13:16:20 +00:00
Ximin Luo
4330f4bee3 don't start tor if it's probably blocked 2014-03-05 22:20:36 +00:00
Ximin Luo
9697b351e9 add the ability for briar-android to get the current country.
- this will be useful later for e.g. auto-disabling Tor
2014-03-05 15:13:50 +00:00
akwizgran
511b470aa4 Less verbose logging for plugins. 2014-03-03 15:31:46 +00:00
akwizgran
a2d099ea17 Added debugging screen to alpha and beta builds. Dev task #73. 2014-02-28 23:44:35 +00:00
akwizgran
3842a5c70d Code cleanup. 2014-02-04 19:05:48 +00:00
akwizgran
822392f9e7 Use strings rather than hashes to identify transports. Dev task #64. 2014-01-24 10:39:34 +00:00
akwizgran
6af3c54c28 Removed shouldFlush() from plugins, added missing PacketWriter method. 2014-01-15 17:10:25 +00:00
akwizgran
c779d7b95a Inform Tor about network connectivity. Dev task #53.
Note that some devices (I'm looking at you, Huawei U8110) misreport
connectivity by failing to set EXTRA_NO_CONNECTIVITY and returning true
from ConnectivityManager.getActiveNetworkInfo().isConnected() when
there's no connectivity.
2014-01-09 14:45:41 +00:00
akwizgran
832476412c Changed the root package from net.sf.briar to org.briarproject. 2014-01-08 16:18:30 +00:00