Add license file, using the GPL for now.
Add license file. Using the GPL for now.
Check in initial revision.
Contains a rudimentary Kademlia implementation, a rudimentary web frontend, implementations for some packet types, and a few unit tests.
Implemented functionality: Email Identity management, composing a text email and storing it in Kademlia.
Partially implemented: Retrieving new emails from Kademlia.
Vertically center favicon; rename StorageRequestTest.java to StoreRequestTest.java
Log exceptions thrown in ExecutorService tasks; add a null check
Include fragment index in packet filename; when storing an email packet, only write the content field.
Make packetQueue a subclass of LinkedList (was ConcurrentSkipListSet), update runningBatches and the send CountdownLatch on the batch when a new PacketBatch is submitted; add more log output.
Initialize sentSignal in constructor instead of lazy init
Fixed several bugs in the Email(byte[]) constructor; fixed the writeTo methods.
Remove extraneous call to outputStream.write in toByteArray
Commented out unneeded PacketListener code in the find(Hash, Class, boolean) method, will delete it in the near future.
Add toString()
Move common code in its own method
Fix: CheckEmailTask was passing encrypted packets to the incomplete folder.
Add "subject" text field to interface; add support for the "Date" header field to Email.java; display static text if subject/sender/date is missing.