Skip to content

Commit

Permalink
clarify that DHT transaction IDs are 16 bits
Browse files Browse the repository at this point in the history
  • Loading branch information
arvidn committed Nov 22, 2020
1 parent ddbcb3e commit a9c406c
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
2 changes: 1 addition & 1 deletion include/libtorrent/kademlia/rpc_manager.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ class TORRENT_EXTRA_EXPORT rpc_manager

mutable boost::pool<> m_pool_allocator;

std::unordered_multimap<int, observer_ptr> m_transactions;
std::unordered_multimap<std::uint16_t, observer_ptr> m_transactions;

aux::listen_socket_handle m_sock;
socket_manager* m_sock_man;
Expand Down
6 changes: 3 additions & 3 deletions src/kademlia/rpc_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ bool rpc_manager::incoming(msg const& m, node_id* id)
if (transaction_id.empty()) return false;

auto ptr = transaction_id.begin();
int tid = transaction_id.size() != 2 ? -1 : detail::read_uint16(ptr);
std::uint16_t tid = transaction_id.size() != 2 ? std::uint64_t(0xffff) : detail::read_uint16(ptr);

observer_ptr o;
auto range = m_transactions.equal_range(tid);
Expand Down Expand Up @@ -464,7 +464,7 @@ bool rpc_manager::invoke(entry& e, udp::endpoint const& target_addr
std::string transaction_id;
transaction_id.resize(2);
char* out = &transaction_id[0];
std::uint16_t const tid = std::uint16_t(random(0x7fff));
std::uint16_t const tid = std::uint16_t(random(0xffff));
detail::write_uint16(tid, out);
e["t"] = transaction_id;

Expand All @@ -491,7 +491,7 @@ bool rpc_manager::invoke(entry& e, udp::endpoint const& target_addr

if (m_sock_man->send_packet(m_sock, e, target_addr))
{
m_transactions.insert(std::make_pair(tid, o));
m_transactions.emplace(tid, o);
#if TORRENT_USE_ASSERTS
o->m_was_sent = true;
#endif
Expand Down

0 comments on commit a9c406c

Please sign in to comment.