whenever checking for EWOULDBLOCK, also check for EAGAIN

This commit is contained in:
Arvid Norberg 2012-11-20 02:08:12 +00:00
parent e23e417ef9
commit 6a3ee5a7cf
2 changed files with 5 additions and 5 deletions

View File

@ -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();

View File

@ -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);