Matt Joiner
d4576a56d9
Add some expvars to track uTP/TCP and PHE fallbacks for outgoing connections
2017-09-15 12:56:15 +10:00
Matt Joiner
881f1a7e35
Support plaintext crypto method for protocol header encryption
2017-09-13 18:20:20 +10:00
Matt Joiner
110764480e
Avoid triggering writer cond where possible
2017-09-01 12:09:41 +10:00
Matt Joiner
13e79039f2
Generate requests, cancels and interest state in the connection writer
2017-08-31 23:48:52 +10:00
Matt Joiner
986b9093a0
Make connection.writer pull from a buffer
2017-08-31 16:26:45 +10:00
Matt Joiner
0388ec1eee
Synchronize Torrent.Info
2017-08-29 15:16:53 +10:00
Matt Joiner
a8a1ea755d
Remove unused functions
2017-08-26 13:23:04 +10:00
Matt Joiner
401974dd8d
dht.ServerConfig.StartingNodes is now a function
...
Additionally cmd/torrentfs uses the global bootstrap nodes for its DHT. Aids with https://github.com/anacrolix/torrent/issues/180
2017-08-25 16:28:27 +10:00
Matt Joiner
97cb41a5c9
Provide default starting nodes to DHT if default torrent client config is used
...
https://github.com/anacrolix/torrent/issues/178
2017-08-18 11:14:28 +10:00
Matt Joiner
76c60ffa77
Try a state-delta function for updating request state
...
Also adds Torrent.networkingEnabled, though it isn't yet useful.
2017-08-18 01:51:02 +10:00
Matt Joiner
170bb72c34
Augment dialed connection timeouts with context.Context
...
Works toward a dial timeout for half open connections. https://github.com/anacrolix/torrent/issues/169
2017-08-16 17:05:05 +10:00
Matt Joiner
9bec8f6a95
Use net.Dialer for TCP
2017-08-16 15:48:30 +10:00
Matt Joiner
8317417910
Use DialContext instead of DialTimeout with utp
2017-08-16 15:35:17 +10:00
Matt Joiner
2d59d48015
Some tidying in Client.dialFirst
2017-08-16 10:32:25 +10:00
Matt Joiner
5099d8e33f
DHT bootstrap is not asynchronous
2017-08-10 11:18:48 +10:00
Matt Joiner
2624281842
Changes for dht-cleanup
2017-07-21 00:40:49 +10:00
mlmhl
6286c11bed
Do not add nodes if dht is disabled
2017-06-29 14:28:07 +08:00
Matt Joiner
ae8b03d586
Use go-libutp if cgo is enabled
2017-06-16 18:08:24 +10:00
Matt Joiner
49648b9ae1
Close implicit Client default storage on Client.Close
...
Fixes #158
2017-06-01 22:57:08 +10:00
luffyma(马林)
d8023a5e39
bug fix: race condition between outgoing connection and incoming connection
2017-05-10 18:31:19 +08:00
Matt Joiner
40b96d0e4e
Avoid allocating skeys for receiving encrypted handshakes
2017-04-04 18:41:08 +10:00
Chris Walker
9d96cd659f
fix `Spec.Storage` and allow per-torrent dir
...
`TorrentSpec.Storage` was not honored when calling `Client.AddTorrentSpec`
and the configured `cfg.DefaultStorage` was always used. Now if you construct
your `TorrentSpec` you can specify any `StorageImpl`
Also, the most common use case for custom storage being per-torrent paths for
FileStorage, this adds a `pathMaker` function to the File implementation that
allows customization, along with the default (always use base path) and my use
case (which seemed common enough from the Gitter chat) which is infohash based
subdirectories.
All Public methods have not changed signature, but 1 private method did, hence
the test update.
2017-03-16 14:40:21 +00:00
Matt Joiner
9cf09dba8a
Remove unused funcs and idents
2017-01-01 11:03:02 +11:00
Matt Joiner
186b5073d2
Move method queuePieceCheck
2017-01-01 11:02:37 +11:00
Matt Joiner
d48c7c8e36
sort imports
2017-01-01 11:01:41 +11:00
Matt Joiner
b68d7cd08e
dht/… moved to github.com/anacrolix/dht
2016-12-14 11:43:37 +11:00
Matt Joiner
8b50f5fa7a
Fix deadlock in Client.onDHTAnnouncePeer
2016-11-27 14:43:21 +11:00
Matt Joiner
f451a39b69
Fix harmless race conditions in Client.WriteStatus introduced way back
2016-11-27 14:26:45 +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
aa697794cc
Remove unused function
2016-11-25 17:24:29 +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
0d9348c5d1
Move Client.downloadedChunk to connection.go
2016-11-22 14:16:18 +11:00
Matt Joiner
d4cbdc5c38
Add download rate limiting
...
Fixes #121 .
2016-10-10 17:29:39 +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
836bb344f3
Add really simple upload rate limiting and test
2016-10-10 14:58:29 +11:00
Matt Joiner
76c24e70b5
Improve code comments
2016-10-10 14:57:34 +11:00
Matt Joiner
510c03770b
Reorder the fields of struct Client
2016-10-10 00:04:14 +11:00
Matt Joiner
de761fb506
Do chunk pooling at Torrent instead of connection level
2016-10-05 15:57:00 +11:00
Matt Joiner
3b5f123645
Fix Client.receiveSkeys
...
Fixes #114 . Loop variables in Go are ****ed.
2016-09-21 21:04:52 +10:00
Matt Joiner
7856cc6329
Add some more debug logging
2016-09-21 21:00:18 +10:00
Matt Joiner
9126db177b
Add Config.{Force,PreferNo}Encryption
2016-09-16 12:42:41 +10:00
Matt Joiner
2fc814b5eb
Move Client.connectionLoop to connection.mainReadLoop
2016-09-11 14:32:56 +10:00
Matt Joiner
5d7882a79d
Remove unused trackerTier and shuffleTier
2016-09-11 14:12:03 +10:00
Matt Joiner
f47fd8c969
Move TorrentSpec stuff into its own file
2016-09-11 14:09:40 +10:00
Matt Joiner
1e919dd6b1
Rework storage interfaces to make them simpler to implement
...
This allows lots of behaviour to be baked into the new Client, Torrent and Piece wrappers, rather than duplicating (badly) them in all the backend implementations.
2016-09-02 15:10:57 +10:00
Matt Joiner
8b17d2a63a
Rework Reader position changes affecting piece priorities
...
Torrent.updatePiecePriorities is always followed by Torrent.piecePriorityChanged, so move it into the former function. Also drop the separate mutex for Reader, and add a missing Reader.posChanged call.
2016-08-30 15:41:26 +10:00
Matt Joiner
7557c9bd4e
Only parse the config listen addr if we have to
...
This fixes a broken benchmark
2016-08-30 14:19:29 +10:00
Matt Joiner
2a1cef7c9e
Remove the InfoEx type, and don't generate its infohash on the fly
...
Fixes #106 .
2016-08-26 20:29:05 +10:00