Opened 13 years ago

Closed 12 years ago

#252 closed Enhancement (fixed)

IPv6 Tracker and Peer Support

Reported by: jhujhiti Owned by: charles
Priority: Normal Milestone: 1.50
Component: libtransmission Version: 0.80
Severity: Normal Keywords:
Cc: wiedi@…

Description (last modified by charles)

These are a series of patches by jhujhiti to add IPv6 support to Transmission.

Attachments (5)

ipv6-phase-1.diff (43.0 KB) - added by jhujhiti 12 years ago.
Phase 1, mark 2
ipv6-phase-2.diff (3.1 KB) - added by jhujhiti 12 years ago.
Phase 2 libtransmission. Note the git-diff. use patch -p1
ipv6-phase-1-fix-blocklist-test.diff (2.5 KB) - added by jhujhiti 12 years ago.
Fix libtransmission/blocklist-test.c
main.c (1.2 KB) - added by jhujhiti 12 years ago.
configure test to set TR_NEED_V4SOCKET (see comment)
ipv6-phase-3.diff (40.3 KB) - added by jhujhiti 12 years ago.
final patch against r7306

Download all attachments as: .zip

Change History (24)

comment:1 Changed 13 years ago by persept

  • Milestone changed from 0.80 to 0.81

comment:2 Changed 13 years ago by livings124

  • Milestone 0.81 deleted

comment:3 Changed 13 years ago by charles

  • Milestone set to Sometime

jhujhiti: I'd really like to add this to 0.91 or some future version. Could you update this patch to fit with September/October?'s changes in libT?

comment:4 Changed 13 years ago by wiedi

  • Cc wiedi@… added

comment:5 Changed 13 years ago by Waldorf

May want to see: The IPv6 situation.

comment:6 Changed 13 years ago by dak180

This may be useful: IPv6 Tracker Extension

comment:7 Changed 12 years ago by kab

I think it is time now to add IPv6 support. I have IPv6 DSL capabilities for 2 and a half year now and someone I know from India reports, that he will get a price reduction from the beginning of 2009 if he only connects with IPv6! He told me that in some areas in India the ISP's have up to seven layers of NAT to connect all users with the limited pool of IPv4 addresses.

I hope someone can implement this soon.

comment:8 Changed 12 years ago by Thomas Deniau

Since BitTorrent? accounts for a large part of Internet bandwidth usage, allowing BitTorrent? to work on IPv6 (and to prefer v6 to v4 when available) might lead to a rapid increase of v6 traffic, prompting more ISPs to support it (my ISP, in France, already does :-). It would be great if that patch could be updated and merged !

comment:9 Changed 12 years ago by sega01

I agree, it would be very nice to have this updated. I contacted the author a couple months ago and he said that he had not touched it since it was submitted, but he would get around to working on it this summer. I wish my C skills were up to par to take this on :-(.

comment:10 Changed 12 years ago by smmalis

My ISP just switched to IPv6, and I would love Transmission to be able to take advantage of that.

comment:11 Changed 12 years ago by gnu

I don't understand why this improvement isn't already in Transmission -- it was submitted a year ago. If all it needs is someone to clean it up against the current sources, I'll do it. (I see there are a lot of useless #ifdef HAVE_IPV6 lines in it.) If there's some opposition in the Transmission developer community against installing IPv6 support, I won't waste my time.

Ubuntu is now offering their torrents on an ipv6-only tracker, allowing people to test their client implementations and their network infrastructure to make sure that IPv6 is fully working for them. See http://ipv6.torrent.ubuntu.com/ . I have a working IPv6 network, but the Ubuntu version of Transmission that I'm running doesn't support ipv6 -- presumably because this upstream version doesn't either. Let's do the small effort required to get it all working for the next release!

comment:12 Changed 12 years ago by charles

IPv6 support is a great idea.

I'd be happy to consider a clean patch that implements it in libtransmission.

comment:13 Changed 12 years ago by jhujhiti

The original patch was a hack at best. The HAVE_IPV6 defines existed so I could leave original code untouched in case things didn't work on BeOS.

In any event, when I looked into rewriting the patch this past summer, libtransmission had changed greatly. It would no doubt be best to start from scratch rather than try to update the patch. I can't commit myself to doing it right now, but if anyone would like to try, I am willing to lend whatever insight I have. You can find current contact information at <http://adjectivism.org/>, or just reply to this ticket.

comment:14 Changed 12 years ago by charles

Notes for anyone wanting to submit a new patch: I agree with jhujhiti about the hackiness of the scattered #ifdefs. That's understandable for a rough draft, but for an updated patch I'd really prefer some sort of "tr_address" object to pass around, encapsulates the IPv4 and IPv6 fields.

comment:15 Changed 12 years ago by charles

  • Description modified (diff)
  • Owner set to charles
  • Status changed from new to assigned

comment:16 Changed 12 years ago by jhujhiti

Pending removal of some unrelated stuff in trunk, I will be submitting a series of patches to make this work. If everything goes according to plan, the patch process will look like this:

  • Phase 1 will update libtransmission with a tr_address type. All functions will be address family-agnostic. This patch will not include working IPv6, but will hopefully be added to trunk to ease what follows.
  • Phase 2 will be a simple patch that will extend tr_sessionInitFull(). I will add a flag for the UI to specify whether or not IPv6 connections should be enabled. This patch will break the build.
  • At this point, a patch for each UI should be attached to this ticket. Once the build is un-broken, I will write Phase 3.
  • Phase 3 will be the final patch. It will include everything Phase 2 and the UI work and will patch cleanly against trunk.

Changed 12 years ago by jhujhiti

Phase 1, mark 2

Changed 12 years ago by jhujhiti

Phase 2 libtransmission. Note the git-diff. use patch -p1

Changed 12 years ago by jhujhiti

Fix libtransmission/blocklist-test.c

comment:17 Changed 12 years ago by charles

  • Milestone changed from Sometime to 1.50

comment:18 Changed 12 years ago by jhujhiti

I still need to write a configure check that will set TR_NEED_V4SOCKET, but the last patch should work fine on Linux and OS X.

Changed 12 years ago by jhujhiti

configure test to set TR_NEED_V4SOCKET (see comment)

Changed 12 years ago by jhujhiti

final patch against r7306

comment:19 Changed 12 years ago by livings124

  • Resolution set to fixed
  • Status changed from assigned to closed

IPv6is implemented as of [7397]

I'm going to close this and will recommend more specific issues be reported in new specific tickets.

Note: See TracTickets for help on using tickets.