2
0
mirror of synced 2025-02-24 14:48:27 +00:00

318 Commits

Author SHA1 Message Date
Matt Joiner
69ffb9bc8d Fix build error 2017-09-17 00:44:09 +10:00
Matt Joiner
846da66103 Merge pull request #188 from boramalper/KnownSwarm
added the initial version of the (t *Torrent) KnownSwarm() function
2017-09-17 00:20:00 +10:00
Bora M. Alper
a66b0e83f3 added support for half-open peers in KnownSwarm() function 2017-09-16 11:48:16 +01:00
Matt Joiner
b3137b1ede Make type piece public 2017-09-15 19:35:16 +10:00
Matt Joiner
2aa20b3e22 Don't verify data at startup, add Torrent.Piece.VerifyData and Torrent.VerifyData for this purpose
This has the side effect of deflaking a lot of tests that race to verify data when a torrent is added.
2017-09-15 19:22:32 +10:00
Matt Joiner
b39df82fbc Include peer data with half open connections 2017-09-15 19:10:09 +10:00
Bora M. Alper
f87b732959 added the initial version of the (t *Torrent) KnownSwarm() function 2017-09-12 15:22:53 +01:00
Matt Joiner
bad6f07f5e Wrap writerCond in tickleWriter and be more selective about using it 2017-09-01 15:26:50 +10:00
Matt Joiner
13e79039f2 Generate requests, cancels and interest state in the connection writer 2017-08-31 23:48:52 +10:00
Matt Joiner
0388ec1eee Synchronize Torrent.Info 2017-08-29 15:16:53 +10:00
Matt Joiner
a8a1ea755d Remove unused functions 2017-08-26 13:23:04 +10:00
Matt Joiner
76c60ffa77 Try a state-delta function for updating request state
Also adds Torrent.networkingEnabled, though it isn't yet useful.
2017-08-18 01:51:02 +10:00
Matt Joiner
493916c279 Rename Torrent.connHasWantedPieces->connection.peerHasWantedPieces 2017-08-18 01:48:19 +10:00
Matt Joiner
824441efa0 Move logging inside client lock, for Torrent.String
Fixes #163
2017-07-01 16:01:38 +10:00
mlmhl
a3d231cb92 signal an event when torrent closed 2017-06-05 08:46:50 +08:00
Matt Joiner
296ef76c36 Tidy up the duplicate conn selection code 2017-05-26 13:00:28 +10:00
Matt Joiner
5bde8de95d perf.Timer.Stop renamed 2017-05-26 13:00:28 +10:00
luffyma(马林)
d8023a5e39 bug fix: race condition between outgoing connection and incoming connection 2017-05-10 18:31:19 +08:00
Joe Lanford
0d19c72ea5 Added peer count stats to TorrentStats struct 2017-04-22 23:29:10 -04:00
Matt Joiner
ba3e798b5f Fix a logging of metainfo.Hash 2017-02-24 21:56:23 +11:00
Matt Joiner
aa74d992d3 Don’t track the empty string, and ditch Torrent.announceList 2017-02-19 15:57:30 +11:00
Matt Joiner
350dd01ab9 Fix torrent status info hash hex 2017-02-16 20:10:32 +11:00
Matt Joiner
a959bdd0f8 Revert "Quick fix for missing MetaInfo.Announce everywhere with trackers"
This reverts commit b7a8d08bbf046d756e8d80744a188167e28a19de.
2017-02-15 18:40:30 +11:00
Matt Joiner
b7a8d08bbf Quick fix for missing MetaInfo.Announce everywhere with trackers 2017-02-13 22:28:42 +11:00
Matt Joiner
b868a6b9e2 dht.Server.Announce now takes [20]byte 2017-02-07 15:01:02 +11:00
Matt Joiner
79d800fe92 Trivial logging, comment, Stringer changes 2017-02-02 16:53:19 +11:00
Matt Joiner
55b6025f80 Log the storage TorrentImpl type 2017-01-04 18:15:49 +11:00
Matt Joiner
9cf09dba8a Remove unused funcs and idents 2017-01-01 11:03:02 +11:00
Matt Joiner
186b5073d2 Move method queuePieceCheck 2017-01-01 11:02:37 +11:00
Matt Joiner
d48c7c8e36 sort imports 2017-01-01 11:01:41 +11:00
Matt Joiner
b68d7cd08e dht/… moved to github.com/anacrolix/dht 2016-12-14 11:43:37 +11:00
Matt Joiner
f510c5cf22 Fix piece failures not clearing dirty chunks
I don’t like how complicated piece completion/hashing management is, but it works.
2016-12-06 16:10:10 +11:00
Matt Joiner
af7a0d3464 Add Torrent.Closed 2016-11-30 18:02:39 +11:00
Matt Joiner
1f2f037209 Fix logging of trust slice 2016-11-30 18:01:39 +11:00
Matt Joiner
f451a39b69 Fix harmless race conditions in Client.WriteStatus introduced way back 2016-11-27 14:26:45 +11:00
Matt Joiner
4a7fbf6170 Add peers received from received announce_peer DHT messages to the Client
Addresses #133
2016-11-27 00:05:19 +11:00
Matt Joiner
fdf75d59c8 Kick only the worst connection when a piece fails a check 2016-11-23 12:59:23 +11:00
Matt Joiner
57b679ffb0 Add a note about dropping connections that we sent a HAVE for incomplete pieces 2016-11-23 11:52:41 +11:00
Matt Joiner
4807c9e29a Make Torrent.conns a map
Can't remember if I've tried this before. But dropping arbitrary connections while iterating established conns will become much simpler.
2016-11-23 11:48:44 +11:00
Matt Joiner
ebbd555e7b Move a bunch of Client methods onto more appropriate types 2016-11-22 21:12:53 +11:00
Matt Joiner
90ca45dd2d Don't accept pieces with bad indexes
Fixes #132
2016-11-22 14:20:48 +11:00
Matt Joiner
df60a765a7 Torrent.unpendPieces: Only update unpended pieces
Updating all pieces at once is no longer faster. (There was an optimization for this a while ago that no longer exists.)
2016-10-31 19:05:08 +11:00
Matt Joiner
a8e96ce996 When Reader position changes only update piece priorities that may be affected
Seems to significantly reduce CPU load reading from torrents with huge piece counts.
2016-10-31 19:00:08 +11:00
Matt Joiner
95f73db7e4 Ditch the use of generic slices.HeapInterface for finding the worst "bad" connection
It's become a bottleneck. Implement it directly using heap.Interface.
2016-10-31 16:24:48 +11:00
Matt Joiner
1725133111 Move the implementation of connection.requestPiecePendingChunks out of Torrent 2016-10-25 14:58:17 +11:00
Matt Joiner
0e221dbdcd Optimize piece priorities when reader position changes
Gives a decent boost to throughput and reduces a lot of CPU when reading very quickly from Reader.
2016-10-23 16:33:26 +11:00
Matt Joiner
de761fb506 Do chunk pooling at Torrent instead of connection level 2016-10-05 15:57:00 +11:00
Matt Joiner
1e919dd6b1 Rework storage interfaces to make them simpler to implement
This allows lots of behaviour to be baked into the new Client, Torrent and Piece wrappers, rather than duplicating (badly) them in all the backend implementations.
2016-09-02 15:10:57 +10:00
Matt Joiner
8b17d2a63a Rework Reader position changes affecting piece priorities
Torrent.updatePiecePriorities is always followed by Torrent.piecePriorityChanged, so move it into the former function. Also drop the separate mutex for Reader, and add a missing Reader.posChanged call.
2016-08-30 15:41:26 +10:00
Matt Joiner
6c15a030d6 Improve comments 2016-08-30 15:07:59 +10:00