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

488 Commits

Author SHA1 Message Date
Matt Joiner
456a2f7c5d Expose more callbacks and Request and ChunkSpec 2021-01-28 14:23:22 +11:00
Matt Joiner
b5215ea7e8 Expose Peer.Network to replace Peer.RemoteAddr.Network 2021-01-25 15:49:48 +11:00
Matt Joiner
955e337b78 Generate a RemoteAddr for webseed Peers 2021-01-25 15:49:48 +11:00
Matt Joiner
27108bd2f7 Export Peer 2021-01-25 15:49:48 +11:00
ucwong
52bb7f7a39 connection drop log debug level 2021-01-07 00:21:59 +11:00
Matt Joiner
ded6c19edb Add the DropMutuallyCompletePeers ClientConfig field 2021-01-05 16:58:45 +11:00
Matt Joiner
d713aaf280 Rework active announce limiter to reduce contention 2020-12-15 15:29:45 +11:00
Matt Joiner
99ddad31c9 Track piece marking state separately 2020-11-21 13:44:23 +11:00
Matt Joiner
6cceb5749d Mark piece complete without Client lock 2020-11-16 16:37:11 +11:00
Matt Joiner
e6da640bb2 Tidy up doc, file names, naming 2020-11-09 10:56:45 +11:00
Matt Joiner
7cb74b158f Replace storage.IncompletePieceToWriter with io.Writer
It was incorrect to assume piece hashing only operates on incomplete chunk data. This actually uncovered a bug where duplicate hash checks occurred, and the redundant checks would fail due to not reading the completed data.
2020-11-06 16:23:38 +11:00
Matt Joiner
636b20b860 Add write incomplete/consecutive chunks interfaces 2020-11-02 15:35:07 +11:00
Matt Joiner
43891309ad Return errors from Reader if data downloading won't occur
Chunk write errors to storage can disable data download. Previously Readers would wait indefinitely for the data to become available. This change returns an error instead of stalling.
2020-10-27 14:10:17 +11:00
Matt Joiner
1bfca56e94 Read from more than a single piece in each read to Torrent storage 2020-10-27 12:24:43 +11:00
Matt Joiner
c1d189ed31 Performance improvements to PEX 2020-10-23 08:58:55 +11:00
Matt Joiner
417d7d1d48 Tweaks to storage error and completion handling 2020-10-11 12:54:03 +11:00
Matt Joiner
01dfc28484 Set tracker announce timeout back to default
Add lots of comments about how this works and why.
2020-10-01 11:45:47 +10:00
Matt Joiner
a3827099c4 Limit simultaneous announces to the same URL 2020-10-01 10:43:10 +10:00
Matt Joiner
a2c7b384df Limit half-open connections at the Client level 2020-09-30 16:56:27 +10:00
Matt Joiner
1cdae13700 Fix conn status string for WebRTC connections 2020-09-29 16:21:54 +10:00
Matt Joiner
9d0ea15044 Expose peer.RemoteAddr 2020-07-15 16:16:14 +10:00
Matt Joiner
12ace95493 Tidy up webseed peer naming and unused types 2020-06-04 11:58:18 +10:00
Matt Joiner
62e7f29a0c Fix panic in webseed request rejection logging
Also use a new helper in Logger to simplify things.
2020-06-04 11:51:17 +10:00
ucwong
645901636d torrent : add udp scheme to 'switch case' 2020-06-04 10:37:50 +10:00
Maxb
a7689f52bd Add DisallowDataDownload/Upload to TorrentSpec and small log cleanup 2020-06-04 10:36:56 +10:00
Matt Joiner
8606385985
Merge pull request #410 from anacrolix/webseeds
* Rename Peer to PeerInfo, and unexport PeerInfos

* Break peer out from PeerConn

* Abstract out segments mapping and use it in mmap storage

* Got file storage working with segment index

* Fix race in webtorrent.TrackerClient.Run

* storage file implementation: Error on short writes

* Remove debug logging from storage file implementation

* cmd/torrent-verify: Fix piece hash output

* Support disabling webtorrent

* Further progress on webseeding

* Handle webseed Client events

* Rename fastestConn->fastestPeer

* Add webseeds from magnet links

* Remove events from webseed

Manage this stuff inside the webseed peer instead.

* Make use of magnet source fields and expose Torrent.MergeSpec

* Add option to disable webseeds

* Fix webseeds when info isn't available immediately

* Handle webseed request errors

* Tidy up the interface changes
2020-06-03 11:25:08 +10:00
Matt Joiner
8a2ff43246 Tidy up the interface changes 2020-06-02 17:41:59 +10:00
Matt Joiner
7909084a17 Fix webseeds when info isn't available immediately 2020-06-02 16:18:25 +10:00
Matt Joiner
72bd4f362e Add option to disable webseeds 2020-06-02 16:17:32 +10:00
Matt Joiner
054ea59e6d Remove events from webseed
Manage this stuff inside the webseed peer instead.
2020-06-02 13:54:26 +10:00
Maxb
d7627143bc Add per-torrent ability to disable uploading 2020-06-02 11:20:39 +10:00
Matt Joiner
eb8688a902 Rename fastestConn->fastestPeer 2020-06-01 19:09:17 +10:00
Matt Joiner
5602ecd810 Handle webseed Client events 2020-06-01 18:41:21 +10:00
Matt Joiner
ff53ab860c Further progress on webseeding 2020-06-01 18:25:45 +10:00
Matt Joiner
67c9021e97 Support disabling webtorrent 2020-06-01 18:24:46 +10:00
Matt Joiner
317146dec9 Export PeerImpl and all its methods 2020-05-31 13:22:36 +10:00
Matt Joiner
3f8f6e1733 Got things compiling 2020-05-31 13:09:56 +10:00
Matt Joiner
3d1f08b12f Save progress 2020-05-30 17:52:27 +10:00
Matt Joiner
de88c620bc Seperate peer and PeerConn 2020-05-30 15:18:28 +10:00
Matt Joiner
cb37a914c1 Rename Peer to PeerInfo, and unexport PeerInfos 2020-05-29 19:44:48 +10:00
Matt Joiner
e33d773391 Don't error on setting info when we already have it 2020-05-19 15:22:58 +10:00
Matt Joiner
91afef8733 Fix https://github.com/anacrolix/torrent/issues/388 2020-05-19 15:00:08 +10:00
Matt Joiner
78d14c78d2 Fix panic caused by adding disabled udp trackers 2020-05-19 12:44:42 +10:00
Matt Joiner
39171df0c6 Fix PeerConn outgoing field for webrtc
Due to jumping straight into handshakes, outgoing=true was assumed. This didn't actually solve the issue I thought it might, but is important for determining "preferred" connection direction, which may result in dropping connections.
2020-05-03 18:37:26 +10:00
Matt Joiner
15fff58d7b Rework tracker status lines 2020-04-28 09:13:44 +10:00
Matt Joiner
3226dc1ccd Rename per-torrent ws tracker and output stats 2020-04-22 11:42:31 +10:00
Matt Joiner
0ab6d108be Pool webtorrent tracker websockets at the Client level 2020-04-21 18:08:43 +10:00
Matt Joiner
c074b30d94 Log webrtc connection errors and rework webtorrent.TrackerClient 2020-04-20 13:42:25 +10:00
Matt Joiner
4a2802a702 Logging fixes 2020-04-18 17:45:01 +10:00
Matt Joiner
d05ce2d274 Update anacrolix/log 2020-04-16 17:20:58 +10:00