akwizgran
ff8301521c
Replaced Timer with ScheduledExecutorService. #258
2016-05-06 12:11:34 +01:00
akwizgran
036c5d6753
No need to poll plugins before they're enabled.
2016-05-06 12:09:30 +01:00
akwizgran
1ae98ef2b5
Reduced polling intervals to improve connectivity.
2016-05-06 12:09:30 +01:00
akwizgran
dd9bc74262
Try to reconnect on connection loss. #262
2016-05-06 12:07:56 +01:00
akwizgran
befd916eba
Connect to newly activated contacts.
2016-04-06 17:10:54 +01:00
akwizgran
04a1f2b12c
Don't poll plugins that don't support polling.
2016-04-06 17:10:54 +01:00
akwizgran
90f3d33f86
Log the transport ID when registering connections.
2016-04-06 17:10:54 +01:00
akwizgran
d5bf7194f6
Register outgoing duplex connection after reading tag.
...
This prevents the connection from being registered until the contact responds, which ensures we're actually connected to the contact.
2016-04-06 17:10:53 +01:00
Torsten Grote
21bb23ba67
Merge branch '273-service-exceptions' into 'master'
...
Services should throw exceptions for startup errors
Fixes #273
See merge request !134
2016-04-06 15:51:03 +00:00
akwizgran
b480777548
Services should throw exceptions for startup errors.
2016-04-05 15:44:50 +01:00
akwizgran
2b19e4c8db
Close transport connection if tag isn't recognised. #281
2016-04-05 11:37:38 +01:00
akwizgran
945b5eb1ac
Create local state for clients at startup. #279
2016-04-01 17:15:35 +01:00
akwizgran
db6c813522
Merge branch '117-qr-contacts' into 'master'
...
BQP with QR codes
This MR implements BQP for key agreement over short-range transports. It also implements the Android UI for using BQP with QR codes.
Closes #117 .
See merge request !84
2016-03-31 11:21:02 +00:00
akwizgran
e58ca00979
Don't start transactions while holding locks. #272
2016-03-29 15:21:46 +01:00
akwizgran
9714713d73
Add transports to DB during startup. #269
2016-03-28 13:47:23 +01:00
akwizgran
0417639410
Merge duplex and simplex plugin config classes.
2016-03-28 11:28:46 +01:00
str4d
d2d8d9d46e
Implement BQP transport descriptors
2016-03-26 15:52:58 +13:00
Ernir Erlingsson
85c66417b5
branch cleanup
2016-03-14 21:02:51 +01:00
Ernir Erlingsson
4da63b3800
Modified the project structure, removed module extension and went instead for a non-complete core dependency graph
2016-03-14 21:02:51 +01:00
Ernir Erlingsson
6f233070fe
Semi-encapsulated the core/api dependency graphs and created a proper structure to load eager singletons
2016-03-14 21:02:51 +01:00
Ernir Erlingsson
95d89553d5
merged with master
2016-03-14 21:02:51 +01:00
Ernir Erlingsson
1be400eb84
Switched Roboguice/Guice out for Dagger 2
2016-03-14 21:01:21 +01:00
akwizgran
0ac67239e3
Fixed race condition when closing redundant sockets.
...
When more than one invitation socket is opened, Alice should pick which one to use and Bob should use whichever one Alice picks. This fixes a race condition where each party picked a different socket and closed the other.
2016-03-07 11:50:47 +00:00
akwizgran
066285b86a
New polling logic for Tor. #250
...
Poll for outgoing connections each time the network is enabled, then disable polling once our hidden service descriptor has been published.
2016-02-25 10:10:57 +00:00
akwizgran
681ec080e1
Randomise next polling interval after pollNow().
2016-02-22 13:25:07 +00:00
akwizgran
5ce8927477
New polling logic for LAN (and WAN). #252
...
Same exponential backoff approach as Bluetooth.
2016-02-22 13:25:07 +00:00
akwizgran
c081c08ff5
New polling logic for Bluetooth. #251
...
The polling interval increases exponentially each time polling is unsuccessful, up to a maximum of 60 minutes. The interval is reset to 2 minutes whenever a connection is made and whenever Bluetooth is re-enabled.
2016-02-22 13:21:05 +00:00
akwizgran
de8cc50fb4
Moved transactions out of database component.
2016-02-11 16:26:19 +00:00
akwizgran
88475bdd54
Transport properties client. #229
2016-01-27 12:51:55 +00:00
akwizgran
33ef09a6bf
Implement Service interface rather than extending it.
...
Whether or not a class needs to run as a service is an implementation decision.
2016-01-20 14:43:46 +00:00
akwizgran
5355951466
Separate the sync layer from its clients. #112
2016-01-20 10:35:09 +00:00
akwizgran
f5f572139a
Code cleanup.
2016-01-20 10:30:36 +00:00
Santiago Torres
190bb12964
ENH: Replaces transport config with namespaced settings
2016-01-20 00:57:16 -05:00
akwizgran
805bf39ec8
Created TransportPropertyManager facade.
2016-01-04 12:56:06 +00:00
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
e370cafb12
Moved classes from messaging package to sync package.
2015-12-15 15:05:06 +00:00
akwizgran
9868feeb2a
Refactor KeyManager and TagRecogniser. #55
2015-12-14 11:02:49 +00:00
akwizgran
912ba394c5
Refactored FileUtils.
...
Removed methods that are no longer needed for Java 6, moved the remaining method into the utils directory.
2015-12-10 15:58:52 +00:00
akwizgran
8529c976c2
Renamed a bunch of lock variables.
...
"synchLock" will become confusing when we have lots of objects with "sync" in the name.
2015-12-03 16:39:53 +00:00
akwizgran
027ae8340f
Whitespace-only code formatting changes.
2015-11-30 09:38:25 +00:00
akwizgran
0dbfd7073f
Comments to indicate which locks guard which variables.
2015-01-29 11:12:41 +00:00
akwizgran
47bd84122e
Code formatting and small cleanups.
2015-01-28 21:18:31 +00:00
Abraham Kiggundu
851151041e
Pull-Merge of latest changes from main repo
2015-01-08 11:54:47 +03:00
akwizgran
d3bf2d59a1
Use the same maximum frame length for all transports.
2015-01-05 16:24:44 +00:00
akwizgran
358166bc12
Don't try to erase secrets from memory.
...
1. The things we're really trying to protect - contact identities,
message contents, etc - can't be erased from memory because they're
encapsulated inside objects we don't control.
2. Long-term secrets can't be protected by erasing them from memory
because they're stored in the database and the database key has to be
held in memory whenever the app's running.
3. If the runtime uses a compacting garbage collector then we have no
way to ensure an object is erased from memory.
4. Trying to erase secrets from memory makes the code more complex.
Conclusion: Let's not try to protect secrets from an attacker who can
read arbitrary memory locations.
2014-12-29 21:08:27 +00:00
akwizgran
f316d64afa
Moved stream crypto to crypto component.
2014-12-29 19:55:05 +00:00
Abraham Kiggundu
b074978472
Improved encapsulation of thread synchronisation as follows
...
- replaced use of Object instance mutex with a private final Lock object
- replaced Object signaling with specific condition signalling
2014-12-26 16:40:46 +03: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