From edd6239979fafeaf9735effd452878d79ea5002c Mon Sep 17 00:00:00 2001 From: Daniel Franke Date: Thu, 25 Sep 2008 10:34:39 +0000 Subject: gst/udp/gstudpsrc.c: OS X's bind() implementation is picky about its addrlen parameter and fails with EINVAL if it is... Original commit message from CVS: Patch by: Daniel Franke * gst/udp/gstudpsrc.c: (gst_udpsrc_create), (gst_udpsrc_start): OS X's bind() implementation is picky about its addrlen parameter and fails with EINVAL if it is larger than expected for the socket's address family. Set the length to the expected length instead. Fixes #553191. --- gst/udp/gstudpsrc.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'gst/udp') diff --git a/gst/udp/gstudpsrc.c b/gst/udp/gstudpsrc.c index ed0dbc0b..0f2af457 100644 --- a/gst/udp/gstudpsrc.c +++ b/gst/udp/gstudpsrc.c @@ -376,26 +376,18 @@ static GstFlowReturn gst_udpsrc_create (GstPushSrc * psrc, GstBuffer ** buf) { GstUDPSrc *udpsrc; - GstNetBuffer *outbuf; - struct sockaddr_storage tmpaddr; - socklen_t len; - guint8 *pktdata; - gint pktsize; - #ifdef G_OS_UNIX gint readsize; #elif defined G_OS_WIN32 gulong readsize; #endif GstClockTime timeout; - gint ret; - gboolean try_again; udpsrc = GST_UDPSRC_CAST (psrc); @@ -787,8 +779,9 @@ gst_udpsrc_start (GstBaseSrc * bsrc) goto setsockopt_error; GST_DEBUG_OBJECT (src, "binding on port %d", src->port); - if ((ret = bind (src->sock.fd, (struct sockaddr *) &src->myaddr, - sizeof (src->myaddr))) < 0) + /* Mac OS is picky about the size */ + len = sizeof (struct sockaddr_in); + if ((ret = bind (src->sock.fd, (struct sockaddr *) &src->myaddr, len)) < 0) goto bind_error; len = sizeof (src->myaddr); -- cgit