From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 9A2D040623 for ; 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 ; 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: 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==?= 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: <5b8ea94d-b731-7f48-d4b-a849bc2aac6d@passwd.hu> <20220127015956.GA14112@gmail.com> To: FFmpeg development discussions and patches In-Reply-To: <20220127015956.GA14112@gmail.com> X-OQ-MSGID: 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: > 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".