Commit Graph

  • b5220b096a Message timestamp should have TIMESTAMP type. akwizgran 2011-07-21 11:52:39 +01:00
  • b4bf662b3e Unit tests for HeaderReader. akwizgran 2011-07-21 10:58:42 +01:00
  • 159b09e12a Marked unused classes for removal if they're not used later. akwizgran 2011-07-21 10:21:20 +01:00
  • 5843f38803 Unit tests for BatchReader. akwizgran 2011-07-21 10:14:23 +01:00
  • 06ae0e0783 Use mocks for test objects with no side-effects. akwizgran 2011-07-20 18:38:05 +01:00
  • f727420838 Removed signatures from headers and bundles, since the transport's authentication will make them redundant. akwizgran 2011-07-20 18:33:06 +01:00
  • 45b4bef348 Catch ClassCastException when the encountered type doesn't match the expected type, and re-throw as FormatException. akwizgran 2011-07-20 15:07:17 +01:00
  • 30d7a0f916 Defined which protocol objects require user-defined tags. akwizgran 2011-07-20 14:45:56 +01:00
  • 6b61cfa1bc Factored out header reading and batch reading into separate classes for easier testing. akwizgran 2011-07-19 19:13:27 +01:00
  • fb528a85ad Nested user-defined objects (and collections of them) can now be read by registering ObjectReaders with the Reader. akwizgran 2011-07-19 17:17:45 +01:00
  • a9e7cbd05c Every encoded object should include its identifying tag. akwizgran 2011-07-19 14:21:07 +01:00
  • ff984c69fb Messages are no longer encoded as raw byte arrays. akwizgran 2011-07-19 14:01:33 +01:00
  • 30fc6c1a92 Defined some user-defined tags for protocol elements. Currently they're just adding redundancy, but in future they'll be used for parsing nested elements. akwizgran 2011-07-18 17:44:18 +01:00
  • 427142ae51 Read and write user-defined tags. akwizgran 2011-07-18 16:46:03 +01:00
  • 8fc97157d3 Fun fact: it's never worth writing a length as an int8. akwizgran 2011-07-18 16:17:01 +01:00
  • 7a4171f3ba A more efficient encoding for short strings, raws, lists and maps. Now we can encode a list of three small integers in 4 bytes like MessagePack does, should that ever turn out to be useful. akwizgran 2011-07-18 16:06:09 +01:00
  • 0bc8a31749 Cleaned up serial and protocol packages in preparation for user-defined types. akwizgran 2011-07-18 14:33:41 +01:00
  • 308a7017be Check that EOF occurs when expected. akwizgran 2011-07-15 20:23:59 +01:00
  • e8fd3ab7a3 Added DroidSansFallback font for platforms without CJK fonts installed. akwizgran 2011-07-15 04:36:16 -04:00
  • 4d8641e590 Changed Eclipse project name to match repo name. akwizgran 2011-07-14 23:12:27 +01:00
  • e25b7353ba Only check the beginnings of font names, since the exact names vary by platform. akwizgran 2011-07-14 21:39:04 +01:00
  • af6c9a9706 Upgraded to JUnit 4.9b3 for a Java 1.5 compatibility bugfix. akwizgran 2011-07-14 21:26:23 +01:00
  • 62d69b6fb5 Don't use FileUtils.getBriarDirectory() in tests. akwizgran 2011-07-14 20:42:41 +01:00
  • 065b6e496f Don't use the real Briar directory for unit tests. akwizgran 2011-07-14 20:02:47 +01:00
  • acb7228df9 Updated the H2 jar to a version that hopefully works on OSX 10.4 (since it was built there). akwizgran 2011-07-14 19:39:01 +01:00
  • b41465c2da Use commons-io to measure free space. akwizgran 2011-07-14 19:21:16 +01:00
  • cea8a3a843 IO, IO, it's off to work we go. akwizgran 2011-07-14 19:15:40 +01:00
  • 4d4b540387 Java 1.5 compatibility changes (for OSX 10.4). We depend on commons-io for a single method... might be worth copying the source into FileUtils if the license permits. akwizgran 2011-07-14 19:12:44 +01:00
  • fcedc34d10 Don't store subscription or transport updates that are older than those already received. Also some small changes to DatabaseComponent impls for readability. akwizgran 2011-07-14 13:53:13 +01:00
  • 836d30f6df Retrieve messages from the database in raw form to avoid creating unnecessary short-lived objects. Added timestamps to headers. akwizgran 2011-07-14 12:01:35 +01:00
  • d4382fd232 Replaced clearSubscriptions() and addSubscription() with setSubscriptions(). akwizgran 2011-07-14 09:52:05 +01:00
  • a121dcdda8 New retransmission mechanism, which does away with the need for bundle IDs and should cope better with high bandwidth-delay product links. akwizgran 2011-07-14 09:39:15 +01:00
  • d889a08cf4 Guice stuff. akwizgran 2011-07-13 17:05:25 +01:00
  • 48359ec478 Updated buildfile for unit tests. akwizgran 2011-07-13 16:46:21 +01:00
  • e13b0437c3 Rewrote the bundle reading and writing code to eliminate copying. Signatures and digests are now calculated on the fly as the data is read or written. This is a little bit tricky in the case of reading because ReaderImpl uses a lookahead byte, so the signature and message digest need to lag one byte behind. akwizgran 2011-07-13 16:39:31 +01:00
  • 70c698ca9d Batch and header builders should set the length to include the signature. akwizgran 2011-07-12 20:51:45 +01:00
  • c3643a037b Added accessors for the amount of raw data read and written by readers and writers - this fixes a fixme in MessageParserImpl. akwizgran 2011-07-12 20:27:37 +01:00
  • 22a67cc0d2 Message parser and encoder. akwizgran 2011-07-12 18:41:08 +01:00
  • 2af6f19476 Check the return value from Signature.verify(). *cough* akwizgran 2011-07-12 17:08:31 +01:00
  • 3d549ea6ac Builders for incoming and outgoing headers and batches. The protocol and serial components can now be used to serialise, sign, deserialise and verify real bundles (except for message parsing). akwizgran 2011-07-12 16:50:20 +01:00
  • e0509db45d Protocol refactoring. Each bundle now consists of a signed header and zero or more signed batches. There is no overall signature on the bundle, since the bundle's contents may need to be processed before the entire bundle has been read. The protocol does not prevent an adversary from removing batches from a bundle, reordering batches, moving them from one bundle to another, etc. However, since each batch is signed and acknowledged independently, no such guarantees are required. Bundle IDs will go away when the retransmission mechanism is changed. akwizgran 2011-07-12 12:55:46 +01:00
  • 4977695a79 Refactored readers and writers. akwizgran 2011-07-12 11:28:26 +01:00
  • 4f5eb21180 Builders for batches and bundles. akwizgran 2011-07-11 12:25:04 +01:00
  • 51e371f7ca Added start/end methods for writing indefinite lists and maps. akwizgran 2011-07-11 10:07:01 +01:00
  • 63f1caebac Iterators throw FormatRuntimeException if a FormatException occurs, or RuntimeException if an IO error occurs. Reduced visibility of impl classes. akwizgran 2011-07-10 22:42:38 +01:00
  • 0f4ffe9fbc Added type-safe accessors and iterator accessors for lists and maps. akwizgran 2011-07-10 18:31:18 +01:00
  • 1f5e52c31b Modifying Protocol Buffers (or Thrift, or MessagePack, or any of the free ASN.1 implementations I could find) to support length constraints was more work than writing a custom serialisation format, so I wrote a custom format. akwizgran 2011-07-10 14:44:15 +01:00
  • 4deb52478d Protocol Buffers will be used for the wire protocol. As a quick test it's now used to serialize transport details when creating an invitation. akwizgran 2011-07-07 22:10:02 +01:00
  • 7fb589075d Added support for local transport details. Each bundle contains the sender's latest transport details. akwizgran 2011-07-06 19:07:10 +01:00
  • b548820f77 Transport details for contacts can be stored in the database (these are arbitrary key/value pairs that describe how to reach the contact using a particular transport). Moved the generic ContactId and Rating classes out of the database package of the API. akwizgran 2011-07-06 16:50:01 +01:00
  • 9fbf0f21de Contact IDs are now auto-generated. akwizgran 2011-07-06 14:53:35 +01:00
  • 5e0d580d00 More unit tests for DatabaseComponent. akwizgran 2011-07-05 20:57:28 +01:00
  • 5d768a5718 DatabaseComponent throws an exception instead of returning silently if a contact is removed during an operation involving that contact. More unit tests. akwizgran 2011-07-05 18:15:44 +01:00
  • 13b3d4cc03 Unit tests and bugfixes for DatabaseComponent. Merged code from various unique ID classes into a common superclass. akwizgran 2011-07-05 16:58:44 +01:00
  • f97393f160 Unit tests, refactoring and bugfixes for the database. Replies to messages in other groups no longer affect sendability, which makes it safe to delete all messages from a group when unsubscribing. akwizgran 2011-07-05 14:16:29 +01:00
  • eb752ada62 Factored out the database cleaner. akwizgran 2011-07-04 18:11:27 +01:00
  • 390b316724 Unit tests for H2Database. akwizgran 2011-07-04 16:06:10 +01:00
  • 6384256c06 Unit tests for i18n component. akwizgran 2011-07-01 13:11:59 +01:00
  • a5bb959635 Enabled assertions in junit tests. akwizgran 2011-07-01 12:19:02 +01:00
  • 0ed2a7c9e7 Javadocs and unit tests. akwizgran 2011-07-01 12:07:00 +01:00
  • b29a024c2a Changed "neighbour" to "contact" throughout (messy, but it's only going to get messier later). Also reordered some methods in DatabaseComponent impls. akwizgran 2011-06-29 13:16:33 +01:00
  • ed0174a91b Added the ability to remove neighbours from the database (untested). akwizgran 2011-06-29 12:54:00 +01:00
  • 6960f64982 Unit tests for InvitationWorker. akwizgran 2011-06-28 17:53:34 +01:00
  • b2532708d3 Removed name from startTransaction(), merged the two batch-removal methods. akwizgran 2011-06-28 17:52:26 +01:00
  • 82fb860ab8 More javadocs. akwizgran 2011-06-27 16:11:59 +01:00
  • 5281113f24 Javadocs and unit tests, God help me. akwizgran 2011-06-27 13:01:31 +01:00
  • d193f23e4c Replaced printlns with logging, moved delete() to FileUtils. akwizgran 2011-06-27 10:38:30 +01:00
  • eaf52f57e7 More unit tests. akwizgran 2011-06-22 17:09:49 +01:00
  • dad1b4fcb9 More unit tests. akwizgran 2011-06-22 16:58:03 +01:00
  • eb1c855278 Javadocs and unit tests. Woo! akwizgran 2011-06-22 11:42:33 +01:00
  • 9e76cc6a4f Added test jars and the first unit test. akwizgran 2011-06-21 23:12:30 +01:00
  • cd4f99df3d Initial commit with new directory structure. akwizgran 2011-06-21 18:01:28 +01:00