summaryrefslogtreecommitdiff
path: root/src/Network/BitTorrent/DHT
AgeCommit message (Collapse)Author
2014-02-19Link query handlers to the underlying messages in documentationSam Truzjan
2014-02-19Document DHT.Query module indexSam Truzjan
2014-02-19Add module header to DHT session moduleSam Truzjan
2014-02-19Rename handlers to defaultHandlersSam Truzjan
2014-02-19Add MonadActive instance for DHTSam Truzjan
2014-02-19Add MonadResource instance for DHTSam Truzjan
2014-02-19Stop DHT node at client cleanupSam Truzjan
2014-02-19Hide ResIO, add stopNode functionSam Truzjan
2014-02-19Prettify DHT session documentation indexSam Truzjan
2014-02-19Return Bool instead of raising exception in checkTokenSam Truzjan
2014-02-16Move ping function to Query moduleSam Truzjan
2014-02-16Remove getNodeId functionSam Truzjan
2014-02-16Remove askOptionSam Truzjan
2014-02-16Hide defaultAlpha and defaultK optionsSam Truzjan
2014-02-16Split query stuff from Session moduleSam Truzjan
2014-02-16Add Show and Eq instances for routing tableSam Truzjan
2014-02-15Add documentation to null and full functionSam Truzjan
2014-02-15Fix typosSam Truzjan
2014-01-23Add class MonadDHTSam Truzjan
2014-01-23Add convertion from routing table to listSam Truzjan
2014-01-21Add askOptions functionSam Truzjan
2014-01-13Add documentation to session sectionSam Truzjan
2014-01-13Add announce set to DHT sessionSam Truzjan
2014-01-13Refactor DHT moduleSam Truzjan
2014-01-12Unify all iterative queriesSam Truzjan
2014-01-11Add documentation to peer store sectionSam Truzjan
2014-01-11Unify kclosest and kclosestHash functionsSam Truzjan
2014-01-11Add documentation for routing table operationsSam Truzjan
2014-01-11Add options related to data republishingSam Truzjan
2014-01-11Add some good DHT referenceSam Truzjan
2014-01-09Use K parameter in routing table lookupsSam Truzjan
2014-01-08Do not block on getNodeIdSam Truzjan
2014-01-08Fix some -Wall suggestionsSam Truzjan
2014-01-08Pass query_timeout options to rpc managerSam Truzjan
2014-01-08Use newer krpc packageSam Truzjan
2014-01-07Remove logging from queryNodeSam Truzjan
2014-01-02Implement DHT lookup operationSam Truzjan
2014-01-02Stop bootstrapping when table is fullSam Truzjan
2014-01-02Add bucket count optionSam Truzjan
2014-01-02Fix query timeoutsSam Truzjan
2014-01-02Add non operator version of (<@>)Sam Truzjan
2014-01-02Use optTimeout option in each rpc callSam Truzjan
2014-01-02Use K parameter in DHT sessionSam Truzjan
2014-01-02Add DHT optionsSam Truzjan
2014-01-02Add documentation to RoutingSam Truzjan
2013-12-30Add module header to DHT MessagesSam Truzjan
2013-12-30Add documentation to Token moduleSam Truzjan
2013-12-29Fix instance Alternative RoutingSam Truzjan
2013-12-29Keep 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-28Add instance Alternative RoutingSam Truzjan