Ramakrishnan Muthukrishnan [Sun, 6 Aug 2017 09:04:58 +0000 (14:34 +0530)]
quick and dirty initial extended metadata protocol implementation
Ramakrishnan Muthukrishnan [Sat, 5 Aug 2017 00:38:52 +0000 (06:08 +0530)]
Notes on extension messages for adding magneturi
Ramakrishnan Muthukrishnan [Thu, 3 Aug 2017 07:59:20 +0000 (13:29 +0530)]
Basic infrastructure for Extension messages (BEP 0010)
Ramakrishnan Muthukrishnan [Wed, 2 Aug 2017 06:22:53 +0000 (11:52 +0530)]
metainfo: remove a redundant "show"
Ramakrishnan Muthukrishnan [Mon, 31 Jul 2017 17:18:06 +0000 (22:48 +0530)]
More consistency of types between magneturi/metainfo parsing
Ramakrishnan Muthukrishnan [Mon, 31 Jul 2017 02:32:32 +0000 (08:02 +0530)]
metainfotests: refactor
Ramakrishnan Muthukrishnan [Mon, 31 Jul 2017 02:32:04 +0000 (08:02 +0530)]
Metainfo: fix warnings and refactor
Ramakrishnan Muthukrishnan [Fri, 28 Jul 2017 13:52:59 +0000 (19:22 +0530)]
test pass
Ramakrishnan Muthukrishnan [Fri, 28 Jul 2017 13:21:48 +0000 (18:51 +0530)]
add a new test file for multifile torrent
Ramakrishnan Muthukrishnan [Wed, 26 Jul 2017 14:16:12 +0000 (19:46 +0530)]
tests: add license boilerplate
Ramakrishnan Muthukrishnan [Wed, 26 Jul 2017 13:37:21 +0000 (19:07 +0530)]
metainfotest: add a piecelength test
Ramakrishnan Muthukrishnan [Wed, 26 Jul 2017 12:01:22 +0000 (17:31 +0530)]
metainfotest: use the predicate shouldSatisfy to check for a condition
Ramakrishnan Muthukrishnan [Wed, 26 Jul 2017 11:58:42 +0000 (17:28 +0530)]
Add one more metainfo test
Ramakrishnan Muthukrishnan [Wed, 26 Jul 2017 11:53:49 +0000 (17:23 +0530)]
add a very simple Metainfo test
Ramakrishnan Muthukrishnan [Wed, 26 Jul 2017 05:49:58 +0000 (11:19 +0530)]
Bencode, Metainfo: remove warnings and general cleanup
Ramakrishnan Muthukrishnan [Tue, 25 Jul 2017 14:04:43 +0000 (19:34 +0530)]
new experimental Config module to hold input data
Ramakrishnan Muthukrishnan [Tue, 25 Jul 2017 14:04:13 +0000 (19:34 +0530)]
metainfo: support multifile .torrent files
Ramakrishnan Muthukrishnan [Tue, 25 Jul 2017 07:32:15 +0000 (13:02 +0530)]
Metainfo: rename mkInfo -> bvalToInfo
Ramakrishnan Muthukrishnan [Tue, 25 Jul 2017 07:25:20 +0000 (12:55 +0530)]
Metainfo: Info may or may not be present
Ramakrishnan Muthukrishnan [Mon, 24 Jul 2017 02:19:46 +0000 (07:49 +0530)]
BencodeTest: Just the encode/decode test for BVal should be enough
Ramakrishnan Muthukrishnan [Sun, 23 Jul 2017 16:36:30 +0000 (22:06 +0530)]
DONOTUSE quickcheck tests do not terminate
Ramakrishnan Muthukrishnan [Fri, 21 Jul 2017 16:36:04 +0000 (22:06 +0530)]
run bencode tests as well
Ramakrishnan Muthukrishnan [Thu, 20 Jul 2017 15:18:03 +0000 (20:48 +0530)]
magneturi: add another test
Ramakrishnan Muthukrishnan [Wed, 19 Jul 2017 15:21:07 +0000 (20:51 +0530)]
magneturi: two passing tests
Ramakrishnan Muthukrishnan [Wed, 19 Jul 2017 02:45:22 +0000 (08:15 +0530)]
re-arrange tests: add magnet uri tests
Ramakrishnan Muthukrishnan [Sun, 16 Jul 2017 10:06:50 +0000 (15:36 +0530)]
magneturi: parsing functions
Ramakrishnan Muthukrishnan [Sun, 16 Jul 2017 11:07:04 +0000 (16:37 +0530)]
MagnetURI: New module to handle magnet uris
Magnet URIs have much less information than the .torrent files.
The client talk via extension protocols to the peers to get the
info dict.
Just the shell for the module. Nothing in there yet.
Ramakrishnan Muthukrishnan [Sun, 4 Jun 2017 07:08:13 +0000 (12:38 +0530)]
print and error and exit if called without arguments
Ramakrishnan Muthukrishnan [Sun, 17 Jul 2016 04:06:53 +0000 (09:36 +0530)]
data: new test torrent
Ramakrishnan Muthukrishnan [Sun, 17 Jul 2016 04:06:32 +0000 (09:36 +0530)]
data: new test torrent file with udp tracker
Ramakrishnan Muthukrishnan [Sun, 17 Jul 2016 04:05:57 +0000 (09:35 +0530)]
beginning of a design doc
Ramakrishnan Muthukrishnan [Sun, 17 Jul 2016 04:05:30 +0000 (09:35 +0530)]
remove redundant import
Ramakrishnan Muthukrishnan [Sun, 10 Jul 2016 07:56:05 +0000 (13:26 +0530)]
README: update current status
Ramakrishnan Muthukrishnan [Sun, 10 Jul 2016 07:55:28 +0000 (13:25 +0530)]
cleanups on various module imports
Ramakrishnan Muthukrishnan [Sat, 25 Jun 2016 04:51:22 +0000 (10:21 +0530)]
more hlint fixes
Ramakrishnan Muthukrishnan [Sat, 25 Jun 2016 01:51:35 +0000 (07:21 +0530)]
more hlint cleanups
Ramakrishnan Muthukrishnan [Sat, 25 Jun 2016 01:31:59 +0000 (07:01 +0530)]
Tracker/Udp: cleanup of warnings
Ramakrishnan Muthukrishnan [Thu, 23 Jun 2016 16:27:44 +0000 (21:57 +0530)]
Tracker: refactor the tracker loop code
Ramakrishnan Muthukrishnan [Mon, 20 Jun 2016 05:49:01 +0000 (11:19 +0530)]
rm shell.nix, default.nix
Haven't tested in a nixos/nixpkg environment for a long time and
I am no longer a nix user, so removing it.
Ramakrishnan Muthukrishnan [Sun, 19 Jun 2016 15:20:27 +0000 (20:50 +0530)]
refactoring: return type of tracker
Needs DuplicateRecordFields from GHC 8.0.x to compile
Ramakrishnan Muthukrishnan [Sun, 19 Jun 2016 07:05:05 +0000 (12:35 +0530)]
data: new test http tracker based torrent file
Ramakrishnan Muthukrishnan [Sun, 19 Jun 2016 06:56:55 +0000 (12:26 +0530)]
refactor: remove peerid from Peer datatype
Ramakrishnan Muthukrishnan [Sun, 19 Jun 2016 06:30:19 +0000 (12:00 +0530)]
Tracker/Udp: refactor the trackerloop, add timeouts
Ramakrishnan Muthukrishnan [Sat, 18 Jun 2016 07:31:10 +0000 (13:01 +0530)]
Misc fixes to http tracker.
Ramakrishnan Muthukrishnan [Thu, 16 Jun 2016 04:03:59 +0000 (09:33 +0530)]
Tracker/Udp: bug fix, IP is 4 bytes, not 6. Doh!
Ramakrishnan Muthukrishnan [Wed, 15 Jun 2016 09:20:01 +0000 (14:50 +0530)]
Tracker/Udp.hs: connect and annouce works and gets response
Ramakrishnan Muthukrishnan [Wed, 15 Jun 2016 05:26:07 +0000 (10:56 +0530)]
Tracker/Udp: send ip with annouce request
Ramakrishnan Muthukrishnan [Wed, 15 Jun 2016 05:01:36 +0000 (10:31 +0530)]
Tracker/Udp.hs: pass a proper peer id
Ramakrishnan Muthukrishnan [Mon, 13 Jun 2016 15:58:31 +0000 (21:28 +0530)]
UDP tracker: refactoring, now connect succeeds
Ramakrishnan Muthukrishnan [Mon, 13 Jun 2016 15:04:46 +0000 (20:34 +0530)]
hlint fixes
Ramakrishnan Muthukrishnan [Mon, 13 Jun 2016 14:47:32 +0000 (20:17 +0530)]
UDP Tracker: connect + announce. Does not work
Ramakrishnan Muthukrishnan [Sun, 12 Jun 2016 06:27:37 +0000 (11:57 +0530)]
UDP tracker: close session function
Ramakrishnan Muthukrishnan [Sun, 12 Jun 2016 04:34:21 +0000 (10:04 +0530)]
WIP: UDP tracker, compiles
Ramakrishnan Muthukrishnan [Sat, 11 Jun 2016 16:55:06 +0000 (22:25 +0530)]
fix copyright notice
Ramakrishnan Muthukrishnan [Sat, 11 Jun 2016 16:47:01 +0000 (22:17 +0530)]
stack.yaml: various optional features
Ramakrishnan Muthukrishnan [Sat, 11 Jun 2016 16:45:59 +0000 (22:15 +0530)]
WIP: UDP tracker
Ramakrishnan Muthukrishnan [Sat, 11 Jun 2016 16:45:36 +0000 (22:15 +0530)]
misc cleanups in Http tracker
Ramakrishnan Muthukrishnan [Fri, 29 Apr 2016 16:29:22 +0000 (21:59 +0530)]
rename LICENSE -> COPYING
Ramakrishnan Muthukrishnan [Fri, 22 Apr 2016 17:20:31 +0000 (22:50 +0530)]
add AUTHORS file
Ramakrishnan Muthukrishnan [Thu, 21 Apr 2016 12:22:54 +0000 (17:52 +0530)]
README: update the status, add some notes
Ramakrishnan Muthukrishnan [Fri, 15 Apr 2016 17:35:36 +0000 (23:05 +0530)]
*.hs: add GPLv3 License text and copyright notice
Ramakrishnan Muthukrishnan [Thu, 10 Mar 2016 14:09:11 +0000 (19:39 +0530)]
tracker: refactor around Http and Udp (to be worked on) modules
Tracker, like the FileSystem module is also an independent thread
that responds to messages.
Ramakrishnan Muthukrishnan [Sat, 5 Mar 2016 14:50:56 +0000 (20:20 +0530)]
Tracker: refactor into http, udp and types modules
Ramakrishnan Muthukrishnan [Tue, 1 Mar 2016 15:31:09 +0000 (21:01 +0530)]
data: new test torrent file
Ramakrishnan Muthukrishnan [Sun, 28 Feb 2016 12:02:05 +0000 (17:32 +0530)]
Tracker: add UDP tracker error response parsing
Ramakrishnan Muthukrishnan [Sat, 27 Feb 2016 11:57:42 +0000 (17:27 +0530)]
Peer: catchall case statement to catch any invalid msgs
Ramakrishnan Muthukrishnan [Sat, 27 Feb 2016 09:33:53 +0000 (15:03 +0530)]
HaveMsg: minor debug print
Ramakrishnan Muthukrishnan [Sat, 27 Feb 2016 09:27:35 +0000 (14:57 +0530)]
Peer.hs: handle HaveMsg
Ramakrishnan Muthukrishnan [Fri, 19 Feb 2016 05:24:17 +0000 (10:54 +0530)]
stack.yaml: bump up the lts version
Ramakrishnan Muthukrishnan [Tue, 15 Dec 2015 17:31:41 +0000 (23:01 +0530)]
Tracker: remove redundant import
Ramakrishnan Muthukrishnan [Tue, 15 Dec 2015 17:31:21 +0000 (23:01 +0530)]
main: remove redundant import
Ramakrishnan Muthukrishnan [Tue, 15 Dec 2015 17:30:56 +0000 (23:00 +0530)]
FileSystem: bug fix, run should run for ever
Ramakrishnan Muthukrishnan [Tue, 15 Dec 2015 17:18:23 +0000 (22:48 +0530)]
FileSystem: typo updateState -> updateStats
Ramakrishnan Muthukrishnan [Tue, 15 Dec 2015 16:55:49 +0000 (22:25 +0530)]
FileSystem: add read/write stats
Ramakrishnan Muthukrishnan [Fri, 11 Dec 2015 16:48:39 +0000 (22:18 +0530)]
main: kill FS thread on exit (revisit)
Ramakrishnan Muthukrishnan [Fri, 11 Dec 2015 15:49:59 +0000 (21:19 +0530)]
FileSystem: do not expose msgs outside the module, instead expose helper fns
Ramakrishnan Muthukrishnan [Thu, 10 Dec 2015 13:23:21 +0000 (18:53 +0530)]
FileSystem: encapsulate more filesystem functionality into the module
Ramakrishnan Muthukrishnan [Wed, 9 Dec 2015 06:21:53 +0000 (11:51 +0530)]
new modules FileSystem and PieceManager
FileSystem module abstracts the filesystem operations for the download
and upload via a message channel that peers can send messages to.
Ramakrishnan Muthukrishnan [Sun, 6 Dec 2015 09:09:42 +0000 (14:39 +0530)]
rename tracker response function, Utils, catch exceptions.
Ramakrishnan Muthukrishnan [Mon, 5 Oct 2015 01:36:00 +0000 (07:06 +0530)]
Tracker: identify tracker protocol from the tracker server url
Ramakrishnan Muthukrishnan [Sun, 4 Oct 2015 15:59:54 +0000 (21:29 +0530)]
WIP: UDP tracker: send/receive request/response
Ramakrishnan Muthukrishnan [Sun, 4 Oct 2015 09:59:10 +0000 (15:29 +0530)]
WIP: udp tracker: get the peer ip, port pairs
Ramakrishnan Muthukrishnan [Sun, 4 Oct 2015 06:27:03 +0000 (11:57 +0530)]
WIP: UDP Tracker support
Add binary packet creation/parsing of the UDP request and response
packets.
Ramakrishnan Muthukrishnan [Sat, 3 Oct 2015 04:21:45 +0000 (09:51 +0530)]
Tracker: remove vestiges of the older code and module imports
Ramakrishnan Muthukrishnan [Fri, 2 Oct 2015 10:57:57 +0000 (16:27 +0530)]
Peer: rename identifiers that are shadowing already defined identifiers
Ramakrishnan Muthukrishnan [Fri, 2 Oct 2015 09:15:08 +0000 (14:45 +0530)]
Network.httpget -> Network.sendGetRequest
Ramakrishnan Muthukrishnan [Fri, 2 Oct 2015 09:03:59 +0000 (14:33 +0530)]
Tracker is a separate thread now
Ramakrishnan Muthukrishnan [Fri, 2 Oct 2015 09:03:08 +0000 (14:33 +0530)]
remove an unused type
Ramakrishnan Muthukrishnan [Tue, 29 Sep 2015 13:50:41 +0000 (19:20 +0530)]
Nuke the gitter.im link, Nix insructions etc
Ramakrishnan Muthukrishnan [Mon, 21 Sep 2015 09:07:57 +0000 (10:07 +0100)]
version 0.2.0
I am declaring victory and bumping up the version. The client has
come a long way, though it is far from being anywhere 'functional'.
Ramakrishnan Muthukrishnan [Fri, 18 Sep 2015 13:10:41 +0000 (18:40 +0530)]
fix hlint suggestions
Ramakrishnan Muthukrishnan [Fri, 18 Sep 2015 07:04:52 +0000 (12:34 +0530)]
handle Choke, interested, notinterested, cancel and port msgs
Ramakrishnan Muthukrishnan [Fri, 18 Sep 2015 06:32:42 +0000 (12:02 +0530)]
refactor doHandshake to use pattern matching
Ramakrishnan Muthukrishnan [Fri, 18 Sep 2015 02:58:51 +0000 (08:28 +0530)]
handshake for server and client
Earlier implementation used a wrong handhake sequence for the server.
This commit fixes it. It is untested at the moment.
Ramakrishnan Muthukrishnan [Thu, 17 Sep 2015 22:10:10 +0000 (03:40 +0530)]
refactoring: move verifyHash to Utils module
Ramakrishnan Muthukrishnan [Thu, 17 Sep 2015 22:04:12 +0000 (03:34 +0530)]
refactor the piecemap initialization
Move parts of the download resume code into Main, since it avoids
duplication of some code and makes the flow, a lot more easy to
understand.
Ramakrishnan Muthukrishnan [Wed, 16 Sep 2015 16:00:21 +0000 (21:30 +0530)]
README: misc indents
Ramakrishnan Muthukrishnan [Wed, 16 Sep 2015 15:59:23 +0000 (21:29 +0530)]
Fileops merged into Utils module
Ramakrishnan Muthukrishnan [Tue, 15 Sep 2015 16:11:36 +0000 (21:41 +0530)]
Resume download from where it was left off last time
This commit looks at the downloaded file, verifies the hashes of
the downloaded pieces, marks them as "have" pieces and proceeds
to download those that are not in its posession.
Ramakrishnan Muthukrishnan [Tue, 15 Sep 2015 12:07:44 +0000 (17:37 +0530)]
refactor mkPieceMap -> initPieceMap