akwizgran
6cdf68d6cb
Initialise all connection windows when a contact is added.
2011-11-15 13:45:57 +00:00
akwizgran
df054b1743
Store each connection window slot as a database row.
...
This is less memory-efficient but necessary for the coming forward
secrecy changes.
2011-11-15 13:08:20 +00:00
akwizgran
cf49a28c95
Replaced SHA-256 with SHAd-256 to prevent length extension attacks.
2011-11-15 11:11:31 +00:00
akwizgran
effa5c9d8e
Throw checked exception if concurrent attempts are made to remove a
...
contact.
2011-11-15 09:51:51 +00:00
akwizgran
6fd8493d3d
Singleton lists and singleton sets aren't equal, so use lists
...
consistently.
2011-11-15 09:42:21 +00:00
akwizgran
0da94879ef
Use aliases for shorter, clearer SQL.
2011-11-15 09:35:07 +00:00
akwizgran
2ad15518a5
Return transports that have no properties.
2011-11-15 09:00:51 +00:00
akwizgran
72be34768b
Minor refactoring.
2011-11-14 22:14:52 +00:00
akwizgran
73aa7d14d7
Split transport identifiers into two: TransportId (globally unique)
...
and TransportIndex (locally unique).
This is the first step towards forward secrecy. Also removed the
Writable interface and unnecessary user-defined types, moved various
constants to ProtocolConstants and renamed some classes.
2011-11-14 21:40:05 +00:00
akwizgran
7d09102c4d
Advertise the Bluetooth address if the device is discoverable.
2011-11-08 21:12:08 +00:00
akwizgran
531889bd1f
Log the local Bluetooth address.
2011-11-08 14:49:15 +00:00
akwizgran
2c4c8824d0
Removed references to raw types.
2011-11-08 13:17:28 +00:00
akwizgran
ef6f61426f
Removed calls to supportsMulticast() for Java 1.5 compatibility.
2011-11-08 13:14:23 +00:00
akwizgran
1b0bd6961a
You can't step in the same Enumeration twice.
2011-10-30 22:35:46 +00:00
akwizgran
7065f54a57
Prefer LAN interfaces for invitations, WAN for connections.
2011-10-30 22:26:23 +00:00
akwizgran
681e82547e
Try to close sockets when an exception is caught.
2011-10-30 21:32:04 +00:00
akwizgran
2c72b1e2e2
If no local address is configured, bind to any address.
2011-10-30 21:31:24 +00:00
akwizgran
517aea3b1f
Socket plugin that supports exchanging invitations by LAN multicast
...
(untested).
2011-10-30 20:50:55 +00:00
akwizgran
42ddfb444e
Added a method to check which plugins support invitations.
2011-10-29 09:52:07 +01:00
akwizgran
d3060a3bd6
Class IDs may be in nested lists. Don't ask me why.
2011-10-28 16:46:51 +01:00
akwizgran
559cdfaeba
Merged shared code in listener classes and made casts safe.
2011-10-28 15:48:30 +01:00
akwizgran
d2e1500ac1
Store the UUID in the local properties so it gets sent to contacts.
2011-10-28 13:17:17 +01:00
akwizgran
70c5d7ce75
Don't store the local address unless the device is discoverable.
2011-10-28 13:16:00 +01:00
akwizgran
0728f76933
Ignore case when comparing Bluetooth UUIDs.
2011-10-28 12:54:20 +01:00
akwizgran
df125bdcd2
Ignore case when comparing Bluetooth UUIDs.
2011-10-28 12:37:16 +01:00
akwizgran
48d638746c
Invitation API and two (untested) implementations.
2011-10-27 17:52:03 +01:00
akwizgran
59485fe392
Added comments for columns that may be null.
2011-10-26 18:05:49 +01:00
akwizgran
7d73f9604d
Added a method for getting unread message counts for all groups.
2011-10-26 17:56:35 +01:00
akwizgran
6d91603bf7
Moved MessageHeader into DB component and added read/starred flags.
2011-10-26 17:07:09 +01:00
akwizgran
0f6b0e88c1
Added message flags: read/unread and starred/unstarred.
2011-10-26 16:32:30 +01:00
akwizgran
b70b579fd6
Renamed locks in javadoc comments.
2011-10-26 15:49:35 +01:00
akwizgran
94722a9f2a
Broadcast an event when an author's rating changes.
2011-10-26 15:40:38 +01:00
akwizgran
097d11f471
Exposed getMessageHeaders() through DatabaseComponent interface.
2011-10-26 15:18:02 +01:00
akwizgran
d2bac9a4f8
Test and bugfix for getMessageHeaders().
2011-10-26 14:52:18 +01:00
akwizgran
2628823db7
Added a method to get all message headers in a given group (untested).
2011-10-25 17:12:37 +01:00
akwizgran
995518c48b
Upgraded H2 jar and removed workaround for Blob.getBytes() bug.
...
The H2 developers are amazing. :-)
2011-10-25 09:42:27 +01:00
akwizgran
9ec8feec78
Added a method for retrieving the message body from the DB.
2011-10-21 20:42:43 +01:00
akwizgran
ef61eaa804
Separated MessageHeader interface from Message interface.
2011-10-21 18:42:27 +01:00
akwizgran
f2d80825bc
Separated the subject line from the message body.
2011-10-21 18:25:25 +01:00
akwizgran
c828db2e95
Don't send subscription or transport updates unless an update is due.
...
An update is due if the information has changed since the last update,
or if no update has been sent for 12 hours (to ensure that lost
updates are eventually replaced).
2011-10-19 16:34:58 +01:00
akwizgran
93cd31fa2d
Simplify Database methods, move logic to DatabaseComponent.
2011-10-19 15:54:56 +01:00
akwizgran
f18ddfe55f
Variables protected by a monitor don't need to be volatile.
2011-10-19 12:52:02 +01:00
akwizgran
8713e81887
Use ZERO() to initialise columns where appropriate.
2011-10-19 12:48:34 +01:00
akwizgran
dbdbb1d8d4
Never reuse contact IDs.
2011-10-19 12:43:44 +01:00
akwizgran
c8b2cc38de
Record when the transports and subscriptions visible to each contact
...
were last modified.
In future this will be used to determine when to send updates.
2011-10-18 17:32:32 +01:00
akwizgran
d7a417f36d
Validate the decrypted IV before creating a reader/writer.
2011-10-18 15:58:10 +01:00
akwizgran
2f457162a5
Attach the affected contact IDs to subscription update events.
2011-10-17 23:24:23 +01:00
akwizgran
ec56b12384
Converted database events from an enum to classes to allow them to
...
carry data.
2011-10-17 22:47:38 +01:00
akwizgran
89001e4c91
Double-check the initiator flag and transport ID of incoming
...
connections, and invert the flag for the responder's side.
2011-10-15 14:15:25 +01:00
akwizgran
2618fea0eb
Guice module for stream transport connections.
2011-10-14 22:50:34 +01:00