diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-01-17 13:27:05 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-01-17 13:27:05 +0100 |
commit | cfa7083e946ad023ffed434278a84de3670a6389 (patch) | |
tree | 3f51317ba933af6a29f303f24e39462528f730ea | |
parent | 6cb38409d139ddce225b26c39e1af9885832a8e4 (diff) |
sdp: Port to GIO for multicast address detection
-rw-r--r-- | gst-libs/gst/sdp/Makefile.am | 4 | ||||
-rw-r--r-- | gst-libs/gst/sdp/gstsdpmessage.c | 56 | ||||
-rw-r--r-- | gst-libs/gst/sdp/gstsdpmessage.h | 2 | ||||
-rw-r--r-- | pkgconfig/gstreamer-sdp-uninstalled.pc.in | 1 | ||||
-rw-r--r-- | pkgconfig/gstreamer-sdp.pc.in | 1 |
5 files changed, 10 insertions, 54 deletions
diff --git a/gst-libs/gst/sdp/Makefile.am b/gst-libs/gst/sdp/Makefile.am index 2f2289900..a59815eec 100644 --- a/gst-libs/gst/sdp/Makefile.am +++ b/gst-libs/gst/sdp/Makefile.am @@ -7,8 +7,8 @@ lib_LTLIBRARIES = libgstsdp-@GST_MAJORMINOR@.la libgstsdp_@GST_MAJORMINOR@_la_SOURCES = gstsdpmessage.c -libgstsdp_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) -libgstsdp_@GST_MAJORMINOR@_la_LIBADD = $(GST_LIBS) $(WIN32_LIBS) +libgstsdp_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS) +libgstsdp_@GST_MAJORMINOR@_la_LIBADD = $(GST_LIBS) $(GIO_LIBS) libgstsdp_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS) if HAVE_INTROSPECTION diff --git a/gst-libs/gst/sdp/gstsdpmessage.c b/gst-libs/gst/sdp/gstsdpmessage.c index cd95c7cad..5f7540c10 100644 --- a/gst-libs/gst/sdp/gstsdpmessage.c +++ b/gst-libs/gst/sdp/gstsdpmessage.c @@ -61,28 +61,7 @@ #include <stdlib.h> #include <string.h> -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif - -#include <glib.h> /* for G_OS_WIN32 */ -#include <gst/gstinfo.h> /* For GST_STR_NULL */ - -#ifdef G_OS_WIN32 -/* ws2_32.dll has getaddrinfo and freeaddrinfo on Windows XP and later. - * minwg32 headers check WINVER before allowing the use of these */ -#ifndef WINVER -#define WINVER 0x0501 -#endif -#ifdef _MSC_VER -#include <Winsock2.h> -#endif -#include <ws2tcpip.h> -#else -#include <sys/socket.h> -#include <netdb.h> -#include <netinet/in.h> -#endif +#include <gio/gio.h> #include "gstsdpmessage.h" @@ -338,10 +317,8 @@ gboolean gst_sdp_address_is_multicast (const gchar * nettype, const gchar * addrtype, const gchar * addr) { - struct addrinfo hints; - struct addrinfo *ai; - struct addrinfo *res; gboolean ret = FALSE; + GInetAddress *iaddr; g_return_val_if_fail (addr, FALSE); @@ -349,32 +326,9 @@ gst_sdp_address_is_multicast (const gchar * nettype, const gchar * addrtype, if (nettype && strcmp (nettype, "IN") != 0) return FALSE; - memset (&hints, 0, sizeof (hints)); - hints.ai_socktype = SOCK_DGRAM; - - /* set the address type as a hint */ - if (addrtype) { - if (!strcmp (addrtype, "IP4")) - hints.ai_family = AF_INET; - else if (!strcmp (addrtype, "IP6")) - hints.ai_family = AF_INET6; - } - - if (getaddrinfo (addr, NULL, &hints, &res) < 0) - return FALSE; - - for (ai = res; !ret && ai; ai = ai->ai_next) { - if (ai->ai_family == AF_INET) - ret = - IN_MULTICAST (ntohl (((struct sockaddr_in *) ai->ai_addr)-> - sin_addr.s_addr)); - else - ret = - IN6_IS_ADDR_MULTICAST (&((struct sockaddr_in6 *) ai-> - ai_addr)->sin6_addr); - } - - freeaddrinfo (res); + iaddr = g_inet_address_new_from_string (addr); + ret = g_inet_address_get_is_multicast (iaddr); + g_object_unref (iaddr); return ret; } diff --git a/gst-libs/gst/sdp/gstsdpmessage.h b/gst-libs/gst/sdp/gstsdpmessage.h index 069eb38d7..1b0ef974b 100644 --- a/gst-libs/gst/sdp/gstsdpmessage.h +++ b/gst-libs/gst/sdp/gstsdpmessage.h @@ -44,7 +44,7 @@ #define __GST_SDP_MESSAGE_H__ #include <glib.h> - +#include <gst/gst.h> #include <gst/sdp/gstsdp.h> G_BEGIN_DECLS diff --git a/pkgconfig/gstreamer-sdp-uninstalled.pc.in b/pkgconfig/gstreamer-sdp-uninstalled.pc.in index bd1d89ddb..1cabc50f5 100644 --- a/pkgconfig/gstreamer-sdp-uninstalled.pc.in +++ b/pkgconfig/gstreamer-sdp-uninstalled.pc.in @@ -11,6 +11,7 @@ Name: GStreamer SDP Library, Uninstalled Description: SDP helper functions, uninstalled Version: @VERSION@ Requires: glib-2.0 +Requires.private: gio-2.0 Libs: @abs_top_builddir@/gst-libs/gst/sdp/libgstsdp-@GST_MAJORMINOR@.la Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs diff --git a/pkgconfig/gstreamer-sdp.pc.in b/pkgconfig/gstreamer-sdp.pc.in index 9bb0f4044..4ca410516 100644 --- a/pkgconfig/gstreamer-sdp.pc.in +++ b/pkgconfig/gstreamer-sdp.pc.in @@ -10,6 +10,7 @@ typelibdir=${libdir}/girepository-1.0 Name: GStreamer SDP Library Description: SDP helper functions Requires: glib-2.0 +Requires.private: gio-2.0 Version: @VERSION@ Libs: -L${libdir} -lgstsdp-@GST_MAJORMINOR@ Cflags: -I${includedir} |