ws: refactor, bug fixes, improvements (#155)

- split swarm worker into two modules
- split socket worker into two modules
- keep track of which offers peers have sent and only allow matching
answers
- always clean up after closing connection
- use channel for telling connections to close
- move some logic into new ConnectionRunner struct
- use slotmap for connection reference storage
- fix double counting of error responses
- actually close connections that take too long to send responses to
- remove announced_info_hashes entry on AnnounceEvent::Stopped
This commit is contained in:
Joakim Frostegård 2023-11-09 18:06:21 +01:00 committed by GitHub
parent af9d5a55f6
commit fe5ccf6646
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 1770 additions and 1583 deletions

View file

@ -26,11 +26,24 @@
* Add support for reporting peer client information
* Reload TLS certificate (and key) on SIGUSR1
* Keep track of which offers peers have sent and only allow matching answers
#### Changed
* A response is no longer generated when peers announce with AnnounceEvent::Stopped
* Compiling with SIMD extensions enabled is no longer required, due to the
addition of runtime detection to simd-json
* Only consider announce and scrape responses as signs of connection still
being alive. Previously, all messages sent to peer were considered.
* Decrease default max_peer_age and max_connection_idle config values
#### Fixed
* Fix bug where clean up after closing connections wasn't always done
* Fix double counting of error responses
* Actually close connections that are too slow to send responses to
* If peers announce with AnnounceEvent::Stopped, allow them to later announce on
same torrent with different peer_id
## 0.8.0 - 2023-03-17