@ -250,34 +250,19 @@ static int libsrt_listen_connect(int eid, int fd, const struct sockaddr *addr, s
if ( libsrt_socket_nonblock ( fd , 1 ) < 0 )
if ( libsrt_socket_nonblock ( fd , 1 ) < 0 )
av_log ( h , AV_LOG_DEBUG , " ff_socket_nonblock failed \n " ) ;
av_log ( h , AV_LOG_DEBUG , " ff_socket_nonblock failed \n " ) ;
while ( ( ret = srt_connect ( fd , addr , addrlen ) ) ) {
ret = srt_connect ( fd , addr , addrlen ) ;
ret = libsrt_neterrno ( h ) ;
if ( ret < 0 )
switch ( ret ) {
return libsrt_neterrno ( h ) ;
case AVERROR ( EINTR ) :
if ( ff_check_interrupt ( & h - > interrupt_callback ) )
ret = libsrt_network_wait_fd_timeout ( h , eid , fd , 1 , timeout , & h - > interrupt_callback ) ;
return AVERROR_EXIT ;
if ( ret < 0 ) {
continue ;
if ( will_try_next ) {
case AVERROR ( EINPROGRESS ) :
av_log ( h , AV_LOG_WARNING ,
case AVERROR ( EAGAIN ) :
" Connection to %s failed (%s), trying next address \n " ,
ret = libsrt_network_wait_fd_timeout ( h , eid , fd , 1 , timeout , & h - > interrupt_callback ) ;
h - > filename , av_err2str ( ret ) ) ;
if ( ret < 0 )
} else {
return ret ;
av_log ( h , AV_LOG_ERROR , " Connection to %s failed: %s \n " ,
ret = srt_getlasterror ( NULL ) ;
h - > filename , av_err2str ( ret ) ) ;
srt_clearlasterror ( ) ;
if ( ret ! = 0 ) {
char buf [ 128 ] ;
ret = AVERROR ( ret ) ;
av_strerror ( ret , buf , sizeof ( buf ) ) ;
if ( will_try_next )
av_log ( h , AV_LOG_WARNING ,
" Connection to %s failed (%s), trying next address \n " ,
h - > filename , buf ) ;
else
av_log ( h , AV_LOG_ERROR , " Connection to %s failed: %s \n " ,
h - > filename , buf ) ;
}
default :
return ret ;
}
}
}
}
return ret ;
return ret ;