Commit Graph

1003 Commits

Author SHA1 Message Date
Matt Joiner da8ac9fe01 Log errant unwanted piece rather than panic
Eventually I'll work out what causes this, but for now it's incredibly rare.
2015-08-04 01:29:40 +10:00
Matt Joiner 5a73f73d97 dht: Count announce errors, don't log them 2015-08-04 01:20:44 +10:00
Matt Joiner bbe58bbd73 Filter out DHT peers with port 0
Probably not necessary now we ban the nodes that send them, but it's appropriate to check here too.
2015-08-04 01:20:10 +10:00
Matt Joiner f3317322f8 Fix crash if peer sends out of bounds HAVE message 2015-08-04 01:17:32 +10:00
Matt Joiner f69c51bea3 Tighten up some potential leaks
Based on some observations of lingering goroutines in unit tests.
2015-08-04 01:15:09 +10:00
Matt Joiner 54339a30e3 Drop connections that contributed to pieces that failed to hash
There are peers out there that seem to intentionally spam bad data, and the same pieces will often fail continuously. This really puts a bee in their bonnet.
2015-08-04 01:12:09 +10:00
Matt Joiner 51aad774ab Add IPBlocklist option to Config, and test it's inherited by DHT 2015-08-04 01:07:22 +10:00
Matt Joiner 8d581ce7f2 Fix utp.Socket leak in test 2015-08-04 00:48:17 +10:00
Matt Joiner 87433b00ba Add File.DisplayPath
It's used in many places, I just never formalized it. This will help prevent bugs and misuse of File.Path
2015-08-04 00:45:15 +10:00
Matt Joiner f9995244c0 If a DHTConfig was provided without a blocklist, the DHT wouldn't inherit the Client's blocklist 2015-08-04 00:43:46 +10:00
Matt Joiner 6afaa816bf dht: Add PublicIP to config to secure node ID 2015-08-04 00:37:16 +10:00
Matt Joiner 68e3b9f666 dht: Block bad nodes, start by banning those that send port=0 2015-08-04 00:31:53 +10:00
Matt Joiner d077fed72d Some utils moved to missinggo 2015-08-04 00:29:01 +10:00
Matt Joiner 64848a206a Replace go-check with testify
It's muuuuch better.
2015-08-03 16:23:05 +10:00
Matt Joiner 50ce70c47a Fix locking in data/blob 2015-08-03 14:24:59 +10:00
Matt Joiner 1f008fb4f0 Trivial missed changes 2015-08-02 21:00:49 +10:00
Matt Joiner 0a69176da2 Remove clunky sentence from README 2015-08-02 20:45:26 +10:00
Matt Joiner 1cc50f85a6 connection.writer wasn't working efficiently
Because of the pseudo-random selection of a communication in a select statement, flushing was occuring prematurely. Also the buffer was needlessly large. For large messages, like outgoing pieces, it's probably better they just go straight to the wire anyway.

This change will make it easier to implement sending of pieces that doesn't block control messages in the future. Any time that the buffer is empty, we'll be able to signal that it's an optimal time to send a piece.
2015-08-02 20:39:31 +10:00
Matt Joiner c735370f9b tracker_test: Check for the error string instead of the type
The type changes from Go 1.4->1.5, and it's not worth tearing it apart.
2015-08-02 14:57:28 +10:00
Matt Joiner 7ecc8108bf Track connection writes and flushes
Helps determine efficiency of the routine.
2015-08-02 14:30:33 +10:00
Matt Joiner 06dede5690 Track the connection flags for completed handshakes 2015-08-02 04:06:22 +10:00
Matt Joiner 34d3d7aca0 Tidy up outbound connection code
Preparing to allow alternate dialing logic.
2015-08-02 04:04:42 +10:00
Matt Joiner d037e6ee9c Suppress a lot of noisy logging 2015-08-02 04:01:41 +10:00
Matt Joiner 06ebc4c37e Explicitly import Torrent.InfoHash 2015-08-02 03:55:48 +10:00
Matt Joiner e5acfcbb46 Comments 2015-08-02 03:53:37 +10:00
Matt Joiner 3ef59be02d fs: Remove errant logging 2015-07-22 19:07:01 +10:00
Matt Joiner 8069573abe cmd/torrent: Remove some dead code 2015-07-21 22:54:50 +10:00
Matt Joiner 8ce61e911d Torrent.BytesCompleted was racy 2015-07-21 22:54:02 +10:00
Matt Joiner 78ec88ad02 Don't probe pieces when setting torrent storage
It blocks the caller, for potentially quite some time. I've tested without this for some time now.
2015-07-21 22:52:43 +10:00
Matt Joiner 346c457e9c Hashing was blocking prioritization of pieces 2015-07-21 22:51:15 +10:00
Matt Joiner 428fa03cab Move CI to drone.io
Codeship keeps breaking, and is too painful to use.
2015-07-20 18:48:23 +10:00
Matt Joiner 4805cfbddc Update README 2015-07-19 01:12:50 +10:00
Matt Joiner 84fc3aab0f client.go: Missing perf import 2015-07-17 21:45:44 +10:00
Matt Joiner 0600c3b5e3 Several speedups in logic 2015-07-17 21:07:01 +10:00
Matt Joiner 6c04000644 Downloading a chunk may mean the piece isn't wanted anymore
Hopefully this fixes a very rare logic error in replenishing connection requests for a piece that isn't wanted, yet is still in the connection piece request order.
2015-07-17 21:04:43 +10:00
Matt Joiner 4d3b6e5116 Hold client lock as little as possible in Reader.readAt 2015-07-17 20:59:26 +10:00
Matt Joiner 35fa1e3365 Avoid holding client lock while scanning pieces in File.State
Some torrent data backends are expensive to query.
2015-07-17 20:58:25 +10:00
Matt Joiner 7e9fe4f447 Store chunk data without holding client lock 2015-07-15 16:00:59 +10:00
Matt Joiner 4e80d48692 Add fixes triggered by TestResponsive 2015-07-15 15:54:19 +10:00
Matt Joiner a8ff6c2daf Add TestResponsive 2015-07-15 15:51:42 +10:00
Matt Joiner c018c660f0 Allow chunk size to be specified per torrent 2015-07-15 15:31:18 +10:00
Matt Joiner 4807f12ea1 When seeding, actually seed beyond 6 chunks 2015-07-15 15:29:53 +10:00
Matt Joiner 08f89c49f3 Don't raise piece priority while hashing or if piece complete 2015-07-04 13:38:42 +10:00
Matt Joiner 29343c13cc Merge branch 'master' of github.com:anacrolix/torrent 2015-07-04 13:31:46 +10:00
Matt Joiner fcd98acc9b cmd/torrent-metainfo-pprint: Don't print extra newline when -name is true 2015-07-04 13:30:26 +10:00
Matt Joiner 0256508b4f Abandon the mailing list and gophers channel 2015-07-02 20:32:00 +10:00
Matt Joiner 724f7782b2 Move the gitter badge inline with the other badges 2015-07-02 20:31:15 +10:00
Matt Joiner fd24910257 Merge pull request #9 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2015-07-02 20:29:54 +10:00
Matt Joiner fd2824f595 Raise socketsPerTorrent to 80 2015-06-30 00:46:43 +10:00
Matt Joiner 500f51d232 Some changes to writing torrent status 2015-06-30 00:46:24 +10:00