Age | Commit message (Collapse) | Author | |
---|---|---|---|
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-05 | Use exceptions instead of return value | Sam Truzjan | |
2014-01-05 | Merge command options with command flags | Sam Truzjan | |
2014-01-05 | Move mktorrent sources to this pkg | Sam Truzjan | |
2014-01-04 | Add examples flag to cabal | 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-04 | Test against rtorrent's dht server when enabled | Daniel Gröber | |
2014-01-04 | Run bittorrent-client in res/ so it can seed the testfile | Daniel Gröber | |
2014-01-04 | Turns out network's send/recv do use GHC's fd manager stuff | Daniel Gröber | |
Conflicts: TODO.org | |||
2014-01-04 | Add tests for instance Serialize IP | Daniel Gröber | |
2014-01-04 | Add some dev scripts | Daniel Gröber | |
2014-01-03 | Ignore torrent files | Sam Truzjan | |
2014-01-03 | Add basic gettorrent implementation | Sam Truzjan | |
2014-01-03 | Add getMetadata function | Sam Truzjan | |
2014-01-03 | Add skeleton for gettorrent example | Sam Truzjan | |
2014-01-02 | Update Routing table test | 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-30 | Add basic spec for token map | 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 | |