On Wed, Jan 12, 2022 at 12:13:13AM -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. > > > diff --git a/libavformat/udp.c b/libavformat/udp.c > index 180d96a988..29aa865fff 100644 > --- a/libavformat/udp.c > +++ b/libavformat/udp.c > @@ -163,7 +163,13 @@ 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) { > +#ifdef __linux__ > + int ttl = mcastTTL; > +#else > + unsigned char ttl = mcastTTL; > +#endif
I don't have BSD system for test, but I prefer to use socklen_t, please try with my proposal patch: --- libavformat/udp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/udp.c b/libavformat/udp.c index 83c042d079..b9baa0a803 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) { + socklen_t ttl = mcastTTL; + + 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(); > + > + if (setsockopt(sockfd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, > sizeof(ttl)) < 0) { > ff_log_net_error(NULL, 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-requ...@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-requ...@ffmpeg.org with subject "unsubscribe".