fix empty outgoing interfaces for UDP sockets
This commit is contained in:
parent
c98b700d4f
commit
4d17e0132e
|
@ -89,7 +89,8 @@ namespace libtorrent { namespace aux {
|
||||||
std::vector<std::shared_ptr<outgoing_udp_socket>>::iterator
|
std::vector<std::shared_ptr<outgoing_udp_socket>>::iterator
|
||||||
partition_outgoing_sockets(std::vector<listen_endpoint_t>& eps);
|
partition_outgoing_sockets(std::vector<listen_endpoint_t>& eps);
|
||||||
|
|
||||||
tcp::endpoint bind(socket_type& s, address const& remote_address) const;
|
tcp::endpoint bind(socket_type& s, address const& remote_address
|
||||||
|
, error_code& ec) const;
|
||||||
|
|
||||||
void update_proxy(proxy_settings const& settings);
|
void update_proxy(proxy_settings const& settings);
|
||||||
|
|
||||||
|
|
|
@ -4988,8 +4988,8 @@ namespace aux {
|
||||||
|
|
||||||
if (is_utp(s))
|
if (is_utp(s))
|
||||||
{
|
{
|
||||||
auto ep = m_outgoing_sockets.bind(s, remote_address);
|
auto ep = m_outgoing_sockets.bind(s, remote_address, ec);
|
||||||
if (ep.port() != 0)
|
if (ep.port() != 0 || ec)
|
||||||
return ep;
|
return ep;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
#include "libtorrent/aux_/session_udp_sockets.hpp"
|
#include "libtorrent/aux_/session_udp_sockets.hpp"
|
||||||
#include "libtorrent/aux_/session_impl.hpp"
|
#include "libtorrent/aux_/session_impl.hpp"
|
||||||
|
#include "libtorrent/error_code.hpp"
|
||||||
|
|
||||||
namespace libtorrent { namespace aux {
|
namespace libtorrent { namespace aux {
|
||||||
|
|
||||||
|
@ -63,9 +64,14 @@ namespace libtorrent { namespace aux {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
tcp::endpoint outgoing_sockets::bind(socket_type& s, address const& remote_address) const
|
tcp::endpoint outgoing_sockets::bind(socket_type& s
|
||||||
|
, address const& remote_address, error_code& ec) const
|
||||||
{
|
{
|
||||||
TORRENT_ASSERT(!sockets.empty());
|
if (sockets.empty())
|
||||||
|
{
|
||||||
|
ec.assign(boost::system::errc::not_supported, generic_category());
|
||||||
|
return tcp::endpoint();
|
||||||
|
}
|
||||||
|
|
||||||
utp_socket_impl* impl = nullptr;
|
utp_socket_impl* impl = nullptr;
|
||||||
transport ssl = transport::plaintext;
|
transport ssl = transport::plaintext;
|
||||||
|
|
Loading…
Reference in New Issue