Matt Joiner
99a06e3f50
Move IP blocklist loading into iplist package
2015-06-22 19:44:59 +10:00
Matt Joiner
b2b290a589
Small tweak to readahead, and fix the tests
2015-06-16 17:14:15 +10:00
Matt Joiner
ced5733c88
Improve uploading/seeding
2015-06-16 16:57:47 +10:00
Matt Joiner
764f5db512
Make readahead always at least 2 blocks.
2015-06-16 16:54:12 +10:00
Matt Joiner
d63c5e5b98
Don't try to connect again without encryption, if encryption is disabled
2015-06-08 18:16:01 +10:00
Matt Joiner
5014b62e17
Reduce log noise due to uTP connection timeouts
2015-06-03 22:44:03 +10:00
Matt Joiner
005ca8124a
Fix rare single-torrent stall due to obsolete ceaseNetworking call
...
Only occurred if you have a data backend that can drop completed pieces, and it happened that you wanted to redownload data that had been dropped after completely downloading the torrent in the past.
2015-06-03 22:43:40 +10:00
Matt Joiner
7e8ee950bc
Docs and comments
2015-06-03 13:30:55 +10:00
Matt Joiner
a2df9f8b01
Miscellaneous changes
2015-06-03 00:03:43 +10:00
Matt Joiner
5de6abd6a7
Fix race to set IPBlocklist on DHT before it bootstraps and serves
2015-06-02 23:58:49 +10:00
Matt Joiner
5b52769523
Changes to the way piece prioritization affects the piece
2015-06-01 18:23:35 +10:00
Matt Joiner
21fb4933fc
Change the way piece state is exposed to give more detail
2015-06-01 18:22:12 +10:00
Matt Joiner
bc4aa06c91
Comments
2015-06-01 18:17:14 +10:00
Matt Joiner
7f9d6eed78
Relax pedantic listen addr matching
...
Fixes #15 .
2015-05-20 18:14:42 +10:00
Matt Joiner
085dbaa8ff
Include reason for panic on different listener addresses
2015-05-20 15:45:58 +10:00
Matt Joiner
1cf591dc3d
Switch to using a slice for tracking pending chunks. Saves massive amounts of memory.
2015-05-16 10:51:48 +10:00
Matt Joiner
0d13293d71
Support seeding
2015-05-15 08:39:53 +10:00
Matt Joiner
5eb6b5286e
Rare panic: a piece is requested that shouldn't have been
2015-05-09 11:52:52 +10:00
Matt Joiner
ca74d8ed33
Made Torrent.GotInfo a function, to avoid use of zero-initialized channel
2015-04-30 00:30:19 +10:00
Matt Joiner
0ec0302d1c
Publicly expose Torrent.GotInfo
2015-04-28 15:24:17 +10:00
Matt Joiner
526d9d738e
Rewrite imports to local bencode and metainfo
2015-04-27 14:55:01 +10:00
Matt Joiner
cc6a52fee0
Remove all the old intermediate config fields from Client
2015-04-27 14:05:27 +10:00
Matt Joiner
b37f6d6f96
Add the option to disable encryption
2015-04-20 17:30:22 +10:00
Matt Joiner
28b299e7c8
Rework the Torrent Reader interface, to allow reader options, and add "responsive" as one such option
...
Had several weeks of testing. Removes a lot of the "helper" reading methods, but this was necessary to allow per-Torrent reading options.
2015-04-14 23:59:41 +10:00
Matt Joiner
97c235440c
If IP blocklists are enabled, block anything that isn't IPv4
...
I know of no public IPv6 blocklists.
2015-04-01 17:36:51 +11:00
Matt Joiner
6b81d57ca2
dht: Clean-up interface, add loads of documentation
2015-04-01 17:29:55 +11:00
Matt Joiner
6c3f8ea26c
Remove unnecessary reflection
2015-04-01 14:34:57 +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
c202e2289c
Opinionated torrent filter doesn't belong in this package
2015-03-30 23:11:20 +11:00
Matt Joiner
1ce84f664e
Fix a few minor data races
2015-03-30 23:10:37 +11:00
Matt Joiner
5ecde3a874
Show number of torrents in the client status
2015-03-28 02:51:16 +11:00
Matt Joiner
6582cffe06
AddTorrentSpec now merges in new information an existing torrent didn't have
2015-03-28 02:50:55 +11:00
Matt Joiner
90b27618ac
The signedness on several tracker.AnnounceRequest fields now matters
...
Sending negative ports and lefts through to HTTP trackers was making them mad.
2015-03-27 17:22:00 +11:00
Matt Joiner
8ae09e2fa8
Only the first tracker was being tried
...
Must have lost this in the client tracker clean-up a while back.
2015-03-27 17:20:02 +11:00
Matt Joiner
64f833f3f0
cmd/torrent-magnet: Converts a torrent from stdin to a magnet link
2015-03-27 17:16:50 +11:00
Matt Joiner
5049f5d375
More unnecessary log shushing
2015-03-27 15:37:58 +11:00
Matt Joiner
60d8ea75a2
Prevent bad metadata_size in extended handshakes from stalling completion of metadata
...
Occasionally bad peers send ridiculous or incorrect metadata_size in their handshakes. If the first acceptable size is wrong, and too small, we'll keep failing metadata completion. If it's too large, honest peers will never send us the pieces we're asking for and we'll never complete the metadata. Now we just adjust the expected metadata size, and keep retrying until we finish. Additionally, we can now request metadata after sending initial messages.
2015-03-27 15:36:59 +11:00
Matt Joiner
5f7ad4c769
Merge all the tracker packages, why would anyone want them separately?
2015-03-27 15:12:15 +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
d97b487229
cmd/torrent: Report progress
...
Fixes #6
2015-03-25 17:32:42 +11:00
Matt Joiner
c471613cd0
Suppress some noisy errors that aren't interesting to the average user
2015-03-25 17:28:34 +11:00
Matt Joiner
6da805d1b1
Move ut_pex back into the "m" map
2015-03-25 15:49:27 +11:00
Matt Joiner
19a50712dc
Add the ability to disable PEX
...
Fixes #3
2015-03-25 15:42:14 +11:00
Peter Borzov
f574117e30
Fix typos
2015-03-21 09:11:45 -04:00
Matt Joiner
67f90ed886
More public interface tidying
2015-03-20 23:52:53 +11:00
Matt Joiner
ec25ef417e
bitbucket.org/anacrolix/sync moved to github
2015-03-20 16:46:39 +11:00
Matt Joiner
842a32ae0c
Rewrite import paths for migration from Bitbucket
2015-03-20 16:37:44 +11:00
Matt Joiner
0c63952353
More cleaning up of public interface
2015-03-20 10:52:01 +11:00
Matt Joiner
a646308a12
Update the example
2015-03-20 10:51:06 +11:00
Matt Joiner
a07eb8d720
Misc, some encryption related
2015-03-18 18:37:26 +11:00
Matt Joiner
f90e6e7c2c
Don't accept unless connections are wanted
2015-03-18 18:36:27 +11:00
Matt Joiner
c413ed7963
Comments in banned torrent list
2015-03-18 18:35:52 +11:00
Matt Joiner
a451bc7e6d
Handle data going missing
2015-03-18 18:35:22 +11:00
Matt Joiner
29238ff23f
Change the interface to add torrents to a Client
2015-03-18 18:32:31 +11:00
Matt Joiner
58b2b9bec7
Avoid dopplegangers, foreign address that have our client ID
2015-03-18 18:29:51 +11:00
Matt Joiner
a7dddd9be6
Rewrite handshaking and connection management
2015-03-18 18:28:13 +11:00
Matt Joiner
fa025bdbee
Disable AllowedFast
2015-03-18 18:21:00 +11:00
Matt Joiner
203da0aab0
Tidy up extension bytes handling; don't close conn from handshake writer; force protocol encryption for now
2015-03-13 06:21:13 +11:00
Matt Joiner
e85b7e228b
Add support for Fast Extension
2015-03-12 20:06:23 +11:00
Matt Joiner
339c650085
Count peers obtained by tracker
2015-03-12 20:04:44 +11:00
Matt Joiner
26b21d1fcb
Apply IP blocklist to trackers
2015-03-11 02:41:41 +11:00
Matt Joiner
e6fbde0dc6
Rework piece completion
2015-03-11 02:41:21 +11:00
Matt Joiner
914bc12bb6
Harmless improvements
2015-03-11 02:39:01 +11:00
Matt Joiner
36c6283a94
Fix a status line going to stdout
2015-03-09 17:35:51 +11:00
Matt Joiner
ad6ac3f2cd
More cleaning of public interface
2015-03-08 17:28:14 +11:00
Matt Joiner
3e753bb8ad
Change up the data storage interfaces a bit
2015-03-07 17:11:45 +11:00
Matt Joiner
cad611bbcf
Since IPv6 blocklists aren't prevalent, default to using IPv4 in client for now
2015-03-07 17:11:02 +11:00
Matt Joiner
1c5bd1855a
Improvements to P2P blocklist scanning errors
2015-03-07 17:09:18 +11:00
Matt Joiner
e4dec03a32
Change the way readahead pieces are calculated
2015-03-04 13:07:11 +11:00
Matt Joiner
779f4d3b97
Implement Handle.ReadAt
2015-03-04 13:06:33 +11:00
Matt Joiner
4eb70e0673
Support opening handles to Torrent and File
2015-03-01 14:32:54 +11:00
Matt Joiner
a2d69b4931
Make blob data stateful
2015-02-27 12:45:55 +11:00
Matt Joiner
bd6d72fa5f
Files.Path and .FileInfo change
2015-02-27 01:46:40 +11:00
Matt Joiner
315c703456
Rename TorrentData->Data
2015-02-27 01:43:37 +11:00
Matt Joiner
f588522b66
Client.Torrent(InfoHash)
2015-02-26 16:10:55 +11:00
Matt Joiner
3f335cabfc
Implement File.ReadAt
2015-02-26 16:10:38 +11:00
Matt Joiner
9ffb9b0b88
Scale readahead pieces a bit
2015-02-26 16:10:15 +11:00
Matt Joiner
c75dbccea3
Hide a whole bunch of functions seen via torrent
2015-02-25 15:42:47 +11:00
Matt Joiner
80ce2c3188
Set torrentDataOpener from config
2015-02-25 15:41:13 +11:00
Matt Joiner
295b71c09b
Not listening!
2015-02-25 14:52:19 +11:00
Matt Joiner
48dc85bfd3
Return no Files if Torrent Info isn't available
2015-02-25 14:51:56 +11:00
Matt Joiner
0eb418360b
Allow configuring Client torrent data opener, config dir, disabling metainfo cache, and prune with a timer instead of goroutine
2015-02-25 14:48:39 +11:00
Matt Joiner
61adeee308
Make IPBlockList accessible from Client
2015-02-25 11:25:22 +11:00
Matt Joiner
bc940ae2c6
Remove unused code
2015-02-25 01:40:27 +11:00
Matt Joiner
9fb7934d0c
Comments
2015-02-25 01:34:57 +11:00
Matt Joiner
92e0679b04
Change piece prioritization
2015-02-21 15:02:31 +11:00
Matt Joiner
2025daa77c
Improve announcer routines
2015-02-21 15:02:06 +11:00
Matt Joiner
e067bff5b3
Comments
2015-02-21 14:58:28 +11:00
Matt Joiner
c3457b2f54
Change status output
2015-02-21 14:57:37 +11:00
Matt Joiner
763f238492
Tweak handshaking and peer water marks
2015-02-21 14:56:17 +11:00
Matt Joiner
94c01fb565
defer Unlock
2015-02-10 00:21:50 +11:00
Matt Joiner
de71611752
Add File.Progress
2015-02-10 00:18:59 +11:00
Matt Joiner
467d2bdf8d
Handle SetDeadline failure for handshake
2015-02-10 00:17:59 +11:00
Matt Joiner
3c9fdba345
uTP raw Socket use is now via .PacketConn
2015-02-10 00:17:04 +11:00
Matt Joiner
a1010d7404
Misc tidying
2015-02-10 00:16:01 +11:00
Matt Joiner
029d6939f8
Hide some methods that shouldn't be public
2015-02-10 00:12:29 +11:00
Matt Joiner
4ca6b4e2c7
Fix some stuff Rob Clifford broke through stress testing
2015-02-06 14:54:59 +11:00
Matt Joiner
8e95c1a0ac
Log addr when dials fail for unexpected reason
2015-01-31 01:54:45 +11:00
Matt Joiner
4cf28bf0e9
Deduplicate iplist range descriptions, saves another 2.8MB heap
2015-01-31 01:53:42 +11:00
Matt Joiner
c6cc38c9cf
iplist: Make range descriptions copies of substring, saves 8MB heap on level1 blocklist!
2015-01-31 01:53:01 +11:00
Matt Joiner
336495c25b
connectionPruner should terminate when the torrent stops
2015-01-29 14:21:05 +11:00
Matt Joiner
b3380f1cee
dht: Provide Announce, that combines get_peers and announce_peer
2015-01-29 14:20:21 +11:00
Matt Joiner
04e5880d09
Comments
2015-01-29 14:17:27 +11:00
Matt Joiner
83b9135554
Expose Files from Torrent
2015-01-28 01:12:36 +11:00
Matt Joiner
9995470fe6
Improve returned error
2015-01-22 00:42:13 +11:00
Matt Joiner
78caa4533b
Scale readahead with unchoked connections
2015-01-11 00:16:57 +11:00
Matt Joiner
ce3fd07fde
Set Client.utpSock
2015-01-11 00:16:19 +11:00
Matt Joiner
39b9eb1d37
Switch to my own UTP library
2015-01-08 23:26:39 +11:00
Matt Joiner
0810d5a275
Helper method on Client's Torrent that tells where the metainfo file would be stored
2014-12-30 23:58:38 +11:00
Matt Joiner
7e6b3b24e3
Catch a few possible connection leaks
2014-12-26 17:18:36 +11:00
Matt Joiner
cc5dea6a39
Reenable UTP despite it being broken, some binaries now have flags to disable it
2014-12-26 17:18:15 +11:00
Matt Joiner
9b0e387ac9
Quieten tracker announce logging
2014-12-26 17:17:49 +11:00
Matt Joiner
3a221dc57d
Rip out the pieces by bytes left and responsive download strategy stuff
2014-12-26 17:15:17 +11:00
Matt Joiner
c817776fda
Don't include active handshakes in the half open limit
...
Large numbers of incoming connections choke initiation of outbound conns.
2014-12-23 15:20:28 +11:00
Matt Joiner
e406d74ff0
Don't guess cap for some torrent fields, need to minimize memory use
2014-12-20 13:00:21 +11:00
Matt Joiner
262f045fd1
Fixes due to not pending chunk specs prematurely
2014-12-09 00:22:05 -06:00
Matt Joiner
48582796ed
Add pending peers high water mark to stop excessively long running DHT queries
2014-12-08 21:58:49 -06:00
Matt Joiner
4be7b11a3b
Use bitbucket.org/anacrolix/sync
2014-12-08 17:00:38 -06:00
Matt Joiner
d9793a78ba
Improve announce logging
2014-12-08 16:57:42 -06:00
Matt Joiner
1e3a00979d
Fix UTP still listening despite attempting to temporarily disable it
2014-12-06 21:19:56 -06:00
Matt Joiner
51306ccbb2
Expose various DHT state
2014-12-06 21:19:02 -06:00
Matt Joiner
d58ca65a9c
pieceordering: Rename RemovePiece->DeletePiece and complete tests
...
Note that tests currently fail due to bug in skiplist?
2014-12-05 00:58:04 -06:00
Matt Joiner
65ccc9c75e
Forgot to commit this part of fixing disable TCP dialing out
2014-12-05 00:56:51 -06:00
Matt Joiner
b6ae4caa6a
Set priorities ahead of the current read position
2014-12-05 00:56:28 -06:00
Matt Joiner
f050bc02f7
Disabling TCP didn't include dialing out, also always disable UTP until the package is fixed
2014-12-05 00:53:26 -06:00
Matt Joiner
7b46b41011
Switch back to using the UTP redesign
2014-12-03 19:58:02 -06:00
Matt Joiner
91c2c1f5c7
Piece priorities, torrent read interface and many fixes
2014-12-03 01:07:50 -06:00
Matt Joiner
98400ab9c7
Harmless shortcut initing peer pieces when we have the torrent info
2014-12-02 18:43:05 -06:00
Matt Joiner
a87e753572
When metadata arrives, we also need to init request ordering
2014-12-02 18:42:22 -06:00
Matt Joiner
9fac3e8f33
Remove commented out code
2014-12-02 18:23:07 -06:00
Matt Joiner
7228e40c95
Add piece ordering per-connection piece request priority
2014-12-02 18:22:38 -06:00
Matt Joiner
c75f79b097
Speed up tests, allow -short for some UDP tracker stuff
2014-12-02 14:23:01 -06:00
Matt Joiner
e7dec6057b
Backed out changeset: 603a76a6bdb0
2014-12-02 00:11:39 -06:00
Matt Joiner
351bc3e504
Update to use utp package redesign
2014-12-01 23:35:39 -06:00
Matt Joiner
d599f85391
Ensure that when a cached torrent is used, the info hash is correct
2014-12-01 23:32:40 -06:00
Matt Joiner
0f1342d7d1
Don't clobber torrent name with empty magnet display name
2014-12-01 19:12:03 -06:00
Matt Joiner
0a91eef496
For now always read ahead 4 extra blocks
2014-12-01 17:02:31 -06:00
Matt Joiner
e4f1f5d55e
Rework torrent adding
2014-12-01 16:40:03 -06:00
Matt Joiner
362dfecbf2
Support banning torrents
2014-12-01 16:39:09 -06:00
Matt Joiner
fb2b626175
Don't send constructed MetaInfo down a channel when it's available, build it on demand
2014-12-01 16:37:40 -06:00
Matt Joiner
709650c0bd
Sleep between announces in case there are no trackers
2014-12-01 12:43:34 -06:00
Matt Joiner
75cde79d65
Improve the interface with client and download strategies
2014-12-01 03:37:33 -06:00
Matt Joiner
78ef36066d
Give each connection its own piece priority order
2014-12-01 03:36:25 -06:00
Matt Joiner
0a71fe4bee
Fast start torrent tracker announces
2014-12-01 03:33:52 -06:00
Matt Joiner
76f83e60b2
Misc good fixes
2014-12-01 03:32:17 -06:00
Matt Joiner
54ea32ddc4
Block IPv6 for now
2014-12-01 03:27:11 -06:00
Matt Joiner
336715874f
Fix race reordering tracker tier
2014-11-29 20:33:45 -06:00
Matt Joiner
d68664d6c8
Some changes to block list handling
2014-11-29 20:33:17 -06:00
Matt Joiner
0eb36e76ef
A few tweaks
2014-11-28 19:42:18 -06:00
Matt Joiner
17a8b8aa17
Make use of IP blocklist and change the client lock to RWMutex
...
The blocklist is loaded through from the file at TORRENT_BLOCKLIST_FILE or
$HOME/.config/torrent/blocklist.
2014-11-28 19:41:53 -06:00
Matt Joiner
50e3db173f
Allow DHT server config to be passed through when creating a new client
2014-11-28 12:13:08 -06:00
Matt Joiner
c10fbb2022
Extra time between tracker announces
2014-11-28 08:39:13 -06:00
Matt Joiner
1527321c71
Wasn't actually copying the tiers
...
http://stackoverflow.com/questions/27055626/concisely-deep-copy-a-slice
2014-11-21 00:54:19 -06:00
Matt Joiner
97074dc060
Improve tracker connect error log message
2014-11-21 00:32:39 -06:00
Matt Joiner
4725a70875
Shuffle tracker tiers after adding trackers
2014-11-21 00:32:27 -06:00
Matt Joiner
1a401e82f5
Merge trackers by magnet links if the torrent is already present
2014-11-21 00:10:52 -06:00
Matt Joiner
06aff91f8c
Don't open new connections or announce when new connections aren't wanted
2014-11-21 00:09:55 -06:00
Matt Joiner
1942d5b73b
Fix default torrent client address, and leaked resources
2014-11-21 00:07:04 -06:00
Matt Joiner
c57ea76b88
Support disabling UTP
2014-11-19 20:02:20 -06:00
Matt Joiner
dd240b66c4
Simple connection pruner
2014-11-18 22:03:21 -06:00
Matt Joiner
eacc624115
Expose a Torrent "handle", that implements ReaderAt
2014-11-18 21:58:36 -06:00
Matt Joiner
c8327a8fe2
Log bad metadata packets instead of crashing
2014-11-18 21:57:27 -06:00
Matt Joiner
3dd43c6099
buffer WriteStatus and always write torrents in the same order
2014-11-18 21:56:50 -06:00
Matt Joiner
358f089515
Set a minimum dial timeout
2014-11-18 21:53:00 -06:00
Matt Joiner
1057ac8055
Adding a duplicate magnet returns the existing torrent
2014-11-18 14:34:13 -06:00
Matt Joiner
482dde8e3f
Fix race condition calculating reduced dial timeout
2014-11-18 14:33:07 -06:00
Matt Joiner
c63d36c1b6
Improve client status write-out
2014-11-18 14:32:51 -06:00
Matt Joiner
abfa44d6e4
Count accepted connections
2014-11-18 14:31:47 -06:00
Matt Joiner
541f11aed4
Ensure the parallel dial invariant
2014-11-17 18:04:33 -06:00
Matt Joiner
8cae78cbf1
Reduce dial timeouts when there are lots of peers in the backlog
2014-11-17 18:04:09 -06:00
Matt Joiner
6d05994c2c
dht: Include the sender of peers in the peer stream
2014-11-17 17:47:36 -06:00
Matt Joiner
727aac204f
Expvar successful and unsuccessful dials
2014-11-17 01:44:06 -06:00
Matt Joiner
8d96195b0c
Connect to peers using both UTP and TCP; Share UTP port with DHT
2014-11-16 23:27:01 -06:00
Matt Joiner
ad7cf646c8
Open new connections when a connection is dropped
2014-11-16 21:37:34 -06:00
Matt Joiner
34a47a100e
Add util AddrIP and AddrPort functions
2014-11-16 21:20:49 -06:00
Matt Joiner
77e064a0f5
Allow the client ID to be set in the config
2014-11-16 13:54:43 -06:00
Matt Joiner
c1721b61ef
Prevent clients from connecting to other clients with the same ID
2014-11-16 13:54:00 -06:00
Matt Joiner
3489a60154
Fix broken commit
2014-11-16 13:51:59 -06:00
Matt Joiner
4fead22cd2
Use more generic net error type to detect timeouts
2014-11-16 13:31:11 -06:00
Matt Joiner
e37d369864
Move half-open tracking into per-torrent
2014-11-16 13:30:44 -06:00
Matt Joiner
963918ac90
Add UTP support, disable TCP for now. DHT moves to another port
2014-11-16 13:29:31 -06:00
Matt Joiner
eeae2d3285
Actually announce to DHT, don't just get peers
2014-11-16 13:18:08 -06:00
Matt Joiner
86de81fba8
Tidy up address handling
2014-11-16 13:16:26 -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
6942eed15f
Lazily hash pieces where possible
2014-09-15 03:25:53 +10:00
Matt Joiner
7eaef48f9e
Fix crash when piece hash completes for dropped torrent
2014-09-14 04:07:05 +10:00
Matt Joiner
1cfd6ecdcb
Improvements arising from attempting to delay piece hashing until necessary
2014-09-14 04:03:23 +10:00
Matt Joiner
979192cbfd
Treat PORT messages with port of 0 to mean on the remote port
2014-09-14 03:59:31 +10:00
Matt Joiner
bea5c1a502
Missed this dataRead call in an earlier commit
2014-09-14 03:58:13 +10:00
Matt Joiner
dc2b622be1
Track failed piece hashes
2014-09-14 03:57:51 +10:00
Matt Joiner
97ae59dfaf
Improve the data waiter system
2014-09-14 03:50:15 +10:00
Matt Joiner
4bcfdc8fc9
Suppress metadata extension message errors from Xunlei client
2014-09-14 03:47:47 +10:00
Matt Joiner
f2bb5b1c56
Increase peer connection buffer size from default (4096) to 20KiB
...
This reduces syscall overhead which becoming noticeable.
2014-09-14 03:47:06 +10:00
Matt Joiner
7fccb77ebe
Treat ECONNRESET and i/o timeout from peers as EOF
2014-09-14 03:45:38 +10:00
Matt Joiner
c0d7b2fbf2
Rename and improve downloaded chunk counters and status per connection
2014-09-11 20:30:13 +10:00
Matt Joiner
2b360b641c
Don't log extension message parsing errors from -SD0100-
2014-09-11 14:20:47 +10:00
Matt Joiner
689fe85134
Disable TCP linger for peer connections
2014-08-28 10:06:57 +10:00
Matt Joiner
ed08bd2837
Introduce socket/torrent limits, work in progress
2014-08-28 10:06:36 +10:00
Matt Joiner
d5a2bc67f7
Misc tweaks
2014-08-28 10:05:41 +10:00
Matt Joiner
e09e21fab2
Fixes to closing torrents and connections
2014-08-28 10:04:44 +10:00
Matt Joiner
7e19c9c12b
Forgot to commit duplicateConnsAvoided expvar
2014-08-28 09:45:58 +10:00
Matt Joiner
e79f1bcbf7
Keep track of ongoing handshakes and add timeouts to connection sockets
2014-08-28 09:45:20 +10:00
Matt Joiner
c33b889b5e
Cease networking on a torrent if it's finished and we're not going to seed
2014-08-28 09:39:27 +10:00
Matt Joiner
2765ad04ca
Avoid connecting to the same peer twice by address
2014-08-28 09:35:13 +10:00
Matt Joiner
aeee372506
Add useful new metrics to connection
2014-08-28 09:32:49 +10:00
Matt Joiner
035edbaf85
Rename connection.closed->closing
2014-08-28 09:31:05 +10:00
Matt Joiner
2d9c22ae1e
Misc trivial improvements
2014-08-25 22:14:10 +10:00
Matt Joiner
891745360e
Add a date to the metadata packet client version string
2014-08-25 22:12:50 +10:00
Matt Joiner
c9bc892789
Implement the DHT Port message
2014-08-25 22:12:16 +10:00
Matt Joiner
6aa459dc0d
Stop announcing on DHT if a torrent is removed
2014-08-25 06:01:05 +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
c8f335182f
Improve incomplete piece ordering, responsive download strategy
2014-08-25 05:31:34 +10:00
Matt Joiner
8f89d7a07e
Use CopyExact when extracting handshake read
2014-08-25 05:25:52 +10:00
Matt Joiner
0b01c597c0
Let client.DataWaiter have its own mutex
2014-08-25 05:24:18 +10:00
Matt Joiner
8db966cd42
Make use of levelmu to prioritize client.TorrentReadAt
2014-08-25 05:23:28 +10:00
Matt Joiner
8f065e473f
Add some checks to TorrentReadAt for 0 byte reads
2014-08-24 06:54:14 +10:00
Matt Joiner
b72b05f495
Count posted cancels
2014-08-24 03:10:47 +10:00
Matt Joiner
2b079e4a9d
Got a nice working algorithm for responsive download strategy
2014-08-24 03:08:11 +10:00
Matt Joiner
c1896c4d46
Count unexpected cancels received
2014-08-22 17:47:44 +10:00
Matt Joiner
95d5d4a30c
Improve status and logging
2014-08-22 17:33:17 +10:00
Matt Joiner
edf0a13128
Export some log events via expvar instead
2014-08-22 01:33:13 +10:00
Matt Joiner
702665f9f3
Remove torrent from download strategy when dropped
2014-08-22 01:25:18 +10:00
Matt Joiner
e8f184a7bf
Store pending peers in a dict to prevent duplicates
2014-08-21 21:10:19 +10:00
Matt Joiner
5c1492bffe
Add CopyExact util function
2014-08-21 18:24:19 +10:00
Matt Joiner
52fc7c7205
Improve the internal connection and handshake logic
2014-08-21 18:12:49 +10:00
Matt Joiner
40fd1d647c
Tidy up the torrent and DHT APIs
2014-08-21 18:07:06 +10:00
Matt Joiner
466c85a1b2
Triage upload contention due to lack of uploader routine
2014-07-24 13:46:49 +10:00
Matt Joiner
3a852886ad
Triage announcer leak on dropped torrents
2014-07-24 13:46:14 +10:00
Matt Joiner
9895205e19
Comments and logging
2014-07-24 13:43:45 +10:00
Matt Joiner
ec1c4b0cf8
Improve client status
2014-07-24 13:43:11 +10:00
Matt Joiner
ef7c4f4120
Move priority management entirely into the download strategies
2014-07-24 13:42:31 +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
6d52918540
Fix missed unlock adding peers to non-existent torrent
2014-07-23 01:51:30 +10:00
Matt Joiner
3ae290fef6
Fix crash printing client status if DHT isn't enabled
2014-07-23 01:50:49 +10:00
Matt Joiner
244c70bc83
Implement "yourip" field of extension protocol handshake
2014-07-22 21:45:12 +10:00
Matt Joiner
7f6987b2a4
Error in connection.writer goroutine wasn't killing the connection
2014-07-18 02:37:33 +10:00
Matt Joiner
37eece626b
TODO
2014-07-17 16:04:56 +10:00
Matt Joiner
b467f15bae
Fix goroutine leak for connection.writer
2014-07-17 16:02:30 +10:00
Matt Joiner
a258b9ab21
Squash some more debug messages, fix some other error handling
2014-07-17 16:01:48 +10:00
Matt Joiner
b159968081
Missing newline between torrents in client status
2014-07-17 15:58:33 +10:00
Matt Joiner
5cda3affb4
Memory leak because queued peer requests aren't treated yet
2014-07-16 17:08:47 +10:00
Matt Joiner
583d5c266a
Squash some unhelpful log messages now that stuff is available in status
2014-07-16 17:08:25 +10:00
Matt Joiner
8910eb660d
Add more information I've needed to the status page
2014-07-16 17:07:28 +10:00
Matt Joiner
0d27ae7fd1
Make the discovery source for a connection more descriptive
2014-07-16 17:06:18 +10:00
Matt Joiner
9e8a72ff1d
Invalidating metadata would cause a crash when metadata pieces kept arriving
2014-07-14 23:12:52 +10:00
Matt Joiner
61b87222d4
Client would attempt to download if unchoked before the metadata is available
2014-07-14 23:12:15 +10:00
Matt Joiner
28afa748e7
API changes in github.com/anacrolix/libtorgo
2014-07-13 17:37:12 +10:00
Matt Joiner
581a3d9325
Add DHT support to cmd/torrent
2014-07-11 19:30:20 +10:00
Matt Joiner
e947ce2ee4
Run go vet on everything
2014-07-10 02:59:37 +10:00
Matt Joiner
a88f856468
Fix incorrect log call
...
At least vet catches it...
2014-07-10 02:53:46 +10:00