On 1/23/2022 6:57 AM, Michael Niedermayer wrote:
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
this "ifdef __linux__" feels like the wrong thing to check, dont you agree ?
Not sure what you mean.
But as I said in one of my other posts..
"FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, macOS, Solaris, AIX, IRIX,
HP-UX, QNX, Minix3 and a few
others define the ttl parameter to IP_MULTICAST_TTL as an unsigned char.
Linux has it as an integer."
I looked for various examples of IP_MULTICAST_TTL usage in whatever
projects I could find and most
of the examples I found used only unsigned char, with BIRD (routing
daemon) being one of few that
use an int for Linux and unsigned char for *BSD's. It does not have
support for any other OS's.
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".