Matt Joiner
|
97f6cb496e
|
Avoid deadlock caused by receiving PORT and and DHT announce_peer at the same time
|
2016-11-28 00:03:10 +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
|
84d243afca
|
Rename connection.downloadedChunk -> receiveChunk
|
2016-11-22 14:18:09 +11:00 |
Matt Joiner
|
6f9bcff8b2
|
Make downloadedChunk a method of connection
|
2016-11-22 14:17:30 +11:00 |
Matt Joiner
|
0d9348c5d1
|
Move Client.downloadedChunk to connection.go
|
2016-11-22 14:16:18 +11:00 |
Matt Joiner
|
a49e133d8a
|
Comment on connection.updatePiecePriority
There's also Torrent.updatePiecePriority, and it's always confusing what the difference is.
|
2016-10-31 16:22:07 +11:00 |
Matt Joiner
|
1725133111
|
Move the implementation of connection.requestPiecePendingChunks out of Torrent
|
2016-10-25 14:58:17 +11:00 |
Matt Joiner
|
ed0dbba384
|
Make newConnection a method on Client
|
2016-10-10 16:55:56 +11:00 |
Matt Joiner
|
c34234bf34
|
Split connection.rw into separate Reader and Writer
This will make it easier to write hooks for Read and Write separately.
|
2016-10-10 16:30:51 +11:00 |
Matt Joiner
|
de761fb506
|
Do chunk pooling at Torrent instead of connection level
|
2016-10-05 15:57:00 +11:00 |
Ye Yin
|
d3963eedfd
|
Use sync.pool for decode buffer
|
2016-09-12 17:32:04 +10:00 |
Matt Joiner
|
2fc814b5eb
|
Move Client.connectionLoop to connection.mainReadLoop
|
2016-09-11 14:32:56 +10:00 |
Matt Joiner
|
e6d7b52638
|
Speed up connection.lastHelpful
Moving to reflection and interfaces has made it a bottleneck.
|
2016-08-14 22:39:23 +10:00 |
Matt Joiner
|
fbe0ded844
|
Add connection read stats
|
2016-07-12 16:42:04 +10:00 |
Matt Joiner
|
a4e140b939
|
New slices package
|
2016-07-12 16:40:14 +10:00 |
Matt Joiner
|
240abaf512
|
Add Torrent.SetMaxEstablishedConns
|
2016-07-06 00:42:16 +10:00 |
Matt Joiner
|
326b36545b
|
Prepare to allow max conns per torrent to be configured
|
2016-07-05 16:23:17 +10:00 |
Matt Joiner
|
12191dbfa3
|
Add counters for uploads
Fixes #71.
|
2016-07-05 15:52:33 +10:00 |
Matt Joiner
|
874bba43f8
|
Fix crash causing deadlock in connection writer when no messages have been posted yet
|
2016-06-27 15:45:15 +10:00 |
Matt Joiner
|
6cac882030
|
Reduce the impact of preferring earlier pieces
I think urgent pieces at the end of a torrent were getting fairly starved.
|
2016-05-28 22:04:33 +10:00 |
Matt Joiner
|
b55e67dc22
|
Ban IPs that contribute to failed piece checks
|
2016-05-24 02:09:47 +10:00 |
Matt Joiner
|
d2951c6c4b
|
Move requestPendingMetadata onto connection from Client
|
2016-05-16 18:46:38 +10:00 |
Matt Joiner
|
dcfee93f96
|
Fix race marshalling a bitfield after a Have has also been posted
|
2016-05-11 23:50:21 +10:00 |
Matt Joiner
|
69643860ea
|
Move some behaviour into Client.newConnection
|
2016-05-07 18:57:38 +10:00 |
Matt Joiner
|
0fd73396fd
|
missinggo.Event changed, connection.writeOptimizer changes
|
2016-05-07 18:56:44 +10:00 |
Matt Joiner
|
63c5ca1f01
|
Fix crash when peers have sent undersized bitfields and we get the torrent info
|
2016-04-30 04:08:02 +10:00 |
Seth Hoenig
|
9f4bf70e17
|
refactor struct identifiers to follow conventional go names
|
2016-04-18 23:11:11 -05:00 |
Matt Joiner
|
d3a1c79c79
|
Merge Torrent and torrent types
|
2016-04-03 18:40:43 +10:00 |
Matt Joiner
|
bfd0b86441
|
Tidy up the peer have{,all,none},bitfield handling
|
2016-03-22 12:07:03 +11:00 |
Matt Joiner
|
99fa0c26aa
|
Make peerGotPiece a method on connection
|
2016-03-21 14:19:51 +11:00 |
Matt Joiner
|
1508e02935
|
Move peerGotPiece
|
2016-03-21 14:17:15 +11:00 |
Matt Joiner
|
409d3695a6
|
Favour earlier pieces slightly, helps with in-order downloads
|
2016-03-19 17:40:18 +11:00 |
Matt Joiner
|
a6759b321a
|
Only assert we should be requesting a piece in debug mode
|
2016-02-15 17:47:04 +11:00 |
Matt Joiner
|
5b5ecb8f3b
|
Still update a connections piece priority even if the peer doesn't have the piece
|
2016-02-10 00:47:53 +11:00 |
Matt Joiner
|
26fa2c4af8
|
Track posted message type counts
|
2016-02-10 00:45:47 +11:00 |
Matt Joiner
|
3df7d61836
|
Reintroduce 64 outbound request cap
|
2016-02-08 16:09:12 +11:00 |
Matt Joiner
|
77d6e9e5cb
|
Use new missinggo iterator style, and speed up torrent.connHasWantedPieces()
|
2016-02-07 01:22:31 +11:00 |
Matt Joiner
|
19a304b8ea
|
connection.Close must be called under the Client lock
|
2016-02-02 00:45:26 +11:00 |
Matt Joiner
|
afa264e6c5
|
Reintroduce connection piece inclinations, and begin caching piece priorities
|
2016-02-01 21:11:41 +11:00 |
Matt Joiner
|
3ed628356b
|
Use missinggo.Event for connection closing event
|
2016-02-01 21:08:52 +11:00 |
Matt Joiner
|
b90dacd324
|
Abstract the pendingPieces as a bitmap
|
2016-02-01 01:46:28 +11:00 |
Matt Joiner
|
ae9bba2611
|
Fix downloading of unwanted chunks, and write out downloaded chunks using the connection loop goroutine
Doing the writes with the connection loop goroutine prevents memory use blowing out when chunks aren't written out quickly enough.
|
2016-01-28 05:54:48 +11:00 |
Matt Joiner
|
0ad4dda9fc
|
Move fillRequests and replenishConnRequests into connection.go
|
2016-01-24 15:21:17 +11:00 |
Matt Joiner
|
06445f2a1e
|
It's working and the tests are usually passing
I still need to handle "prefetch"-style downloading, and some functions haven't been committed to force this issue.
|
2016-01-18 18:35:14 +11:00 |
Matt Joiner
|
09050ff2c5
|
Some missing hunks that fix build
|
2016-01-04 22:56:36 +11:00 |