akwizgran
c77b4e5b91
Get the outgoing connection number from the database.
2011-09-28 19:26:57 +01:00
akwizgran
5aa7da2048
ProtocolIntegrationTest (formerly FileReadWriteTest) doesn't need to
...
use a file.
2011-09-28 18:58:45 +01:00
akwizgran
a8b96f11fd
Added Consumer support to Writer, to avoid redundant copying.
2011-09-28 18:47:24 +01:00
akwizgran
9c2e3917bf
Added an integration test for batch transports.
2011-09-28 14:43:23 +01:00
akwizgran
a1b664b639
More refactoring to connect ConnectionRecogniser to ConnectionReader.
...
Added TestDatabaseModule so tests can specify their own DB
configuration. The modules are currently too tightly coupled - see
whether any dependencies can be removed.
2011-09-28 14:21:38 +01:00
akwizgran
4aff0c4f88
Refactored transport component and renamed WritersModule.
...
The goal of the refactoring was to clean up the dependencies of
IncomingBatchConnection and OutgoingBatchConnection.
2011-09-27 19:21:44 +01:00
akwizgran
a40c081815
Record when the latest subscription/transport update was sent.
2011-09-26 18:13:48 +01:00
akwizgran
53b5a61ab3
Replaced Database.getParent() with getGroupMessageParent().
...
The new method checks whether the parent is present in the database
and belongs to the same group, so separate methods for those checks
have been removed.
2011-09-26 18:00:56 +01:00
akwizgran
124188a0a1
DatabaseComponent.setSeen() should call setStatusSeenIfVisible().
...
Otherwise an exception may be thrown if an offered message is no
longer in the DB.
2011-09-25 14:39:31 +01:00
akwizgran
98ab523092
Database refactoring to fix injection problems.
2011-09-23 18:52:56 +01:00
akwizgran
4b0e91f52c
Removed test classes' dependency on ByteArray{Input,Output)Stream.
2011-09-23 16:36:07 +01:00
akwizgran
b470afb4ef
Added DatabaseComponent.setSeen() for handling requests.
...
Also moved IO out of the lock in receiveOffer().
2011-09-23 16:06:14 +01:00
akwizgran
7c6e0c349c
Extracted constants from DatabaseComponent interface.
2011-09-23 15:33:41 +01:00
akwizgran
b675c38953
Don't do IO while holding database locks.
2011-09-23 12:55:23 +01:00
akwizgran
09971c8460
Implemented incoming and outgoing batch connections (untested).
2011-09-22 16:26:06 +01:00
akwizgran
b65d6631f1
Removed writer's count of bytes written and renamed a method.
2011-09-21 18:22:14 +01:00
akwizgran
52f3b70c3f
Added size-unlimited version of Database.getSendableMessages().
2011-09-21 18:10:22 +01:00
akwizgran
fadd95ae49
Added a test for MAX_PACKET_LENGTH.
2011-09-21 15:56:50 +01:00
akwizgran
10c3b21726
Expose the encryption and authentication overhead without breaking
...
encapsulation.
This should allow callers to calculate maximum packet sizes without
knowing the details of the transport protocol.
2011-09-21 15:22:25 +01:00
akwizgran
7e58b25618
Allow the max packet length to be reduced from the default.
2011-09-21 13:47:06 +01:00
akwizgran
3e60233ae0
Expose serialisation overhead without breaking encapsulation.
2011-09-21 13:16:58 +01:00
akwizgran
95c3fb4fed
Removed getCapacity() from BatchWriter interface.
2011-09-21 12:37:19 +01:00
akwizgran
3dd3742a96
Folded findLostBatches() into receiveAck().
2011-09-19 18:45:19 +01:00
akwizgran
7aeb6029a6
Assertions and comments.
2011-09-19 16:42:27 +01:00
akwizgran
44c8f9ceaa
Folded ReadWriteLockDatabaseComponent into its parent.
2011-09-19 15:29:40 +01:00
akwizgran
bf01dd4f96
Folded ReadWriteLockDatabaseComponentTest into its parent.
2011-09-19 14:58:32 +01:00
akwizgran
22b8321376
Removed SynchronizedDatabaseComponent.
...
LockFairnessTest passes on Windows, Mac and Linux, so it's safe to use
ReadWriteLockDatabaseComponent on all those platforms. We can revisit
this issue for Android if necessary, but for now it's a waste of
effort to have two parallel implementations.
2011-09-19 14:54:29 +01:00
akwizgran
53f02f7a52
Fixed unit tests for database component.
2011-09-16 13:13:27 +01:00
akwizgran
f18c86b0d3
Unit tests for private messages.
2011-09-16 13:06:04 +01:00
akwizgran
5f05a7f898
Unit tests for private messages.
2011-09-16 11:33:55 +01:00
akwizgran
8ec40587b2
Check for sendable private messages as well as group messages.
2011-09-13 16:15:50 +01:00
akwizgran
b78cfa6c88
More DB support for private messages - needs unit tests.
2011-09-13 15:40:33 +01:00
akwizgran
de5caca578
Basic database support for private messages.
2011-09-13 14:43:48 +01:00
akwizgran
1d25b5a92e
Use null instead of MessageId.NONE and AuthorId.NONE, as for other
...
optional fields.
2011-09-13 14:04:23 +01:00
akwizgran
70b1487140
Renamed user-defined tags "user-defined type identifiers".
2011-09-12 16:32:25 +01:00
akwizgran
fd2046d984
Renumbered object identifiers to reflect removal of OFFER_ID.
2011-09-12 16:23:55 +01:00
akwizgran
64548375cc
Offer IDs no longer need to be calculated or echoed in requests.
...
The initiator flag in the transport protocol makes this unnecessary by
linking the two sides of a stream-mode connection, making it
impossible for an attacker to replay the responder's side of a
different connection.
2011-09-12 16:21:17 +01:00
akwizgran
7ed747b2a3
Added an initiator flag (bit 31) to the IV.
...
The flag is used to distinguish between the initiator and responder
directions of a stream-mode connection, allowing them to use the same
connection number without risking IV reuse.
The flag is also raised for batch-mode connections, which only have
one direction.
2011-09-07 17:21:52 +01:00
akwizgran
39be97a4d6
Order sendable messages by timestamp. Also fixed some comments.
2011-09-07 15:55:03 +01:00
akwizgran
cc36d9d6c3
Don't forget 8 bytes for the timestamp.
2011-09-07 13:54:19 +01:00
akwizgran
331e7e0547
Increased the maximum packet size to 1 MiB.
...
This should provide acceptable memory usage and database locking
granularity, while making subscription and transport updates large
enough for the incremental update issue to be kicked into the long
grass.
Removed awareness of the serialisation format from the protocol
component wherever possible, and added tests to ensure that the
constants defined in the protocol package's API are compatible with
the serialisation format.
2011-09-07 13:51:30 +01:00
akwizgran
531d54c1d3
Removed unnecessary transaction commit.
2011-09-07 11:18:07 +01:00
akwizgran
0a84a01235
Allow identical batches to be sent to multiple contacts.
2011-09-07 11:15:34 +01:00
akwizgran
e80ede4429
Map keys must be unique.
2011-09-07 11:04:03 +01:00
akwizgran
472dff3d61
Removed redundant frame number from header.
2011-09-01 11:11:31 +01:00
akwizgran
3b32aee6be
Slightly modified ConnectionWriterImpl to write a full-size frame as
...
soon as possible, rather than waiting for the next write.
2011-08-19 20:10:14 +02:00
akwizgran
7e4ff343ea
Added PaddedConnectionWriterTest to the ant buildfile.
2011-08-19 19:48:48 +02:00
akwizgran
d11f7ef824
Unit tests for PaddedConnectionWriter. Also broke some shared test
...
code out into separate classes.
2011-08-19 19:47:24 +02:00
akwizgran
3084a6b058
Added optional padding to the frame format, so transports that are
...
vulnerable to traffic analysis can frame their data independently of
packet boundaries.
2011-08-19 14:47:16 +02:00
akwizgran
7a53ea7814
Unit tests for ConnectionWriterImpl.
2011-08-19 11:50:47 +02:00