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 237334061B for ; Thu, 27 Jan 2022 02:00:11 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 360C968B17E; Thu, 27 Jan 2022 04:00:09 +0200 (EET) Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7115268AE7C for ; Thu, 27 Jan 2022 04:00:02 +0200 (EET) Received: by mail-pf1-f176.google.com with SMTP id i17so1282412pfq.13 for ; Wed, 26 Jan 2022 18:00:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:subject:message-id:mail-followup-to:references :mime-version:content-disposition:in-reply-to; bh=RyCkgS/+Z4NeimQ77EJUEV6oyf4ZsmliHu/Iz/KbWi0=; b=ipokTNTUtVUhQSqLjva2FwyqOx1RwPqZjLzvP5S5KRB56JByYwNWpXaqz5QWZhq9in OIUE4jC02nECuSpUIOBetn8OwqH78Wk9Y9xk6+wpYjgRHdHtcv5OahWFEF5IxP/AXp4G f3VmzuGXZC8tcMiLOstWHmgD595M13Ect+QJZyftZoMK+DFRRxYMKrxPlAN4/HpQD3At MJru8kw+gRB7Pi1S6Z0ga8IOd33/tff6VxLNj1rQhxgnRoeGdS9Jdd3w5ofToz6459cp vC9fxp4vrnP7joeKTY9CFuabv2NahJQhpvclG2NBauq4boCeZSHGyDAVn6zObvi477ZV J26Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:subject:message-id:mail-followup-to :references:mime-version:content-disposition:in-reply-to; bh=RyCkgS/+Z4NeimQ77EJUEV6oyf4ZsmliHu/Iz/KbWi0=; b=EB7EkEdmKBQYBhBnS9p4dgfqPuGWIQyU3w6kpBufITQpEku3RJej+ObgkoMJEgjtGQ zrusOA+PBp9Pc/xlcgl3Napt3DBj4xR5MJlYAV8dHaGAD7eBuuzP362OmMIUH164Cjtt 5y9E3YYc4HY+akmLSCT19xlFvGmCrDgi8YB+Ux6288O9z2wlv/p1LZGQAhBlyMJOlCTD GWhW1wMIothL4y5YC/zl50US/zakFpYUL83El82+4b8ormZShuKngHG1WSkJJO1yQCwC 9DR/tj0nbJ5fUwKCc1ZPXKZBuNIaTgHwEpAbf+kLEUVkoIY3OSAWXGPmeTEmnOczieGx Xp7A== X-Gm-Message-State: AOAM530WhLv5XEVv7s7yCY/Z+SZrLyAOEffjfHwEki12zJJQlB/UIzCX fhdUzDlUyEgBnnIOUx3vxbHN1QpBTAw= X-Google-Smtp-Source: ABdhPJwtmFBI4TgtMUWirEBtHwkbn9MgPnfKKXhL2V4OlA6G9DhrGXCcnPHWI/ghJPIsJ6RvxFV1dg== X-Received: by 2002:aa7:81ce:: with SMTP id c14mr1090422pfn.2.1643248800228; Wed, 26 Jan 2022 18:00:00 -0800 (PST) Received: from gmail.com ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id j6sm3644632pfu.18.2022.01.26.17.59.59 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 26 Jan 2022 17:59:59 -0800 (PST) Date: Thu, 27 Jan 2022 09:59:56 +0800 From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Message-ID: <20220127015956.GA14112@gmail.com> Mail-Followup-To: ffmpeg-devel@ffmpeg.org References: <5b8ea94d-b731-7f48-d4b-a849bc2aac6d@passwd.hu> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <5b8ea94d-b731-7f48-d4b-a849bc2aac6d@passwd.hu> 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 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".