Matt Joiner
|
5856b91af0
|
Fix missinggo import
|
2016-03-30 19:11:55 +11:00 |
|
Matt Joiner
|
a5b54f21a1
|
Make opening a torrent in storage an explicit method
This is storage types where opening can fail, like mmap
|
2016-03-28 22:40:29 +11:00 |
|
Matt Joiner
|
775cf53809
|
Get mmap storage working
|
2016-03-28 21:57:04 +11:00 |
|
Matt Joiner
|
b97b50aca9
|
New storage interface
|
2016-03-28 20:38:30 +11:00 |
|
Matt Joiner
|
01bef851ed
|
Log connection errors when debug mode
|
2016-03-22 13:10:18 +11:00 |
|
Matt Joiner
|
bfd0b86441
|
Tidy up the peer have{,all,none},bitfield handling
|
2016-03-22 12:07:03 +11:00 |
|
Matt Joiner
|
e2ffcd008b
|
Add t.bytesLeftAnnounce
Now it's safe to remove tracker specific bytesLeft contract
|
2016-03-22 09:06:48 +11:00 |
|
Matt Joiner
|
782589e2b9
|
Client.WriteStatus: Raise the precision of the completion percentage
|
2016-03-22 08:33:08 +11:00 |
|
Matt Joiner
|
99109e636b
|
Use missinggo.AddrPort directly
|
2016-03-21 16:02:36 +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
|
b6cd456779
|
Use new missinggo.SplitHostMaybePort implementation
|
2016-03-15 21:32:47 +11:00 |
|
Matt Joiner
|
0d5502932d
|
Track accepted connections
|
2016-03-06 17:26:04 +11:00 |
|
Matt Joiner
|
f436c9c955
|
Use missinggo.Event to track Client closed
|
2016-03-05 19:36:21 +11:00 |
|
Matt Joiner
|
c175fab5a6
|
Fix a UTP Conn leak, on unencrypted followup dial attempts
I would guess that TCP ones were cleaned up by GC.
|
2016-03-02 23:27:46 +11:00 |
|
Matt Joiner
|
e33006a419
|
Ignore the corner case when a piece is dropped from storage
|
2016-02-26 22:12:13 +11:00 |
|
Matt Joiner
|
976510db60
|
Add DHT nodes from metainfo when added to Client
|
2016-02-24 21:56:50 +11:00 |
|
Matt Joiner
|
c371502cb3
|
Fix failure to request data from peers if it goes missing after being downloaded during the same session
The chunks remained marked dirty, even after the piece was marked complete. So when the piece was not complete, there was nothing to do.
|
2016-02-22 03:23:49 +11:00 |
|
Matt Joiner
|
99e9f41a33
|
Choke peers when we lose pieces they requested, and drop them if they request pieces we don't have
|
2016-02-21 17:22:55 +11:00 |
|
Matt Joiner
|
e20858a1e8
|
Move dataReadAt to torrent.readAt, and do the waitNoPendingWrites check there
|
2016-02-21 03:32:59 +11:00 |
|
Matt Joiner
|
dcdf85a474
|
Ditch the torrent stateMu for the client mutex
|
2016-02-21 03:31:50 +11:00 |
|
Matt Joiner
|
f76d86da4f
|
Use new error handling philosophy
|
2016-02-20 14:40:28 +11:00 |
|
Matt Joiner
|
b6a1a685cd
|
Remove pointless code
|
2016-02-17 17:20:43 +11:00 |
|
Matt Joiner
|
0f9f7ba01b
|
Add torrent.completedPieces bitmap
Reduce load on data.PieceComplete for torrents with lots of pieces, when reader position changes. Not sure of the improvement yet.
|
2016-02-17 00:00:55 +11:00 |
|
Matt Joiner
|
be6052912f
|
Improve error message when piece fails to be completed
Happens occasionally on some servers, can't work out why.
|
2016-02-16 23:35:19 +11:00 |
|
Matt Joiner
|
b514434581
|
Trigger piece request order changes on connections in a few spots
The client was requesting already obtained data in certain circumstances. This fixes it.
|
2016-02-11 17:57:57 +11:00 |
|
Matt Joiner
|
26fa2c4af8
|
Track posted message type counts
|
2016-02-10 00:45:47 +11:00 |
|
Matt Joiner
|
317783091d
|
When we're choked, just forget the requests, we don't need to delete them individually anymore
|
2016-02-08 21:39:15 +11:00 |
|
Matt Joiner
|
c674e0a65f
|
Add some missing calls to torrent.updatePiecePriority
|
2016-02-08 21:38:30 +11:00 |
|
Matt Joiner
|
24b8b13d2d
|
Fix pending of already completed pieces when pending ranges of pieces
|
2016-02-08 21:36:50 +11:00 |
|
Matt Joiner
|
096c870029
|
Fix overpublishing of piece state change during hashing
|
2016-02-07 21:56:59 +11:00 |
|
Matt Joiner
|
0c28a0f1b1
|
Use new tracker package interface
|
2016-02-07 18:49:35 +11:00 |
|
Matt Joiner
|
814daf6420
|
Publish changes in piece hashing state
|
2016-02-07 01:21:12 +11:00 |
|
Matt Joiner
|
2e3bc1090b
|
Speed up torrent.needData, and use new missinggo iterator interface
|
2016-02-07 01:20:40 +11:00 |
|
Matt Joiner
|
9b9a3fb20a
|
Fix the mess that is the connectionLoop after messages are decoded
|
2016-02-05 01:17:06 +11:00 |
|
Matt Joiner
|
3acdcc3b45
|
Tidy code
|
2016-02-04 15:04:46 +11:00 |
|
Matt Joiner
|
430f26f726
|
Recalculate all piece priorities more efficiently
|
2016-02-01 22:06:13 +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
|
eb838a894c
|
newTorrent doesn't need to return error
|
2016-02-01 07:05:43 +11:00 |
|
Matt Joiner
|
b90dacd324
|
Abstract the pendingPieces as a bitmap
|
2016-02-01 01:46:28 +11:00 |
|
Matt Joiner
|
84c34e2c37
|
TODO
|
2016-01-28 13:04:25 +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
|
90348f6a48
|
Add pending write helpers
|
2016-01-25 07:22:33 +11:00 |
|
Matt Joiner
|
9091c0518d
|
Use pendingPieces in needData
|
2016-01-24 15:21:31 +11:00 |
|
Matt Joiner
|
0ad4dda9fc
|
Move fillRequests and replenishConnRequests into connection.go
|
2016-01-24 15:21:17 +11:00 |
|
Matt Joiner
|
cafac95de4
|
Delete finished pieces from pending
|
2016-01-19 01:41:53 +11:00 |
|
Matt Joiner
|
2f40c48d37
|
Fix the download/prioritize piece functions
This involves adding a pendingPieces field to torrent.
|
2016-01-19 01:28:56 +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
|
89a6a20af6
|
Finally make Torrent.torrent private
A lot of code was using unintentionally exported stuff from the embedded *torrent in Torrent.
|
2016-01-17 00:14:15 +11:00 |
|