Age | Commit message (Collapse) | Author | |
---|---|---|---|
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 | |
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 | |
2013-12-27 | Add naive session tokens implementation | Sam Truzjan | |
2013-12-27 | Add implied_port field to DHT announce query | Sam Truzjan | |
2013-12-27 | Fix get_peers response encoding | Sam Truzjan | |
2013-12-26 | Fix node info list serialization | Sam Truzjan | |
2013-12-26 | Fix typo | Sam Truzjan | |
2013-12-26 | Fix documentation markup | Sam Truzjan | |
2013-12-26 | Merge branch 'dev' of https://github.com/DanielG/bittorrent | Sam Truzjan | |
2013-12-26 | Test ping and find_node bencoding | Sam Truzjan | |
2013-12-26 | Add IsString instance to NodeInfos | Sam Truzjan | |
2013-12-25 | Add Serialize instance for IP | Daniel Gröber | |
2013-12-25 | Merge branch 'master' into dev | Daniel Gröber | |
Conflicts: src/Network/BitTorrent/Exchange/Message.hs | |||
2013-12-25 | A bit of refactoring in Wire | Daniel Gröber | |
2013-12-25 | Fix name shadowing warning in Monoid instance | Sam Truzjan | |
2013-12-25 | Add connRemoteEhs field to Connection | Daniel Gröber | |
2013-12-25 | Add Monoid instance for ExtendedHandshake | Daniel Gröber | |
2013-12-25 | Add yourip field to ExtendedHandshake | Daniel Gröber | |
2013-12-25 | Fix GotPeers(peers) key | Sam Truzjan | |
2013-12-22 | Add connRemoteEhs field to Connection | Daniel Gröber | |
2013-12-22 | Add Monoid instance for ExtendedHandshake | Daniel Gröber | |