From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <ffmpeg-devel-bounces@ffmpeg.org>
Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100])
	by master.gitmailbox.com (Postfix) with ESMTP id 9A2D040623
	for <ffmpegdev@gitmailbox.com>; Thu, 27 Jan 2022 02:27:48 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A964468B1A3;
	Thu, 27 Jan 2022 04:27:45 +0200 (EET)
Received: from out203-205-221-242.mail.qq.com (out203-205-221-242.mail.qq.com
 [203.205.221.242])
 by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A658D687F96
 for <ffmpeg-devel@ffmpeg.org>; Thu, 27 Jan 2022 04:27:36 +0200 (EET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com;
 s=s201512; t=1643250451;
 bh=hIA514XH2PCxfq1qc0s7GyRzULZTpOcMnrAgyAvcqNc=;
 h=From:Subject:Date:References:To:In-Reply-To;
 b=G6ajIR05p5pK7rdtrSNyJ0shKtZAbuu9IE43rL+5Z23fGfK7xfvoVzHKx+dyZ2OmE
 +0IgYLLjVXFfuiCRCgMeHZXsNpZZPNcXUSXQT2x+NTBLsXPSlFYy51ebRxkgr/OlMc
 PZXng3QLx0maum+QKuSoKhM0SYAVpHW1ho/gmFFY=
Received: from [192.168.255.10] ([113.108.77.72])
 by newxmesmtplogicsvrsza8.qq.com (NewEsmtp) with SMTP
 id 6DE9ACEE; Thu, 27 Jan 2022 10:27:30 +0800
X-QQ-mid: xmsmtpt1643250450tbj57v45r
Message-ID: <tencent_26BD9CE2E0925AAC341B80FA34E33E255709@qq.com>
X-QQ-XMAILINFO: Nb6LX7dsrQEk/Ojjv+SUgox5CBZT1UyFFgLukZuX1pfIgK9i8oNh5V2zTjpDb2
 b4TGNRIb4xJNXEdu6exYjTN28gVwrtjPWdwJn+OPe4rpHksvY4yBPAjunBdTRRib8DxxWnAognUy
 Omfd9s9c/7kc5ByJ62pr1Px/qEE2/PwbUf87VO6k2yBvtS7e72ANA8lR6Ck2Bj7YvOBpOkFDiCzk
 d8AmVOtInufhC/Xie+s0prZ4Pm5zha0yFrQPvwr7x+e6rODsjn0Gp0IyLZmoddREp4VvfSlr1trQ
 8CelQXprTsXLZsP2UFP67br/Xmy2OP01QkfI+4I21BwSkDJ+CBRG2c5qKPmwiziqZ/fKziGWA//7
 Z1m2T/hKjhrudnRXQvdMX5n3Q2wYcGvd3oB9NQmt02iH2o8YW9UY0hziadYXSLKpbclPYGjEQSs4
 EPqVEFLbtflXAmjIQ5LMW+UcA9+aV8NeUZg4W0M9kIdpwwP7EeugLhPv9FPCe3lq3tuJbD49OBNE
 m3QNOn8WyD/+LzvcztPkinO3pu/Wb7kh0h9G56AxyTnGOXf6JDsaVWtwfEHNBxrauzK04OOyOlHx
 /Odlf2SXW5TduqcaRFtk7znXXe+ZvsSwITO5PZrGutaV7PQF8uEUJ0sxV2skM8jZPG9n3Hf1ttsn
 x6jhgh+b4ZPb4OmAj3SY2PkFXrwdEDVD1O/uhao3lQzoBrWZ8RbtO46xCzvh2TzSKMQsNyGTpIV8
 sJQT9ms5/MeM6WOMy+QjgRF+Jo2qWKBUvPxsxWuZ+5nzju7TbO7T8EWiOT5C3K+63d+TSdolnOHK
 91mVoBJISqItvyibzXu3hgS8AE9+nZH7L0so4zXrJ/yM0K4GS5+7WFAyHWUsiyjV8=
From: =?utf-8?B?InpoaWxpemhhbyjotbXlv5fnq4spIg==?= <quinkblack@foxmail.com>
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\))
Date: Thu, 27 Jan 2022 10:27:28 +0800
References: <Yd5jaXBCd6GP7kBh@humpty.home.comstyle.com>
 <YfFqgV/ZUX9PkIi1@humpty.home.comstyle.com>
 <5b8ea94d-b731-7f48-d4b-a849bc2aac6d@passwd.hu>
 <20220127015956.GA14112@gmail.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
In-Reply-To: <20220127015956.GA14112@gmail.com>
X-OQ-MSGID: <D46F5A01-A2E0-458A-BB75-8B2840F9859F@foxmail.com>
X-Mailer: Apple Mail (2.3654.60.0.2.21)
Subject: Re: [FFmpeg-devel] [PATCH] Fix setsockopt IP_MULTICAST_TTL on
 OpenBSD
X-BeenThere: ffmpeg-devel@ffmpeg.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org>
List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe>
List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel>
List-Post: <mailto:ffmpeg-devel@ffmpeg.org>
List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help>
List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe>
Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: ffmpeg-devel-bounces@ffmpeg.org
Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org>
Archived-At: <https://master.gitmailbox.com/ffmpegdev/tencent_26BD9CE2E0925AAC341B80FA34E33E255709@qq.com/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>



> On Jan 27, 2022, at 9:59 AM, lance.lmwang@gmail.com wrote:
> 
> On Wed, Jan 26, 2022 at 09:50:47PM +0100, Marton Balint wrote:
>> 
>> 
>> On Wed, 26 Jan 2022, Brad Smith wrote:
>> 
>>> On Wed, Jan 12, 2022 at 12:13:14AM -0500, Brad Smith wrote:
>>>> Fix setsockopt() usage on OpenBSD with IP_MULTICAST_TTL. The field
>>>> type should be an unsigned char on anything but Linux.
>>> 
>>> Based on feedback so far. Here is a much simpler approach to this issue..
>> 
>> Win32 needs DWORD unfortunately. I missed it earlier, sorry.
>> 
>> https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ip-socket-options
> 
> From my testing on Mac system, it support one byte only, but at least, it'll
> report "Invalid argument" only if the ttl > 255. Maybe we can try with one byte
> again if the errno is invalid like below. I tested it with ttl > 255 on Mac system
> and without "Invalid argument" anymore.
> 
> #ifdef IP_MULTICAST_TTL
> +    int ret = 0;
>     if (addr->sa_family == AF_INET) {
> -        if (setsockopt(sockfd, IPPROTO_IP, IP_MULTICAST_TTL, &mcastTTL, sizeof(mcastTTL)) < 0) {
> +        ret = setsockopt(sockfd, IPPROTO_IP, IP_MULTICAST_TTL, &mcastTTL, sizeof(mcastTTL));
> +        /* try with byte also for IP_MULTICAST_TTL for some system like OpenBSD */
> +        if (ret < 0 && errno == EINVAL) {
> +            unsigned char ttl = mcastTTL;
> +            ff_log_net_error(logctx, AV_LOG_ERROR, "setsockopt(IP_MULTICAST_TTL): ");
> +            ret = setsockopt(sockfd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, sizeof(ttl));
> +        }
> +        if (ret < 0) {
>             ff_log_net_error(logctx, AV_LOG_ERROR, "setsockopt(IP_MULTICAST_TTL)");
>             return ff_neterrno();
> 
> 
>> 
>> Regards,
>> Marton
>> 
>>> 
>>> 
>>> diff --git a/libavformat/udp.c b/libavformat/udp.c
>>> index 83c042d079..da1b98890b 100644
>>> --- a/libavformat/udp.c
>>> +++ b/libavformat/udp.c
>>> @@ -164,7 +164,9 @@ static int udp_set_multicast_ttl(int sockfd, int mcastTTL,
>>> {
>>> #ifdef IP_MULTICAST_TTL
>>>    if (addr->sa_family == AF_INET) {
>>> -        if (setsockopt(sockfd, IPPROTO_IP, IP_MULTICAST_TTL, &mcastTTL, sizeof(mcastTTL)) < 0) {
>>> +        unsigned char ttl = mcastTTL;  /* ignore the outdated Linux documentation */
>>> +
>>> +        if (setsockopt(sockfd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, sizeof(ttl)) < 0) {
>>>            ff_log_net_error(logctx, AV_LOG_ERROR, "setsockopt(IP_MULTICAST_TTL)");
>>>            return ff_neterrno();
>>>        }
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel@ffmpeg.org
>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>> 
>>> To unsubscribe, visit link above, or email
>>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>>> 
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>> 
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> 
> -- 
> Thanks,
> Limin Wang
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".