From 474d9d7a9b9b32bfd66a558be468e7a5b588f992 Mon Sep 17 00:00:00 2001 From: Jan Smout Date: Thu, 26 Feb 2009 13:19:31 +0100 Subject: udp: fix gst_udp_set_loop_ttl() again Fix the gst_udp_set_loop_ttl() function that was commented out in a previous commit. See #573115. --- gst/udp/gstudpnetutils.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'gst/udp/gstudpnetutils.c') diff --git a/gst/udp/gstudpnetutils.c b/gst/udp/gstudpnetutils.c index a1588caa..b1f864e3 100644 --- a/gst/udp/gstudpnetutils.c +++ b/gst/udp/gstudpnetutils.c @@ -115,12 +115,17 @@ beach: int gst_udp_set_loop_ttl (int sockfd, gboolean loop, int ttl) { + socklen_t socklen; + struct sockaddr_storage addr; int ret = -1; - -#if 0 int l = (loop == FALSE) ? 0 : 1; - switch (addr->ss_family) { + socklen = sizeof (addr); + if ((ret = getsockname (sockfd, (struct sockaddr *) &addr, &socklen)) < 0) { + return ret; + } + + switch (addr.ss_family) { case AF_INET: { if ((ret = @@ -151,7 +156,6 @@ gst_udp_set_loop_ttl (int sockfd, gboolean loop, int ttl) default: errno = EAFNOSUPPORT; } -#endif return ret; } -- cgit From 5d9c947f923dc2f06020c2aaa0898855692dc2a1 Mon Sep 17 00:00:00 2001 From: LRN Date: Fri, 27 Feb 2009 20:24:53 +0100 Subject: udp: Don't set errno to EAFNOSUPPORT unconditionally Fixes bug #573342. --- gst/udp/gstudpnetutils.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gst/udp/gstudpnetutils.c') diff --git a/gst/udp/gstudpnetutils.c b/gst/udp/gstudpnetutils.c index a1588caa..07268509 100644 --- a/gst/udp/gstudpnetutils.c +++ b/gst/udp/gstudpnetutils.c @@ -149,7 +149,11 @@ gst_udp_set_loop_ttl (int sockfd, gboolean loop, int ttl) break; } default: +#ifdef G_OS_WIN32 + WSASetLastError (WSAEAFNOSUPPORT); +#else errno = EAFNOSUPPORT; +#endif } #endif return ret; -- cgit