Don't mark atoms as non-uTP unless we failed to connect.
This commit is contained in:
parent
55b050f18e
commit
2729d3c291
|
@ -1128,6 +1128,7 @@ gotError( tr_peerIo * io,
|
||||||
short what,
|
short what,
|
||||||
void * vhandshake )
|
void * vhandshake )
|
||||||
{
|
{
|
||||||
|
int errcode = errno;
|
||||||
tr_handshake * handshake = vhandshake;
|
tr_handshake * handshake = vhandshake;
|
||||||
|
|
||||||
if( io->utp_socket && !io->isIncoming && handshake->state == AWAITING_YB ) {
|
if( io->utp_socket && !io->isIncoming && handshake->state == AWAITING_YB ) {
|
||||||
|
@ -1137,14 +1138,13 @@ gotError( tr_peerIo * io,
|
||||||
tr_torrentFindFromHash( handshake->session,
|
tr_torrentFindFromHash( handshake->session,
|
||||||
tr_peerIoGetTorrentHash( io ) ) :
|
tr_peerIoGetTorrentHash( io ) ) :
|
||||||
NULL;
|
NULL;
|
||||||
if( tor ) {
|
/* Don't mark a peer as non-uTP unless it's really a connect failure. */
|
||||||
|
if( tor && ( errcode == ETIMEDOUT || errcode == ECONNREFUSED ) ) {
|
||||||
tr_torrentLock( tor );
|
tr_torrentLock( tor );
|
||||||
tr_peerMgrSetUtpFailed( tor,
|
tr_peerMgrSetUtpFailed( tor,
|
||||||
tr_peerIoGetAddress( io, NULL ),
|
tr_peerIoGetAddress( io, NULL ),
|
||||||
TRUE );
|
TRUE );
|
||||||
tr_torrentUnlock( tor );
|
tr_torrentUnlock( tor );
|
||||||
} else {
|
|
||||||
tr_nerr( "UTP", "Eek -- couldn't find torrent for outgoing I/O." );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !tr_peerIoReconnect( handshake->io ) ) {
|
if( !tr_peerIoReconnect( handshake->io ) ) {
|
||||||
|
|
Loading…
Reference in New Issue