From patchwork Thu Nov 29 08:29:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Ross X-Patchwork-Id: 11219 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 65A6844D85A for ; Thu, 29 Nov 2018 10:29:40 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1640168A75F; Thu, 29 Nov 2018 10:29:41 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mx.sdf.org (mx.sdf.org [205.166.94.20]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 115D768A739 for ; Thu, 29 Nov 2018 10:29:31 +0200 (EET) Received: from b2a9ff5ae33ef7912d6591f4fadbd475 (pa49-199-216-66.pa.vic.optusnet.com.au [49.199.216.66]) (authenticated (128 bits)) by mx.sdf.org (8.15.2/8.14.5) with ESMTPSA id wAT8TCm7018919 (using TLSv1.2 with cipher AES256-GCM-SHA384 (256 bits) verified NO) for ; Thu, 29 Nov 2018 08:29:20 GMT Date: Thu, 29 Nov 2018 19:29:20 +1100 From: Peter Ross To: ffmpeg-devel@ffmpeg.org Message-ID: MIME-Version: 1.0 User-Agent: Mutt/1.9.4 (2018-02-28) Subject: [FFmpeg-devel] [PATCH] ff_connect_parallel: do not fail when getsockopt(SO_ERROR) returns EISCONN X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" for O_NONBLOCK connect(), the watt32 socket library returns EISCONN when connection is established --- watt32 is a DOS/Windows BSD socket library. it seems iOS suffers this EISCON problem too, but i am unsure why it hasn't been reported here before. i don't have iOS device to test. https://github.com/warmcat/libwebsockets/issues/17 libavformat/network.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/network.c b/libavformat/network.c index 5664455d18..783de34a98 100644 --- a/libavformat/network.c +++ b/libavformat/network.c @@ -475,7 +475,7 @@ int ff_connect_parallel(struct addrinfo *addrs, int timeout_ms_per_address, last_err = ff_neterrno(); else if (last_err != 0) last_err = AVERROR(last_err); - if (last_err == 0) { + if (last_err == 0 || last_err == AVERROR(EISCONN)) { // Everything is ok, we seem to have a successful // connection. Close other sockets and return this one. for (j = 0; j < nb_attempts; j++)