summaryrefslogtreecommitdiff
path: root/src/Network/BitTorrent/Exchange
AgeCommit message (Collapse)Author
2013-12-08Close connection if peer send invalid protocol stringSam Truzjan
2013-12-08Newtype protocol string in handshakeSam Truzjan
2013-12-08Add stubs for connection statisticsSam Truzjan
2013-12-08Serialization for metadata exchange extensionSam Truzjan
2013-12-07Move JSON options to separate moduleSam Truzjan
2013-12-07rename peerID field to peerIdSam Truzjan
2013-12-07Prettify pretty instancesSam Truzjan
2013-12-07Decode extended metadata messageSam Truzjan
2013-12-06Add documentation to extended handshakeSam Truzjan
2013-12-06Unify capabilities operationsSam Truzjan
2013-12-06Implement extended message id conventionSam Truzjan
2013-12-06Document core messagesSam Truzjan
2013-12-05Add keep alive interval constantSam Truzjan
2013-12-05Lift the requires function to message classSam Truzjan
2013-12-05Document status messagesSam Truzjan
2013-12-05Document message extensionsSam Truzjan
2013-12-05Make extended caps mutableSam Truzjan
2013-12-05Simplify Core modules importsSam Truzjan
2013-12-05Keep track inflight set in assemblerSam Truzjan
2013-12-05Follow naming conventions in qualified importsSam Truzjan
2013-12-05Rename ClientInfo datatype to FingerprintSam Truzjan
2013-12-05Move piece selection algorithms to separate moduleSam Truzjan
2013-12-05Move Block module to exchange subsystemSam Truzjan
2013-12-05Add Wire moduleSam Truzjan
2013-12-05Add BEP9 messagesSam Truzjan
2013-12-03Add extension protocol handshakeSam Truzjan
2013-12-01Fix building with aeson >= 0.6.2.0 ..againDaniel Gröber
..overlooked this one, no idea why that built before
2013-12-01Fix building with aeson >= 0.6.2.0Daniel Gröber
deriveJSON now takes an Option record instead of a single function. It might be nicer to define a function that takes the fieldLabelModifier function rather than doing it inline everywhere but I didn't know where a good place to put that would be.
2013-12-01Add a few thoughts about piece managementSam Truzjan
2013-12-01Move exchange extension stuff to the Message moduleSam Truzjan
2013-11-29More safiety in InfoHash convertionsSam Truzjan
2013-11-28Move extension moduleSam Truzjan
2013-11-28Refactor exchange namespacesSam Truzjan
2013-11-28Rename moduleSam Truzjan
2013-11-28Add extended module for extended messagesSam Truzjan
2013-11-27Move exchange status to separate moduleSam Truzjan
2013-11-27Use Pretty class in exchange protocolSam Truzjan
2013-10-31Update licenseSam Truzjan
2013-10-31Merge bittorrent package with torrent-contentSam Truzjan
2013-08-16~ Fix some warnings.Sam T
2013-08-16~ Remove torrent-content modules.Sam T
2013-07-22~ Expose some session data.Sam T
2013-07-21~ Move some extensions to cabal.Sam T
2013-07-20~ Move compact peer list decoding to Peer.Sam T
2013-07-16~ Fix some long standing warnings.Sam T
2013-07-10~ Some preparations for peer listener.Sam T
2013-07-10~ Refactor handshake.Sam T
2013-07-04~ Add more JSON instances.Sam T
2013-07-04~ Rename PeerID to PeerId.Sam T
2013-07-03~ Use lazy bytestringSam T
This lead to the following consequences: * we could efficiently read from storage - if block intersects files boundaries then we will "view" the block in the two different bytestrings. To avoid concat we now return lazy bytestring; * we could read block from socket without "concat" - again, for the same reason. The pitfail is that now we have a bit more heap object, but blocks lifetime is very short and this shouldnt play the big difference. The lifetime is either (socket -> storage -> unreachable) or (storage -> socket -> unreachable) unless a lib user keep block for their own purposes.