summaryrefslogtreecommitdiff
path: root/src/Network/BitTorrent/Tracker/Protocol.hs
AgeCommit message (Collapse)Author
2013-06-14~ Cosmetic changes.Sam T
2013-06-12- Remove some debug stuff.Sam T
2013-06-12~ Fix bugs in tracker communication.Sam T
* Fix tracker interval timeout: threadDelay use argument is microseconds while tracker response is seconds. * Fix stopped request: tracker might response with empty body.
2013-06-12~ Minor fixes.Sam T
* Annotate all required fields as strict. These are always used and there is no reason to keep them lazy. * Augment user errors with location.
2013-06-11~ Merge Scrape to Tracker.Sam T
2013-06-07~ Throw exception in askTracker.Sam T
HTTP client functions throws an exception. If we unable to decode result we return BEncode.Result.Left. So user of this function should check both kinds of errors and this complicate usage. Instead of this we throw IOException too.
2013-06-07~ Polish documentation for Tracker.Protocol.Sam T
2013-06-07~ Use bytestring stream in tracker communication.Sam T
stringBufferOp is defined in terms of strictBuffer op. So we previously we have convertion from strict bytestring to string and then manually pack string back to strict bytestring to with BC.pack. We could avoid this unnecessary convertion by just using bytestring streams. http://hackage.haskell.org/packages/archive/HTTP/4000.0.9/doc/html/Network-BufferType.html#v:stringBufferOp
2013-05-03~ Reorganize modules.Sam T
All peer location & identification & information stuff should be placed in Network.BitTorrent.Peer now.
2013-04-26~ Fix Wall suggestions.Sam T
2013-04-26~ Fix hlint suggestions.Sam T
2013-04-26~ Starting separating protocol and high level api.Sam T
It will be more convenient to provide high level api and raw protocol separated. In many use cases we don't worry about protocol but need some simple things like track swarm/peer state. So I think it will be better to refactor library in the following way: 1. Network.BitTorrent.Tracker.Protocol, Network.BitTorrent.PeerWire.Protocol For raw protocol definitions, documentation and serialization. 2. Network.BitTorrent.Tracker Network.BitTorrent.PeerWire For convenient API. Though we should not restrict user to in some particular way, so high level api should be flexible enough. In other words: mechanism, not policy/framework.