From patchwork Tue Aug 23 05:48:57 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: liu jc X-Patchwork-Id: 271 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.134 with SMTP id o128csp2413554vsd; Tue, 23 Aug 2016 10:43:36 -0700 (PDT) X-Received: by 10.194.145.233 with SMTP id sx9mr23085411wjb.185.1471974216386; Tue, 23 Aug 2016 10:43:36 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id w128si4657245wmf.25.2016.08.23.10.43.35; Tue, 23 Aug 2016 10:43:36 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 40EEA689908; Tue, 23 Aug 2016 20:43:31 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from BAY004-OMC4S4.hotmail.com (bay004-omc4s4.hotmail.com [65.54.190.206]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EB5BB689817 for ; Tue, 23 Aug 2016 08:49:02 +0300 (EEST) Received: from APC01-HK2-obe.outbound.protection.outlook.com ([65.54.190.199]) by BAY004-OMC4S4.hotmail.com over TLS secured channel with Microsoft SMTPSVC(7.5.7601.23008); Mon, 22 Aug 2016 22:49:03 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=SfHh40jg3AaX2sxNmAN8X2GyLXUauBGqfEnbqZ7ckew=; b=GR2tp7Fe4cUAAJwpmqitu6G04CBP3OM1FpfXHXPV0HQ0H3KZHdOhOCnBsaxGgQ7hve5V7oR7CauWsgIX71ssc+s9mbqopOziNtvVsun3+Cb6C+IzrzkUcNns9cPdH1VLp2R2OsCPqRaC9eUstyL1ZZhegiU1CuszEzy2z6XOYa0ytYi+E5V3gHxb1rhmrRgnKJybO3hs7w8vF0NTUoTI7rwX368/kyyeCiBYjjhjk+IqLh2W1w3G00ioIqY3E+HrpCNHL39C17vON5nj/FGK0KGsghpVes6VpBgBtzCwOwY0pZtIar+F0dpnwMy+VANElYqIpOQe8BAS4NZGU5eG5g== Received: from PU1APC01FT057.eop-APC01.prod.protection.outlook.com (10.152.252.57) by PU1APC01HT155.eop-APC01.prod.protection.outlook.com (10.152.252.204) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.567.7; Tue, 23 Aug 2016 05:49:00 +0000 Received: from SG2PR0201MB0933.apcprd02.prod.outlook.com (10.152.252.51) by PU1APC01FT057.mail.protection.outlook.com (10.152.253.7) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.587.6 via Frontend Transport; Tue, 23 Aug 2016 05:48:59 +0000 Received: from SG2PR0201MB0933.apcprd02.prod.outlook.com ([10.162.202.141]) by SG2PR0201MB0933.apcprd02.prod.outlook.com ([10.162.202.141]) with mapi id 15.01.0599.008; Tue, 23 Aug 2016 05:48:57 +0000 From: liu jc To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [PATCH] IOS-IPv6-only-network-use-hardcode-IPv4-fix Thread-Index: AQHR/QIKLyYMU18PzUmoI4i+mPAgHA== Date: Tue, 23 Aug 2016 05:48:57 +0000 Message-ID: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-slblob-mailprops: UVhqIX3n4Jr+jOx7ISrE14Viujyg5E4Kda94PFuxBRZ1FPBv+OfoSqazalkFCytAzaBYGI+4fokGUEvx5q2zPAJKuvmVH2xe6TUntq2JINAe7cwF02vGjqsEeUhDHVDaCfGzwMq0UgL7+3Piojlyp9bf+3PVXcHrT+pg9k91AXGqmoUQPZmDOP7o4M0gPkUoSJGNqzpBKi0JS1oyUSxjl8nniBieHBRBkd7MbrtY97uTzR2pKXq996iQiiMbjbX+mPEEgBrMes3q9+hv7hn0a3jNLvkpvmzP7hPrCODAm49BYLMuHtIWNgWqlEIMAygatMTp488K1pWSdEhLpoPL7AtzDM91UGLbHdnvuBgbCSGii9l7GGtWwb4DEQMymTEvVecpVSIB7Lw1tbSVhc2khNCKQYecBhw9fTNNm3Sf5TCbP3zGpyAMR+sXECsBjTOW8iVgyrJfCo6MzNfwSU2iMPRMuWyp/OD3UCMBn2fPAsaIWOrbyjedYPhcOFS3qg42S8m2wB0eV6udFc/QOMLl71yKUUc3/qJIUOSc9ND3Rpg1CT5EFcnfOIfVp937Geg5f1NFVSkQ3kGoYIcZubmpUD2uqbsJ8H3VZhIbqjcTecuN9xgr5g9oVxf9DK9vTpUGwI/AmWv4oRk/92iUWkdO6XyV1dgARDoYR5i+o9paVM/BTCSDaJpoTBVxTLob4usG+PlhUX+v61cRGPIR7aJG7GexvUoDzkOGVSD2f+jAMrS740HdO5HPEt3ve4TjvbGF4siuH6ci/zAPRVrl5hMf1A== authentication-results: spf=softfail (sender IP is 10.152.252.51) smtp.mailfrom=outlook.com; ffmpeg.org; dkim=none (message not signed) header.d=none; ffmpeg.org; dmarc=fail action=none header.from=outlook.com; received-spf: SoftFail (protection.outlook.com: domain of transitioning outlook.com discourages use of 10.152.252.51 as permitted sender) x-ms-exchange-messagesentrepresentingtype: 1 x-eopattributedmessage: 0 x-forefront-antispam-report: CIP:10.152.252.51; IPV:NLI; CTRY:; EFV:NLI; SFV:NSPM; SFS:(10019020)(98900003); DIR:OUT; SFP:1102; SCL:1; SRVR:PU1APC01HT155; H:SG2PR0201MB0933.apcprd02.prod.outlook.com; FPR:; SPF:None; LANG:en; x-microsoft-exchange-diagnostics: 1; PU1APC01HT155; 6:bM90XPTox3yo/HECpp+gmaft9tSJ4nFleKrwoFUAyGIfrrU0AZtQalzwRg0/pEpYdL75FvgLr/wlrMwDDot3hRQi3kNV+RhxLcR+AcLRu66Hfw0hKJyNy78FJafaUlngoReGHhqPNriVFfH+kaDMbeYwSY5h92f5aZ1Gb84BLevJ3CtT1TfkeGwhzRSDIv6xwxGrSoCOUoeJ2k6qttpO4NMxNFhSHC1uBC5uLPyLUQrIlWQYvYBPfhuJGXArdzokmTgqG1HdT6Vufi0EhdONEgOECPSg8GB9EPTrmWGBstuj2FMxLB0ubxuzt6Qj21i6; 5:B3alzFqWCQiz8fyoPJSC0a02OyrdQ4a5bpelmm7dyfBAjlpaUQeUrY3zjQRIR7A5hET6UlM1BB7r4+ggcgzRAM+ZUZw8CTX8hQNOBqQfuJjMTEFF2WTue0hVo9QvzuVDJs8MrAZlMfoXc9vBIOn2xA==; 24:5NMbPG9oStmStFxfSiSd1A1x2TutjL6g5RONYtuByqOv8t8TnF6bDgLkjj5K0xw2kE90uMN+aU4rDZRg8oJSUIDYkKSiRVtTwXfhBnxcjlY=; 7:2aIr4LaNPvlg+h8gAJzAyzQEdXTcsTaymfvcMEXQyTzRCY/LkZ7nAlAt69AGDtbvEe+78y1Equ1i9QVmCBZOGwKH+0jMUYXOygcgbusmRxxdyDzSoz9TuqwgBo1wg9GifzN9SoiA7tqIlhrj01LBK1yCjHDv5YEnngTJO5oxSxaA8dIjrYzyJpks+LngAkIWhs5PajanpvkR2rcNt8WvTvAEkzuruA61Fisjp7rB7FRK2HM80C26y2RqMTY0DAii x-ms-office365-filtering-correlation-id: 0ac3d73a-1207-46ba-92b8-08d3cb192b00 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(1601124038)(1601125047); SRVR:PU1APC01HT155; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(432015012)(82015046); SRVR:PU1APC01HT155; BCL:0; PCL:0; RULEID:; SRVR:PU1APC01HT155; x-forefront-prvs: 004395A01C spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2016 05:48:57.1191 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: PU1APC01HT155 X-OriginalArrivalTime: 23 Aug 2016 05:49:03.0279 (UTC) FILETIME=[0DBE43F0:01D1FD02] X-Mailman-Approved-At: Tue, 23 Aug 2016 20:43:29 +0300 Subject: [FFmpeg-devel] [PATCH] IOS-IPv6-only-network-use-hardcode-IPv4-fix 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 Cc: liu jc Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" there is a bug when useing getaddrinfo in IOS when use hardcode IPv4 address and in IPv6-only networks.It can not accept a port number as second parameter as an alternative you can pass a service name or it will cause connect fail. In current video CDN dispatching mechanism the hardcode IPv4 is widly used for better performance. This problem cause many APP use ffmpeg to play this type CDN dispatched video were rejected by APP store. This patch fix this by adding a port to name map for widly used port number that these CDN use to dispatch video. --- libavformat/tcp.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) mode change 100644 => 100755 libavformat/tcp.c diff --git a/libavformat/tcp.c b/libavformat/tcp.c old mode 100644 new mode 100755 index c105479..0de7710 --- a/libavformat/tcp.c +++ b/libavformat/tcp.c @@ -72,7 +72,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags) char buf[256]; int ret; char hostname[1024],proto[1024],path[1024]; - char portstr[10]; + char portstr[64]; s->open_timeout = 5000000; av_url_split(proto, sizeof(proto), NULL, 0, hostname, sizeof(hostname), @@ -105,7 +105,19 @@ static int tcp_open(URLContext *h, const char *uri, int flags) } hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; - snprintf(portstr, sizeof(portstr), "%d", port); + + switch (port) { + case 80: + snprintf(portstr, sizeof(portstr), "%s", "http"); + break; + case 1935: + snprintf(portstr, sizeof(portstr), "%s", "macromedia-fcs"); //know as rtmp + break; + default: + snprintf(portstr, sizeof(portstr), "%d", port); + break; + } + if (s->listen) hints.ai_flags |= AI_PASSIVE; if (!hostname[0]) @@ -268,3 +280,4 @@ const URLProtocol ff_tcp_protocol = { .flags = URL_PROTOCOL_FLAG_NETWORK, .priv_data_class = &tcp_class, }; +