Matt Joiner
|
8f164ae956
|
Remove some of the magic ConfigDir stuff
This might become a helper. Torrent file cache still remains.
|
2016-04-04 14:04:48 +10:00 |
|
Matt Joiner
|
fa511154e4
|
Move Magnet and friends into metainfo package
|
2016-04-04 13:48:39 +10:00 |
|
Matt Joiner
|
b80bb6393a
|
Use metainfo.Hash for piece and info hashes
|
2016-04-04 13:01:31 +10:00 |
|
Matt Joiner
|
00f33c848e
|
Adding a torrent without info after waitAccept has blocked wouldn't trigger further accepts immediately
|
2016-04-03 22:06:25 +10:00 |
|
Matt Joiner
|
22ad654420
|
Fix deadlocks in WriteStatus due to incomplete renaming
|
2016-04-03 20:54:14 +10:00 |
|
Matt Joiner
|
d3a1c79c79
|
Merge Torrent and torrent types
|
2016-04-03 18:40:43 +10:00 |
|
Matt Joiner
|
08830b97a1
|
Make everything on type torrent private
|
2016-04-03 16:50:53 +10:00 |
|
Matt Joiner
|
bc8fb2a165
|
If we fail to write to a piece, check its completion state
|
2016-04-03 16:36:57 +10:00 |
|
Matt Joiner
|
44f5bb73c5
|
Improve log messages
|
2016-04-03 16:36:24 +10:00 |
|
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 |
|