summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2013-06-14+ Add docs to progress and client session.Sam T
2013-06-14~ Minor changes.Sam T
2013-06-14~ Cosmetic changes.Sam T
2013-06-13~ Use bounded chan to avoid space leaks.Sam T
2013-06-13+ Add defaultClient function.Sam T
This exposes problems with keepalives: exsample: sendWakeup: resource exhausted (Resource temporarily unavailable )
2013-06-13~ Use safe semaphores.Sam T
2013-06-13~ Use QSem instead of QSemN.Sam T
2013-06-13~ Bound count of concurrent sessions.Sam T
2013-06-13~ Fix wall suggestions.Sam T
2013-06-12+ Add session exception.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-12+ Rename to await and yield.Sam T
2013-06-12~ Use lens.Sam T
2013-06-11~ Use data-default for default values.Sam T
2013-06-11~ Merge Scrape to Tracker.Sam T
2013-06-11~ Minor changes.Sam T
2013-06-11~ Use exception in fromFile.Sam T
Again, the problem is that one function returns errors in two different ways: Either and IO exceptions. It's better to just throw exception in either case.
2013-06-11~ Use Chan for current unused peer list.Sam T
2013-06-11~ Merge selection module to bitfield.Sam T
2013-06-11+ Add progress to client session.Sam T
2013-06-11~ Add keepalive timeouts.Sam T
2013-06-10~ Sketch of high level API.Sam T
2013-06-09~ Hide *.Protocol modules.Sam T
2013-06-08+ Add some docs.Sam T
2013-06-08~ Merge Status into Protocol.Sam T
2013-06-08~ Fix build fail after renaming.Sam T
2013-06-08~ Rename PeerWire to Exchange.Sam T
2013-06-08~ Minor changes.Sam T
2013-06-08~ Merge Block and Handshake into Protocol.Sam T
We could provide better api this way. Also this refactoring should reduce compilation time.
2013-06-07~ Rename Message to Protocol.Sam T
2013-06-07~ Fix bitfield encoding.Sam T
2013-06-07~ Merge Encoding to Main.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-06-07~ Fix bug in torrent bencode instance.Sam T
Also add encoding tests for torrent module.
2013-06-07~ Use testing flag to hide internals.Sam T
We need some internal functions in tests and benchmarks, so it's better to just use CPP for this.
2013-06-07+ Add tests for bitfield.Sam T
2013-06-06- Remove Peer.* modules.Sam T
I do not expect that this modules will grow later, so they are merged with Network.BitTorrent.Peer now. We also avoid one "reexport only" module this way.
2013-06-06+ Add some tests.Sam T
2013-06-06~ Rename package to bittorrent.Sam T
It seems like 'network-bittorrent' is too long and annoying: everyone knows that bittorrent is a network protocol and there is no purpose to prefix it with 'network'. Moreover hackage do not have package with the our new name. So I think just 'bittorrent' is a more suitable name for the package.
2013-06-06~ Document bitfield.Sam T
2013-06-06~ Add docs to Torrent module.Sam T
2013-06-02~ Use pretty package for pretty print.Sam T
This is a bit faster and pretty!
2013-06-02~ Merge InfoHash to Torrent.Sam T
This allow to provide better interface.
2013-06-02~ Use IntSet instead of ByteString for bitfields.Sam T
There are several reasons for this: * IntSet is stored in ordinary heap, while ByteStrings in pinned memory; * Our IntSet's should be much faster 90% time. (in typical BT client) Hovewer in worst case IntSet is slower, but difference should is not so big. (We should measure this although) * It's pure, tested, error-free and much more convenient. Moreover we have kill a lot of ugly code!
2013-05-25~ Use PortNumber instead of Word16 in Port message.Sam T
2013-05-20~ Rename field names.Sam T