forked from premiere/premiere-libtorrent
fixed bug where tracker authentication was not sent to the tracker
This commit is contained in:
parent
5c5aabe7b1
commit
d32f0ba755
|
@ -149,10 +149,9 @@ namespace libtorrent
|
|||
void tick();
|
||||
void queue_request(
|
||||
tracker_request r
|
||||
, std::string const& auth
|
||||
, boost::weak_ptr<request_callback> c
|
||||
= boost::weak_ptr<request_callback>()
|
||||
, std::string const& password = "");
|
||||
// void abort_request(request_callback* c);
|
||||
= boost::weak_ptr<request_callback>());
|
||||
void abort_all_requests();
|
||||
bool send_finished() const;
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@ namespace libtorrent
|
|||
, std::string const& request
|
||||
, boost::weak_ptr<request_callback> c
|
||||
, const http_settings& stn
|
||||
, std::string const& password)
|
||||
, std::string const& auth)
|
||||
: tracker_connection(c)
|
||||
, m_man(man)
|
||||
, m_state(read_status)
|
||||
|
@ -95,7 +95,7 @@ namespace libtorrent
|
|||
, m_request_time(second_clock::universal_time())
|
||||
, m_settings(stn)
|
||||
, m_req(req)
|
||||
, m_password(password)
|
||||
, m_password(auth)
|
||||
, m_code(0)
|
||||
{
|
||||
const std::string* connect_to_host;
|
||||
|
@ -186,10 +186,10 @@ namespace libtorrent
|
|||
m_send_buffer += "\r\nProxy-Authorization: Basic ";
|
||||
m_send_buffer += base64encode(m_settings.proxy_login + ":" + m_settings.proxy_password);
|
||||
}
|
||||
if (password != "")
|
||||
if (auth != "")
|
||||
{
|
||||
m_send_buffer += "\r\nAuthorization: Basic ";
|
||||
m_send_buffer += base64encode(password);
|
||||
m_send_buffer += base64encode(auth);
|
||||
}
|
||||
m_send_buffer += "\r\n\r\n";
|
||||
#ifndef NDEBUG
|
||||
|
@ -451,7 +451,7 @@ namespace libtorrent
|
|||
else
|
||||
m_req.url.assign(m_location.begin(), m_location.begin() + i);
|
||||
|
||||
m_man.queue_request(m_req, m_requester, m_password);
|
||||
m_man.queue_request(m_req, m_password, m_requester);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -82,6 +82,13 @@ using namespace boost::posix_time;
|
|||
namespace libtorrent { namespace detail
|
||||
{
|
||||
|
||||
std::string generate_auth_string(std::string const& user
|
||||
, std::string const& passwd)
|
||||
{
|
||||
if (user.empty()) return std::string();
|
||||
return user + ":" + passwd;
|
||||
}
|
||||
|
||||
// This is the checker thread
|
||||
// it is looping in an infinite loop
|
||||
// until the session is aborted. It will
|
||||
|
@ -408,7 +415,7 @@ namespace libtorrent { namespace detail
|
|||
tracker_request req = i->second->generate_tracker_request();
|
||||
req.listen_port = m_listen_interface.port;
|
||||
req.key = m_key;
|
||||
m_tracker_manager.queue_request(req);
|
||||
m_tracker_manager.queue_request(req, i->second->tracker_login());
|
||||
}
|
||||
m_connections.clear();
|
||||
m_torrents.clear();
|
||||
|
@ -682,7 +689,7 @@ namespace libtorrent { namespace detail
|
|||
assert(req.event == tracker_request::stopped);
|
||||
req.listen_port = m_listen_interface.port;
|
||||
req.key = m_key;
|
||||
m_tracker_manager.queue_request(req);
|
||||
m_tracker_manager.queue_request(req, t.tracker_login());
|
||||
t.disconnect_all();
|
||||
purge_connections();
|
||||
#ifndef NDEBUG
|
||||
|
@ -697,8 +704,7 @@ namespace libtorrent { namespace detail
|
|||
tracker_request req = t.generate_tracker_request();
|
||||
req.listen_port = m_listen_interface.port;
|
||||
req.key = m_key;
|
||||
m_tracker_manager.queue_request(
|
||||
req, i->second);
|
||||
m_tracker_manager.queue_request(req, t.tracker_login(), i->second);
|
||||
}
|
||||
|
||||
// tick() will set the used upload quota
|
||||
|
|
|
@ -359,8 +359,8 @@ namespace libtorrent
|
|||
|
||||
void tracker_manager::queue_request(
|
||||
tracker_request req
|
||||
, boost::weak_ptr<request_callback> c
|
||||
, std::string const& password)
|
||||
, std::string const& auth
|
||||
, boost::weak_ptr<request_callback> c)
|
||||
{
|
||||
assert(req.num_want >= 0);
|
||||
if (req.event == tracker_request::stopped)
|
||||
|
@ -425,7 +425,7 @@ namespace libtorrent
|
|||
, request_string
|
||||
, c
|
||||
, m_settings
|
||||
, password));
|
||||
, auth));
|
||||
}
|
||||
else if (protocol == "udp")
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue