Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(Add) Peer support IPv4 & IPv6 at the same time #3713

Open
wants to merge 11 commits into
base: 8.x.x
Choose a base branch
from

Conversation

Alkl58
Copy link
Contributor

@Alkl58 Alkl58 commented Apr 2, 2024

Draft - Proof of concept

Not sure if this should be merged - might have implications which I have not caught.

Notes:

  • checkMinInterval has to be changed or disabled
  • supervisor config has to have at least --tries=2 (tested with --tries=3)
  • No incorrect stats (download/upload) has been seen during testing
  • Maybe we want to only give ipv6 peers to peers who also have ipv6

Missing (will be added to this PR):

  • Views
  • Livewire

How does it work:

  • qBittorrent:
  1. Each Client IP generates a seperate request
  2. All requests land into the queue with the WithoutOverlapping lock, so that only one get's processed at a time
  3. The other requests will time out and re-run after ~10-15s, each job will find the same "old" peer and add the missing ip addresses (IPv4/IPv6)
  • ruTorrent:
  1. The IPv4 header will be send into a seperate ip field, when announcing via IPv6
  2. Same as qBittorrent, only that a single job will run, as the request has both IP addresses (IPv6 via client ip / IPv4 via ip field)

@Alkl58 Alkl58 marked this pull request as ready for review April 3, 2024 12:04
@Alkl58 Alkl58 changed the title [Draft] Peer: Support IPv4 & IPv6 at the same time (Add) Peer support IPv4 & IPv6 at the same time Apr 3, 2024
@HDVinnie HDVinnie requested a review from Roardom April 7, 2024 01:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant