Commit Graph

51 Commits

Author SHA1 Message Date
Matt Joiner d24922dc09 Add support for non-IP-based networks
Includes a test with unix sockets. Exposes AddDialer, AddListener, and reworks Peer.
2020-02-20 16:47:37 +11:00
Matt Joiner cb1bf0f413 goimports -local 2019-08-21 20:58:40 +10:00
Matt Joiner fc4fab91f5 Switch to goimports import sorting
Used to use sortimports, but it's old, and goimports seems to have an opinion now.
2018-11-02 23:12:01 +11:00
Matt Joiner cee8e3b9f9 Update external use of ClientConfig 2018-06-16 16:33:40 +10:00
Matt Joiner b5df073217 Support different hosts for each network
CircleCI's localhost hostname doesn't resolve for IPv6.
2018-04-12 15:06:53 +10:00
Matt Joiner 319e57d1c6 Rework conns to/and allow multiple DHT servers
This will help with #229, and IPv6 support.
2018-04-12 11:41:07 +10:00
Matt Joiner 2f616b9d8b megacheck and staticcheck fixes 2018-01-06 16:53:40 +11:00
Matt Joiner 4ffcd9f1ce cmd/torrentfs: Switch to tagflag and rename -torrentPath->-metainfoDir 2017-08-27 12:25:51 +10:00
Matt Joiner 401974dd8d dht.ServerConfig.StartingNodes is now a function
Additionally cmd/torrentfs uses the global bootstrap nodes for its DHT. Aids with https://github.com/anacrolix/torrent/issues/180
2017-08-25 16:28:27 +10:00
Matt Joiner 0bd5bcd1a5 cmd/torrentfs: Ensure unmounting occurs for some errors
Restructured so other errors can be handled better too.
2016-08-02 11:19:41 +10:00
ctn a3739fc47c torrentfs: fix panic when testPeer is not specified 2016-07-26 23:30:40 +03:00
Matt Joiner b714da8184 Torrent.AddPeers can't fail, so don't return an error 2016-05-12 12:26:09 +10:00
Matt Joiner 23ff66e300 cmd/...: Some package synopses 2015-04-06 23:04:18 +10:00
Matt Joiner 0fddc286e6 cmd/torrentfs: Tidy 2015-04-01 14:32:42 +11:00
Matt Joiner 8ba4a2e0f3 cmd/torrentfs: Check error creating client
This wouldn't have happened with exceptions ;)
2015-04-01 14:30:22 +11:00
Matt Joiner 3aa78763aa Use rogpeppe's sortimports to fix this goimports ordering madness 2015-03-26 17:18:08 +11:00
Matt Joiner 842a32ae0c Rewrite import paths for migration from Bitbucket 2015-03-20 16:37:44 +11:00
Matt Joiner ad6ac3f2cd More cleaning of public interface 2015-03-08 17:28:14 +11:00
Matt Joiner bc940ae2c6 Remove unused code 2015-02-25 01:40:27 +11:00
Matt Joiner 40593a741e Provide HTTP pprof via envpprof package 2015-01-29 14:51:23 +11:00
Matt Joiner 8a0be03eec cmd/torrentfs: Tidy up flags, switch to default download strategy 2014-12-01 14:31:52 -06:00
Matt Joiner 82ca11faa9 Destroy the torrent FS on exit signals so ongoing syscalls don't block the unmount 2014-12-01 14:30:50 -06:00
Matt Joiner ecf2639856 Add magnet-metainfo, tool to download magnet to torrent file 2014-09-25 18:05:52 +10:00
Matt Joiner 78ed2c74d0 Make NoUpload a client configuration option and use it for torrentfs 2014-08-25 06:00:29 +10:00
Matt Joiner 2b079e4a9d Got a nice working algorithm for responsive download strategy 2014-08-24 03:08:11 +10:00
Matt Joiner 60df4e100c Simplify dirwatch to scan the whole directory on changes 2014-08-22 17:31:03 +10:00
Matt Joiner 74f05db2ea Clean up imports 2014-08-21 21:08:56 +10:00
Matt Joiner 40fd1d647c Tidy up the torrent and DHT APIs 2014-08-21 18:07:06 +10:00
Matt Joiner 324fb94684 cmd/torrentfs: Missing listener on client 2014-07-24 13:45:49 +10:00
Matt Joiner 7cc22565ed Abstract the status HTTP server into package util 2014-07-23 01:54:58 +10:00
Matt Joiner 6158b1f6ec torrentfs: Match the active torrents to those found in the given directory 2014-07-23 01:54:11 +10:00
Matt Joiner c96293a111 Can now download from magnet links 2014-06-28 19:38:31 +10:00
Matt Joiner cf31465904 torrentfs: Write client status to HTTP port 2014-06-26 17:29:12 +10:00
Matt Joiner 809aabe531 cmd/torrentfs: Expose readahead bytes as a flag 2014-06-26 01:37:00 +10:00
Matt Joiner 110aa733a4 Make the readahead on ResponsiveDownloadStrategy customizable 2014-05-29 01:30:59 +10:00
Matt Joiner 04879b0002 Add Client.DownloadStrategy; fix priority of incomplete pieces 2014-05-21 17:40:54 +10:00
Matt Joiner 1aa1063863 Big visibility/doc clean-up, and extract mmap_span package 2014-04-09 02:36:05 +10:00
Matt Joiner f1bf5a46a1 Check for asynchronous mount error after serving 2014-04-09 01:18:55 +10:00
Matt Joiner fc653a307b Break up torrentfs main(), it's too large 2014-04-09 01:18:29 +10:00
Matt Joiner 998dba34b8 Handle repeat SIGINT/SIGTERMs
Need to determine if there's a way to better interrupt the FS or if we have no control over that.
2014-04-09 01:17:53 +10:00
Matt Joiner 1415c0d824 goimports decided to reorganise imports 2014-04-08 19:39:34 +10:00
Matt Joiner 9ee83455cf Various progress, particularly around the way data readiness is handled 2014-03-20 04:30:08 +11:00
Matt Joiner 2e81f914e7 Add a end-to-end test for torrentfs
Basic unchoking and uploading.
Accept incoming connections.
Break out torrentfs lib.
Fix and implement some protocol stuff.
2014-03-18 01:44:22 +11:00
Matt Joiner c7ca000f25 Unit test for connection address comparison to avoid adding bootstrap peers when already present 2013-11-05 00:10:16 +11:00
Matt Joiner fe5f8317d4 Reconnect to the torrentfs -testPeer at regular intervals if it's missing for any loaded torrents 2013-10-22 18:01:56 +11:00
Matt Joiner d039436f55 Significant progress and improvements
Piece state is broken up into several dimensions.
Implement keep-alive in connection writer.
Lazily hash pieces, only as requested.
Replace client actor mechanism with a mutex.
Fix runConnection/connectionLoop/handshake misnomers.
Fix broken reading from partially complete pieces.
2013-10-21 01:07:01 +11:00
Matt Joiner 03b1af07cd Always finish off partially downloaded pieces 2013-10-15 19:42:30 +11:00
Matt Joiner 0a5043ba69 Implement prioritizing of torrent data regions based on FS activity 2013-10-15 01:39:12 +11:00
Matt Joiner 5c0ff3ff5f Torrent client publishes data ready information; torrentfs supports file reads 2013-10-13 23:16:21 +11:00
Matt Joiner e1526b2863 Support browsing torrents in the filesystem 2013-10-07 06:00:35 +11:00