Age | Commit message (Collapse) | Author | |
---|---|---|---|
2014-01-07 | Remove logging from DHT handlers | Sam Truzjan | |
2014-01-06 | Check piece size in the open function | Sam Truzjan | |
2014-01-06 | Add documentation to storage | Sam Truzjan | |
2014-01-06 | Avoid piece copying in verifyPiece | Sam Truzjan | |
2014-01-06 | Add check command to mktorrent utility | Sam Truzjan | |
2014-01-05 | Implement getBitfield and genPieceInfo functions | Sam Truzjan | |
2014-01-05 | Add hashPiece function | Sam Truzjan | |
2014-01-05 | Rename mkBitfield to fromList | Sam Truzjan | |
2014-01-05 | Check size of last piece properly (in writePiece) | Sam Truzjan | |
2014-01-05 | Add storage streaming | Sam Truzjan | |
2014-01-05 | Add totalPieces function | Sam Truzjan | |
2014-01-05 | Make Torrent(tAnnounce) field optional | Sam Truzjan | |
2014-01-05 | Use proper address family when creating Socket from (PeerAddr IP) | Daniel Gröber | |
2014-01-05 | Prettify bitfield export list | Sam Truzjan | |
2014-01-05 | Add Bitfield.full function | Sam Truzjan | |
2014-01-04 | Move mutable state in Connection to single field and make a MonadState ↵ | Daniel Gröber | |
instance for (Connected IO a) ..also add lenses | |||
2014-01-04 | Add type 'Cached a' for caching the binary represntation of bencodable ↵ | Daniel Gröber | |
datastructures | |||
2014-01-03 | Add getMetadata function | Sam Truzjan | |
2014-01-03 | Add skeleton for gettorrent example | Sam Truzjan | |
2014-01-02 | Implement DHT lookup operation | Sam Truzjan | |
2014-01-02 | Stop bootstrapping when table is full | Sam Truzjan | |
2014-01-02 | Add bucket count option | Sam Truzjan | |
2014-01-02 | Fix query timeouts | Sam Truzjan | |
2014-01-02 | Remove useless insertNode call | Sam Truzjan | |
2014-01-02 | Add non operator version of (<@>) | Sam Truzjan | |
2014-01-02 | Use optTimeout option in each rpc call | Sam Truzjan | |
2014-01-02 | Use K parameter in DHT session | Sam Truzjan | |
2014-01-02 | Add DHT options | Sam Truzjan | |
2014-01-02 | Add documentation to the root DHT module | Sam Truzjan | |
2014-01-02 | Add documentation to Routing | Sam Truzjan | |
2014-01-01 | Add PieceHash type synonym | Sam Truzjan | |
2014-01-01 | Rename HashArray to HashList. | Sam Truzjan | |
Hash list is well established name for this kind of objects. Also `hash array' sometimes refer for `hash table's but not `hash list's. | |||
2013-12-31 | Add default instance for NodeAddr | Sam Truzjan | |
2013-12-30 | Add module header to DHT Messages | Sam Truzjan | |
2013-12-30 | Add documentation to Token module | Sam Truzjan | |
2013-12-29 | Fix typo | Sam Truzjan | |
2013-12-29 | Enable all query handlers by default | Sam Truzjan | |
2013-12-29 | Add hashable instances for all address types | Sam Truzjan | |
2013-12-29 | Fix instance Alternative Routing | Sam Truzjan | |
2013-12-29 | Keep routing table in MVar. | Sam Truzjan | |
Since table updates is not atomic operations and may perform IO we should be able to gain /exclusive/ access to the table. Consider insertNode function: 1) Thread A read table_1; 2) Thread B read table_1; 3) Thread B ping node Z and it does not respond and get removed; 4) Thread B remove node Z from table_1 and get table_2; 5) Thread B put table_2; 6) Thread A insert a new node and get table_3; 4) Thread A put table_3; The problem is that final table_3 do have the removed node. At the moment, exclusive access solves this problem. | |||
2013-12-28 | Add instance Alternative Routing | Sam Truzjan | |
2013-12-28 | Simplify Routing monad | Sam Truzjan | |
2013-12-28 | Add routing table shape | Sam Truzjan | |
2013-12-28 | Drop old node if it is not responding | Sam Truzjan | |
2013-12-28 | Add logging to DHT | Sam Truzjan | |
2013-12-28 | Add pretty instances for NodeInfos | Sam Truzjan | |
2013-12-28 | Fix timestamp comparison | Sam Truzjan | |
2013-12-28 | Add node sessions | Sam Truzjan | |
2013-12-28 | Remove unused node list serialization | Sam Truzjan | |
2013-12-28 | Fix typo | Sam Truzjan | |