From 82b60b25c8ff899688972be4fe64d05bfaa5fd0d Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Tue, 2 Mar 2010 07:21:32 +0000 Subject: [PATCH] made the DHT socket bind to the same interface as the session --- ChangeLog | 1 + src/session_impl.cpp | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2426970fc..1455dc3c9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -109,6 +109,7 @@ * fast piece optimization * added support for torrents with odd piece sizes * fixed issue with disk read cache not being cleared when removing torrents + * made the DHT socket bind to the same interface as the session release 0.14.9 diff --git a/src/session_impl.cpp b/src/session_impl.cpp index 205978a8e..98308dfc0 100644 --- a/src/session_impl.cpp +++ b/src/session_impl.cpp @@ -3038,7 +3038,8 @@ namespace aux { if (m_dht_same_port) m_dht_settings.service_port = new_interface.port(); // the listen interface changed, rebind the dht listen socket as well - m_dht_socket.bind(m_dht_settings.service_port); + error_code ec; + m_dht_socket.bind(udp::endpoint(m_listen_interface.address(), m_dht_settings.service_port), ec); maybe_update_udp_mapping(0, m_dht_settings.service_port, m_dht_settings.service_port); maybe_update_udp_mapping(1, m_dht_settings.service_port, m_dht_settings.service_port); @@ -3258,7 +3259,8 @@ namespace aux { m_dht = new dht::dht_tracker(*this, m_dht_socket, m_dht_settings, &startup_state); if (!m_dht_socket.is_open() || m_dht_socket.local_port() != m_dht_settings.service_port) { - m_dht_socket.bind(m_dht_settings.service_port); + error_code ec; + m_dht_socket.bind(udp::endpoint(m_listen_interface.address(), m_dht_settings.service_port), ec); } for (std::list::iterator i = m_dht_router_nodes.begin() @@ -3336,7 +3338,8 @@ namespace aux { && settings.service_port != m_dht_settings.service_port && m_dht) { - m_dht_socket.bind(settings.service_port); + error_code ec; + m_dht_socket.bind(udp::endpoint(m_listen_interface.address(), settings.service_port), ec); maybe_update_udp_mapping(0, settings.service_port, settings.service_port); maybe_update_udp_mapping(1, settings.service_port, settings.service_port);