forked from premiere/premiere-libtorrent
whenever checking for EWOULDBLOCK, also check for EAGAIN
This commit is contained in:
parent
e23e417ef9
commit
6a3ee5a7cf
|
@ -195,7 +195,7 @@ void udp_socket::send(udp::endpoint const& ep, char const* p, int len
|
||||||
#endif
|
#endif
|
||||||
m_ipv4_sock.send_to(asio::buffer(p, len), ep, 0, ec);
|
m_ipv4_sock.send_to(asio::buffer(p, len), ep, 0, ec);
|
||||||
|
|
||||||
if (ec == error::would_block)
|
if (ec == error::would_block || ec == error::try_again)
|
||||||
{
|
{
|
||||||
#if TORRENT_USE_IPV6
|
#if TORRENT_USE_IPV6
|
||||||
if (ep.address().is_v6() && m_ipv6_sock.is_open())
|
if (ep.address().is_v6() && m_ipv6_sock.is_open())
|
||||||
|
@ -265,7 +265,7 @@ void udp_socket::on_read(error_code const& ec, udp::socket* s)
|
||||||
error_code ec;
|
error_code ec;
|
||||||
udp::endpoint ep;
|
udp::endpoint ep;
|
||||||
size_t bytes_transferred = s->receive_from(asio::buffer(m_buf, m_buf_size), ep, 0, ec);
|
size_t bytes_transferred = s->receive_from(asio::buffer(m_buf, m_buf_size), ep, 0, ec);
|
||||||
if (ec == asio::error::would_block) break;
|
if (ec == asio::error::would_block || ec == asio::error::try_again) break;
|
||||||
on_read_impl(s, ep, ec, bytes_transferred);
|
on_read_impl(s, ep, ec, bytes_transferred);
|
||||||
}
|
}
|
||||||
call_drained_handler();
|
call_drained_handler();
|
||||||
|
|
|
@ -1261,7 +1261,7 @@ void utp_socket_impl::send_syn()
|
||||||
m_sm->send_packet(udp::endpoint(m_remote_address, m_port), (char const*)h
|
m_sm->send_packet(udp::endpoint(m_remote_address, m_port), (char const*)h
|
||||||
, sizeof(utp_header), ec);
|
, sizeof(utp_header), ec);
|
||||||
|
|
||||||
if (ec == error::would_block)
|
if (ec == error::would_block || ec == error::try_again)
|
||||||
{
|
{
|
||||||
#if TORRENT_UTP_LOG
|
#if TORRENT_UTP_LOG
|
||||||
UTP_LOGV("%8p: socket stalled\n", this);
|
UTP_LOGV("%8p: socket stalled\n", this);
|
||||||
|
@ -1845,7 +1845,7 @@ bool utp_socket_impl::send_pkt(int flags)
|
||||||
// as well, to resend the packet immediately without
|
// as well, to resend the packet immediately without
|
||||||
// it being an MTU probe
|
// it being an MTU probe
|
||||||
}
|
}
|
||||||
else if (ec == error::would_block)
|
else if (ec == error::would_block || ec == error::try_again)
|
||||||
{
|
{
|
||||||
#if TORRENT_UTP_LOG
|
#if TORRENT_UTP_LOG
|
||||||
UTP_LOGV("%8p: socket stalled\n", this);
|
UTP_LOGV("%8p: socket stalled\n", this);
|
||||||
|
@ -2008,7 +2008,7 @@ bool utp_socket_impl::resend_packet(packet* p, bool fast_resend)
|
||||||
, boost::uint32_t(h->timestamp_difference_microseconds));
|
, boost::uint32_t(h->timestamp_difference_microseconds));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (ec == error::would_block)
|
if (ec == error::would_block || ec == error::try_again)
|
||||||
{
|
{
|
||||||
#if TORRENT_UTP_LOG
|
#if TORRENT_UTP_LOG
|
||||||
UTP_LOGV("%8p: socket stalled\n", this);
|
UTP_LOGV("%8p: socket stalled\n", this);
|
||||||
|
|
Loading…
Reference in New Issue