summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2014-01-09Fix query exception handlingSam Truzjan
2014-01-09Add NodeDistance newtypeSam Truzjan
2014-01-08Do not block on getNodeIdSam Truzjan
2014-01-08Fix some -Wall suggestionsSam Truzjan
2014-01-08Prettify instance Show PeerAddrSam 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-07Fix port number in DHT announce handlerSam Truzjan
2014-01-07Remove logging from DHT handlersSam Truzjan
2014-01-06Check piece size in the open functionSam Truzjan
2014-01-06Add documentation to storageSam Truzjan
2014-01-06Avoid piece copying in verifyPieceSam Truzjan
2014-01-06Add check command to mktorrent utilitySam Truzjan
2014-01-05Implement getBitfield and genPieceInfo functionsSam Truzjan
2014-01-05Add hashPiece functionSam Truzjan
2014-01-05Rename mkBitfield to fromListSam Truzjan
2014-01-05Check size of last piece properly (in writePiece)Sam Truzjan
2014-01-05Add storage streamingSam Truzjan
2014-01-05Add totalPieces functionSam Truzjan
2014-01-05Make Torrent(tAnnounce) field optionalSam Truzjan
2014-01-05Use proper address family when creating Socket from (PeerAddr IP)Daniel Gröber
2014-01-05Prettify bitfield export listSam Truzjan
2014-01-05Add Bitfield.full functionSam Truzjan
2014-01-04Move mutable state in Connection to single field and make a MonadState ↵Daniel Gröber
instance for (Connected IO a) ..also add lenses
2014-01-04Add type 'Cached a' for caching the binary represntation of bencodable ↵Daniel Gröber
datastructures
2014-01-03Add getMetadata functionSam Truzjan
2014-01-03Add skeleton for gettorrent exampleSam 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-02Remove useless insertNode callSam 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 the root DHT moduleSam Truzjan
2014-01-02Add documentation to RoutingSam Truzjan
2014-01-01Add PieceHash type synonymSam Truzjan
2014-01-01Rename 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-31Add default instance for NodeAddrSam Truzjan
2013-12-30Add module header to DHT MessagesSam Truzjan
2013-12-30Add documentation to Token moduleSam Truzjan
2013-12-29Fix typoSam Truzjan
2013-12-29Enable all query handlers by defaultSam Truzjan
2013-12-29Add hashable instances for all address typesSam 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