2
0
mirror of synced 2025-02-24 06:38:14 +00:00

673 Commits

Author SHA1 Message Date
Matt Joiner
1a4950ad4a Add default DHT servers when UTP disabled
Also ensures that UDP and TCP sockets are reserved, even if not used, and fixes tests. Fixes #289.
2018-11-04 17:43:47 +11:00
Matt Joiner
9a49f4b37e Add establish outgoing connection expvar 2018-11-04 16:12:16 +11:00
Matt Joiner
c50e59166d Add dial rate limiting
Fixes #273.
2018-11-02 23:09:52 +11:00
Denis Kuzmenok
9dc89ab6dc reverting usage of proxy for http requests 2018-10-31 10:54:10 +11:00
Matt Joiner
a8787e6632 Revert "Make requestStrategy 3 the default"
This reverts commit 60dd0eed538361490cbf29a1734e6cd8d21f794f.
2018-08-25 16:43:28 +10:00
Matt Joiner
81e6061a53 When Accept gives an error, don't use the Conn 2018-07-27 10:18:56 +10:00
Matt Joiner
2f14e5dbc0 Track received handshake encryption activity 2018-07-25 17:11:56 +10:00
Matt Joiner
2940f27f9f Use the new firewall callback support in go-libutp 2018-07-25 17:11:09 +10:00
Matt Joiner
6dd3b9c12c Law of Demeter Client.mu 2018-07-25 13:42:28 +10:00
Matt Joiner
8479f215e0 Don't return if there's an error accepting
This happens if there's too many file descriptors, and left the client unresponsive.
2018-07-22 12:58:41 +10:00
Matt Joiner
d4d3e24c6f Track metadata chunks read with its own Count 2018-07-15 10:09:58 +10:00
Matt Joiner
d4d8f78906 Send extended message before fast/bitfield
This is how Transmission does it.
2018-07-14 11:28:54 +10:00
Matt Joiner
f5bd377941 Change pieceIndex to peer_protocol.Integer 2018-07-12 09:15:15 +10:00
Matt Joiner
ba8ec1a787 Move back to net.IP for extended handshake message IPs 2018-07-12 00:00:07 +10:00
Matt Joiner
2685ef6aa9 Use half open limit directly from Config 2018-07-10 12:23:00 +10:00
Matt Joiner
1f6ba94882 Make extended handshake a struct, and move a bunch of extended stuff into peer_protocol 2018-07-10 12:20:36 +10:00
Matt Joiner
e3cb94006c Reinstate the reduce dial timeout and update some values
Fixes #263
2018-07-10 11:19:14 +10:00
Matt Joiner
fad06c7ddf sortimports 2018-07-07 11:36:58 +10:00
Matt Joiner
e1d6fc2341 Add torrent.InfoHash type alias 2018-07-07 11:32:52 +10:00
Matt Joiner
76a3c0891a Expose handshake stuff in peer_protocol 2018-07-07 11:31:29 +10:00
Matt Joiner
5f20a21c9d Change the duplicateRequestTimeout to 1s 2018-06-30 21:10:48 +10:00
Matt Joiner
60dd0eed53 Make requestStrategy 3 the default
Fixes #253.
2018-06-28 12:06:21 +10:00
Matt Joiner
7619994ef5 Remove premature initialization of Torrent.lastRequested 2018-06-25 14:03:22 +10:00
Matt Joiner
195695042d Add requestStrategy 3, which duplicates requests only after a timeout
Possible solution for #253.
2018-06-24 20:04:31 +10:00
Matt Joiner
159c4a0e28 Ensure 64-bit alignment of ConnStats fields
Fixes #262.
2018-06-23 18:33:56 +10:00
Matt Joiner
70093a4db3 Update accept limit parameters 2018-06-22 17:43:02 +10:00
Matt Joiner
f137bfdd61 Use RLock for Client.WriteStatus 2018-06-17 16:11:50 +10:00
Matt Joiner
70dfc1f518 Allow disabling accept limiting and modify some constants 2018-06-16 16:37:13 +10:00
Matt Joiner
0854161e99 Clear accept limits when adding a new torrent 2018-06-16 16:34:35 +10:00
Matt Joiner
e97f487d2e Rename Config->ClientConfig and change how defaults work
This is a very breaking change.
2018-06-16 16:30:04 +10:00
Matt Joiner
ad5e44eaf5 Add lots of new expvars and perf timers 2018-06-15 22:42:05 +10:00
Matt Joiner
81dcb9b779 Remove old Client.dialTCP 2018-06-15 22:39:37 +10:00
Matt Joiner
8acfc5149b Rate limit incoming IP prefixes
Lots of bad or dishonest incoming handshakes for unwanted torrents.
2018-06-15 22:38:11 +10:00
Matt Joiner
fd0fb0051b Update dial expvars 2018-06-15 14:30:31 +10:00
Matt Joiner
da4a6503c2 Fix race condition in Client.ListenAddrs 2018-06-13 10:53:38 +10:00
Matt Joiner
856d5083b5 Update log call 2018-06-12 20:22:54 +10:00
Matt Joiner
360e1dbdd1 Track ConnStats with atomics 2018-06-12 20:21:53 +10:00
Matt Joiner
b024e1cff6 Remove unnecessary use of go keyword 2018-06-12 20:16:17 +10:00
Matt Joiner
cea5584d6b Track outgoing through a new field on connection, and rework duplicate connection preferencing 2018-06-12 20:14:00 +10:00
Matt Joiner
ab48d4731c Include rate limiting and stats in BenchmarkConnectionMainReadLoop 2018-06-11 12:20:51 +10:00
Matt Joiner
5a53d29c75 Minimize lock time in Client.acceptConnections 2018-06-10 10:29:19 +10:00
Matt Joiner
ac6ba9f021 Add ConnStats at Client level
ConnStats management is refactored to make this less tedious.
2018-06-10 09:20:33 +10:00
Denis
f6ed514c3b added proxy support to the library, using ProxyURL parameter. (#256) 2018-06-08 20:52:36 +10:00
Matt Joiner
15b828515e Don't listen on IPv6 if DisableIPv6 is set
Fixes #250
2018-05-02 19:24:46 +10:00
Matt Joiner
df38775630 A few adjustments to prioritized peers usage 2018-04-14 21:44:41 +10:00
Matt Joiner
610dbd17ba Fix #244 2018-04-14 21:43:08 +10:00
Matt Joiner
5c81c6c70a Include connection network in log message 2018-04-14 11:24:06 +10:00
Matt Joiner
0290a1610a Merge branch 'circleci'
# Conflicts:
#	client.go
2018-04-12 17:28:13 +10:00
Matt Joiner
e38216a472 Add comment 2018-04-12 16:12:27 +10:00
Matt Joiner
485d8cdf61 Use new DHT stats fields 2018-04-12 16:11:22 +10:00