Opened 14 years ago

Closed 13 years ago

#377 closed Enhancement (fixed)

HTTPS tracker support

Reported by: drfrogsplat Owned by: charles
Priority: Normal Milestone: 1.20
Component: libtransmission Version: 1.01
Severity: Normal Keywords:
Cc:

Description

Support for trackers accessible only by HTTP over a SSL, or more simply, "https".

Currently, when adding a torrent in which the tracker URL is prefixed by "https://" an error is generated in the Transmission Message Log: "ERR Invalid announce URL (https://...)"

The desired behaviour, instead, is that Transmission should be able to use these URLs to access the tracker, exactly as it would a simple HTTP URL.

Attachments (1)

load.c (5.5 KB) - added by charles 13 years ago.
sample code for integrating libevent and libcurl

Download all attachments as: .zip

Change History (14)

comment:1 Changed 14 years ago by drfrogsplat

  • Type changed from Bug Report to Enhancement

comment:2 Changed 14 years ago by charles

  • Component changed from Transmission to libtransmission
  • Owner somebody deleted

comment:3 Changed 14 years ago by drfrogsplat

  • Version changed from 0.82 to 1.01

There appears to be a slight change in the behaviour described since it was reported (now at version 1.01)

Transmission now appears to silently (i.e. its not mentioned in the Transmission Message Log - even at Debug level) convert the tracker URL from "https://..." to "http://..."

Presumably if the tracker offers both methods of access this will work fine, however where it does not this results in something along the lines of "Tracker: Error - Not Found"

comment:4 Changed 14 years ago by SchAmane

There is small patch for libevent to support HTTPS with OpenSSL, but its little bit outdated.

Maybe somebody can adopt it for current version to see if HTTPS Tracker support will work with it?

http://msgbus.googlecode.com/svn/trunk/libevent.diff

comment:5 Changed 13 years ago by charles

  • Milestone changed from None Set to 1.20
  • Owner set to charles
  • Status changed from new to assigned

comment:6 Changed 13 years ago by charles

  • Summary changed from HTTPS tracker support to a

One possible approach is to replace evhttp with libcurl as our web backend. It looks like, as of curl 7.16, we can even use curl_multi_socket_action to let libcurl use our existing libevent loop. I've Googled and found some sample code that does this and will attach it to this ticket.

Changed 13 years ago by charles

sample code for integrating libevent and libcurl

comment:7 Changed 13 years ago by charles

  • Summary changed from a to HTTPS tracker support

comment:8 Changed 13 years ago by charles

another libcurl + libevent example, possibly closer to what our code will need to look like:

http://cvs.php.net/viewvc.cgi/pecl/http/http_request_pool_api.c?revision=1.61&view=markup

comment:9 Changed 13 years ago by charles

And a breadcrumb for the libcurl API call to work with libevent:

http://curl.haxx.se/libcurl/c/curl_multi_socket.html

comment:10 Changed 13 years ago by livings124

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

comment:11 Changed 13 years ago by charles

  • Resolution fixed deleted
  • Status changed from closed to reopened

IMO it's premature to close this ticket... there are a lot of changes that need testing.

comment:12 Changed 13 years ago by charles

[5690] make the tracker status lines human-readable again

comment:13 Changed 13 years ago by charles

  • Resolution set to fixed
  • Status changed from reopened to closed
Note: See TracTickets for help on using tickets.