]>
 
 
Sergey Matveev's repositories - btrtrc.git/log 
 
 
 
 
 
 
Matt Joiner [Thu, 29 Oct 2020 23:47:50 +0000 (10:47 +1100)] 
 
sqlite storage: Force data to be used as a blob 
 
There's a bug in crawshaw.io/sqlite, and some forks where inserting []byte results in a text type instead of blob. To ensure things work correctly, we coerce data to blob wherever we can. See https://github.com/crawshaw/sqlite/issues/94 and the fork that fixes it. 
 
Matt Joiner [Thu, 29 Oct 2020 23:42:45 +0000 (10:42 +1100)] 
 
Include a null byte in the middle of the Greeting test 
 
Matt Joiner [Wed, 28 Oct 2020 23:45:38 +0000 (10:45 +1100)] 
 
Fix peer request sleepiness
New requests weren't being issued to the current peer when being deleted. For webseeds, this would cause them to not bother issuing new requests indefinitely.
(cherry picked from commit 
146a16df4ea26d33b0ce0391c8220de14c9e18f4 )
 
Matt Joiner [Wed, 28 Oct 2020 01:09:24 +0000 (12:09 +1100)] 
 
Don't fail on 386 tests in CI 
 
Looks like crawshaw.io/sqlite fails to build, possibly due to cross-compiling. 
 
Matt Joiner [Tue, 27 Oct 2020 23:03:37 +0000 (10:03 +1100)] 
 
Switch CI to go1.15 
 
Matt Joiner [Tue, 27 Oct 2020 06:56:55 +0000 (17:56 +1100)] 
 
Remove some unused code 
 
Matt Joiner [Tue, 27 Oct 2020 06:07:49 +0000 (17:07 +1100)] 
 
Performance fiddling on sqlite storage 
 
Matt Joiner [Tue, 27 Oct 2020 03:10:17 +0000 (14:10 +1100)] 
 
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. 
 
Matt Joiner [Tue, 27 Oct 2020 01:59:07 +0000 (12:59 +1100)] 
 
Don't block trying to fill entire Reader.Read 
 
This conforms more to the contract in io.Reader. It's possible the old behaviour was better in reducing overhead, but that can be iterated on (or added as comments next time). 
 
Matt Joiner [Tue, 27 Oct 2020 01:24:43 +0000 (12:24 +1100)] 
 
Read from more than a single piece in each read to Torrent storage 
 
Matt Joiner [Tue, 27 Oct 2020 01:05:40 +0000 (12:05 +1100)] 
 
Remove separate readable/available in Reader 
 
Matt Joiner [Tue, 27 Oct 2020 00:08:37 +0000 (11:08 +1100)] 
 
sqlite storage: Include capacity management 
 
Matt Joiner [Tue, 27 Oct 2020 00:08:08 +0000 (11:08 +1100)] 
 
sqlite storage: Do ReadAt without using incremental I/O 
 
Matt Joiner [Fri, 23 Oct 2020 00:03:42 +0000 (11:03 +1100)] 
 
sqlite storage: Working recursive CTE for excess data 
 
Matt Joiner [Thu, 22 Oct 2020 22:03:44 +0000 (09:03 +1100)] 
 
sqlite storage: Add NewProviderPool 
 
Matt Joiner [Thu, 22 Oct 2020 22:01:15 +0000 (09:01 +1100)] 
 
sqlite storage: Rename table to blob 
 
Avoiding plural table names. 
 
Matt Joiner [Thu, 22 Oct 2020 21:58:55 +0000 (08:58 +1100)] 
 
Performance improvements to PEX 
 
Matt Joiner [Thu, 15 Oct 2020 05:03:43 +0000 (16:03 +1100)] 
 
Fix error handling for bad torrent adds with safe file handling 
 
Matt Joiner [Thu, 15 Oct 2020 04:45:08 +0000 (15:45 +1100)] 
 
Sanitize metainfo file paths for file-based storage 
 
Fixes exploit where specially crafted infos can cause the client to write files to arbitrary locations on local storage when using file-based storages like mmap and file. 
 
Matt Joiner [Thu, 15 Oct 2020 01:56:06 +0000 (12:56 +1100)] 
 
Don't update requests for the current connection first when a request is deleted 
 
Matt Joiner [Thu, 15 Oct 2020 01:45:19 +0000 (12:45 +1100)] 
 
We might want to close webseed peers on response errors 
 
Matt Joiner [Thu, 15 Oct 2020 01:42:27 +0000 (12:42 +1100)] 
 
webseed: Handle http response status codes 
 
Matt Joiner [Wed, 14 Oct 2020 04:11:45 +0000 (15:11 +1100)] 
 
Ensure PeerConn._close is called for incoming connections 
 
This fixes missing calls to PeerConnClosed callback. 
 
Matt Joiner [Tue, 13 Oct 2020 02:34:05 +0000 (13:34 +1100)] 
 
Test both sqlite file and in-memory leecher storages 
 
Matt Joiner [Tue, 13 Oct 2020 02:33:22 +0000 (13:33 +1100)] 
 
Move pexConnState from peer to PeerConn 
 
Matt Joiner [Tue, 13 Oct 2020 02:02:39 +0000 (13:02 +1100)] 
 
Add PeerConnClosed callback 
 
Matt Joiner [Mon, 12 Oct 2020 22:36:58 +0000 (09:36 +1100)] 
 
Add last_used to sqlite storage 
 
Matt Joiner [Mon, 12 Oct 2020 06:13:05 +0000 (17:13 +1100)] 
 
Use bind-blob fix for crawshaw.io/sqlite 
 
Matt Joiner [Mon, 12 Oct 2020 06:12:34 +0000 (17:12 +1100)] 
 
Fix some log levels 
 
Matt Joiner [Sun, 11 Oct 2020 01:58:27 +0000 (12:58 +1100)] 
 
Add a sqlite data storage implementation 
 
Matt Joiner [Sun, 11 Oct 2020 01:57:33 +0000 (12:57 +1100)] 
 
Panic on bad piece per resource chunk names 
 
This was masking a bug in a coming sqlite storage implementation. Maybe it could be relaxed to checking for no filepath.Dir in the future. 
 
Matt Joiner [Sun, 11 Oct 2020 01:54:03 +0000 (12:54 +1100)] 
 
Tweaks to storage error and completion handling 
 
Matt Joiner [Sun, 11 Oct 2020 01:40:43 +0000 (12:40 +1100)] 
 
Tidy up some storage close handling 
 
Matt Joiner [Fri, 9 Oct 2020 23:59:17 +0000 (10:59 +1100)] 
 
Use testing.T.Name instead of missinggo.GetTestName 
 
This handles subtests correctly, and removes the need to specify when to export due to collisions with the old function. 
 
Matt Joiner [Fri, 9 Oct 2020 23:24:58 +0000 (10:24 +1100)] 
 
Tidy up some logging 
 
Matt Joiner [Tue, 6 Oct 2020 23:22:55 +0000 (10:22 +1100)] 
 
Fix webseed requests for non-trivial path components 
 
Matt Joiner [Mon, 5 Oct 2020 22:50:47 +0000 (09:50 +1100)] 
 
Fix PeerConn conn status string 
 
Matt Joiner [Thu, 1 Oct 2020 01:50:42 +0000 (11:50 +1000)] 
 
Fix unused import 
 
Matt Joiner [Thu, 1 Oct 2020 01:45:47 +0000 (11:45 +1000)] 
 
Set tracker announce timeout back to default 
 
Add lots of comments about how this works and why. 
 
Matt Joiner [Thu, 1 Oct 2020 01:20:44 +0000 (11:20 +1000)] 
 
Expose Client.ConnStats 
 
Matt Joiner [Thu, 1 Oct 2020 00:46:27 +0000 (10:46 +1000)] 
 
Include ip param in http announces 
 
Matt Joiner [Thu, 1 Oct 2020 00:45:29 +0000 (10:45 +1000)] 
 
Pass key param in http announces 
 
Matt Joiner [Thu, 1 Oct 2020 00:45:05 +0000 (10:45 +1000)] 
 
Rework HTTP announce timeouts 
 
Use Request.Context to implement timeouts, set the default to 3s for announces from the Client. 
 
Matt Joiner [Thu, 1 Oct 2020 00:43:10 +0000 (10:43 +1000)] 
 
Limit simultaneous announces to the same URL 
 
Matt Joiner [Wed, 30 Sep 2020 06:56:27 +0000 (16:56 +1000)] 
 
Limit half-open connections at the Client level 
 
Matt Joiner [Tue, 29 Sep 2020 06:42:52 +0000 (16:42 +1000)] 
 
Rename struct size test 
 
Matt Joiner [Tue, 29 Sep 2020 06:37:58 +0000 (16:37 +1000)] 
 
Optimize padding on Piece 
 
Matt Joiner [Tue, 29 Sep 2020 06:24:43 +0000 (16:24 +1000)] 
 
Add a test for Piece size 
 
Matt Joiner [Tue, 29 Sep 2020 06:21:54 +0000 (16:21 +1000)] 
 
Fix conn status string for WebRTC connections 
 
Matt Joiner [Thu, 3 Sep 2020 04:34:06 +0000 (14:34 +1000)] 
 
Fix panic for unexpected piece rejections 
 
Should fix #419. 
 
Matt Joiner [Tue, 11 Aug 2020 01:43:12 +0000 (11:43 +1000)] 
 
Add to downstream projects in README 
 
CortexFoundation/torrentfs 
 
Matt Joiner [Wed, 15 Jul 2020 06:16:09 +0000 (16:16 +1000)] 
 
Add ReadExtendedHandshake callback 
 
Matt Joiner [Wed, 15 Jul 2020 06:15:38 +0000 (16:15 +1000)] 
 
Expose peer.RemoteAddr 
 
Matt Joiner [Wed, 15 Jul 2020 06:13:26 +0000 (16:13 +1000)] 
 
Switch to crawshaw.io/sqlite 
 
I'm using it elsewhere, and it seems to conflict when linking with github.com/mattn/go-sqlite3. 
 
Matt Joiner [Wed, 15 Jul 2020 04:00:47 +0000 (14:00 +1000)] 
 
Add some client callbacks 
 
Matt Joiner [Tue, 14 Jul 2020 22:39:44 +0000 (08:39 +1000)] 
 
Add PkgGoDev badge 
 
Matt Joiner [Fri, 10 Jul 2020 03:24:08 +0000 (13:24 +1000)] 
 
Pull in go-libutp fix for race 
 
Matt Joiner [Fri, 10 Jul 2020 03:21:24 +0000 (13:21 +1000)] 
 
Support -testPeer addresses that need resolving 
 
Fixes #395. 
 
Matt Joiner [Fri, 10 Jul 2020 03:18:33 +0000 (13:18 +1000)] 
 
Handle errors in webseed peers for bad URLs 
 
Matt Joiner [Fri, 19 Jun 2020 02:24:03 +0000 (12:24 +1000)] 
 
Update bbolt 
 
Matt Joiner [Fri, 19 Jun 2020 01:41:26 +0000 (11:41 +1000)] 
 
Don't filter context cancel errors 
 
The caller thinks this means it succeeded, when it fact it was cancelled and it should interpret that appropriately. 
 
Matt Joiner [Thu, 4 Jun 2020 01:58:18 +0000 (11:58 +1000)] 
 
Tidy up webseed peer naming and unused types 
 
Matt Joiner [Thu, 4 Jun 2020 01:50:20 +0000 (11:50 +1000)] 
 
Fix panic in webseed request rejection logging 
 
Also use a new helper in Logger to simplify things. 
 
ucwong [Wed, 3 Jun 2020 04:35:52 +0000 (04:35  +0000)] 
 
torrent : add udp scheme to 'switch case' 
 
Maxb [Wed, 3 Jun 2020 19:17:47 +0000 (12:17 -0700)] 
 
Add DisallowDataDownload/Upload to TorrentSpec and small log cleanup 
 
Matt Joiner [Wed, 3 Jun 2020 01:25:08 +0000 (11:25 +1000)] 
 
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 
 
Matt Joiner [Tue, 2 Jun 2020 07:41:59 +0000 (17:41 +1000)] 
 
Tidy up the interface changes 
 
Matt Joiner [Tue, 2 Jun 2020 06:41:49 +0000 (16:41 +1000)] 
 
Handle webseed request errors 
 
Matt Joiner [Tue, 2 Jun 2020 06:18:25 +0000 (16:18 +1000)] 
 
Fix webseeds when info isn't available immediately 
 
Matt Joiner [Tue, 2 Jun 2020 06:17:32 +0000 (16:17 +1000)] 
 
Add option to disable webseeds 
 
Matt Joiner [Tue, 2 Jun 2020 05:06:05 +0000 (15:06 +1000)] 
 
Make use of magnet source fields and expose Torrent.MergeSpec 
 
Matt Joiner [Tue, 2 Jun 2020 03:54:26 +0000 (13:54 +1000)] 
 
Remove events from webseed 
 
Manage this stuff inside the webseed peer instead. 
 
Matt Joiner [Tue, 2 Jun 2020 03:53:25 +0000 (13:53 +1000)] 
 
Add webseeds from magnet links 
 
Maxb [Sat, 30 May 2020 19:42:51 +0000 (12:42 -0700)] 
 
Add per-torrent ability to disable uploading 
 
Matt Joiner [Mon, 1 Jun 2020 09:09:17 +0000 (19:09 +1000)] 
 
Rename fastestConn->fastestPeer 
 
Matt Joiner [Mon, 1 Jun 2020 08:41:21 +0000 (18:41 +1000)] 
 
Handle webseed Client events 
 
Matt Joiner [Mon, 1 Jun 2020 08:25:45 +0000 (18:25 +1000)] 
 
Further progress on webseeding 
 
Matt Joiner [Mon, 1 Jun 2020 08:24:46 +0000 (18:24 +1000)] 
 
Support disabling webtorrent 
 
Matt Joiner [Mon, 1 Jun 2020 01:16:17 +0000 (11:16 +1000)] 
 
cmd/torrent-verify: Fix piece hash output 
 
Matt Joiner [Mon, 1 Jun 2020 01:12:51 +0000 (11:12 +1000)] 
 
Remove debug logging from storage file implementation 
 
Matt Joiner [Mon, 1 Jun 2020 01:12:33 +0000 (11:12 +1000)] 
 
storage file implementation: Error on short writes 
 
Matt Joiner [Mon, 1 Jun 2020 01:11:41 +0000 (11:11 +1000)] 
 
Fix race in webtorrent.TrackerClient.Run 
 
Matt Joiner [Sun, 31 May 2020 14:14:51 +0000 (00:14  +1000)] 
 
Got file storage working with segment index 
 
Matt Joiner [Sun, 31 May 2020 14:04:15 +0000 (00:04  +1000)] 
 
cmd/torrent-verify now needs to call InitIndex 
 
Matt Joiner [Sun, 31 May 2020 14:03:51 +0000 (00:03  +1000)] 
 
connLessTrusted takes peer instead of PeerConn 
 
Matt Joiner [Sun, 31 May 2020 11:00:44 +0000 (21:00 +1000)] 
 
webseed Client skeleton 
 
Matt Joiner [Sun, 31 May 2020 11:00:19 +0000 (21:00 +1000)] 
 
Abstract out segments mapping and use it in mmap storage 
 
Matt Joiner [Sun, 31 May 2020 03:22:36 +0000 (13:22 +1000)] 
 
Export PeerImpl and all its methods 
 
Matt Joiner [Sun, 31 May 2020 03:09:56 +0000 (13:09 +1000)] 
 
Got things compiling 
 
Matt Joiner [Sat, 30 May 2020 07:52:27 +0000 (17:52 +1000)] 
 
Save progress 
 
Matt Joiner [Sat, 30 May 2020 05:18:28 +0000 (15:18 +1000)] 
 
Seperate peer and PeerConn 
 
Matt Joiner [Sat, 30 May 2020 00:14:20 +0000 (10:14 +1000)] 
 
Break peer out from PeerConn 
 
Matt Joiner [Fri, 29 May 2020 09:44:48 +0000 (19:44 +1000)] 
 
Rename Peer to PeerInfo, and unexport PeerInfos 
 
Matt Joiner [Sun, 24 May 2020 07:47:16 +0000 (17:47 +1000)] 
 
BEP27 isn't implemented 
 
https://github.com/anacrolix/torrent/issues/406 
 
Yaroslav Kolomiiets [Wed, 20 May 2020 16:18:00 +0000 (17:18 +0100)] 
 
torrent-metainfo-pprint: include the 'nodes' field into the output when non-empty 
 
Matt Joiner [Thu, 21 May 2020 02:17:10 +0000 (12:17 +1000)] 
 
Fix panic closing torrent that failed to open storage 
 
Matt Joiner [Wed, 20 May 2020 02:04:53 +0000 (12:04 +1000)] 
 
Improve cmd/tracker-announce output 
 
Matt Joiner [Tue, 19 May 2020 05:22:58 +0000 (15:22 +1000)] 
 
Don't error on setting info when we already have it 
 
Matt Joiner [Tue, 19 May 2020 05:00:08 +0000 (15:00 +1000)] 
 
Fix https://github.com/anacrolix/torrent/issues/388 
 
Matt Joiner [Tue, 19 May 2020 04:59:45 +0000 (14:59 +1000)] 
 
Add tests for https://github.com/anacrolix/torrent/issues/388