summaryrefslogtreecommitdiffstats
path: root/gst/udp/gstmultiudpsink.c
diff options
context:
space:
mode:
authorMichael Smith <msmith@xiph.org>2008-11-20 22:56:58 +0000
committerMichael Smith <msmith@xiph.org>2008-11-20 22:56:58 +0000
commit9b372f1bbd3c1e0994811354fe500f1da0ea938b (patch)
tree234e1d6693faee2fd82deee21245f0937b4319f1 /gst/udp/gstmultiudpsink.c
parent380b64d670d1a8a9a5075d3a235f57f10d0f41fa (diff)
gst/udp/: Fix multiudpsink on OSX by passing the specific length of the socket, refactor that into a function shared ...
Original commit message from CVS: * gst/udp/gstmultiudpsink.c: * gst/udp/gstudpnetutils.c: * gst/udp/gstudpnetutils.h: * gst/udp/gstudpsrc.c: Fix multiudpsink on OSX by passing the specific length of the socket, refactor that into a function shared with the same thing in udpsrc.
Diffstat (limited to 'gst/udp/gstmultiudpsink.c')
-rw-r--r--gst/udp/gstmultiudpsink.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gst/udp/gstmultiudpsink.c b/gst/udp/gstmultiudpsink.c
index d43f1ff9..95d15ab3 100644
--- a/gst/udp/gstmultiudpsink.c
+++ b/gst/udp/gstmultiudpsink.c
@@ -374,6 +374,7 @@ gst_multiudpsink_render (GstBaseSink * bsink, GstBuffer * buffer)
gint ret, size, num = 0;
guint8 *data;
GList *clients;
+ gint len;
sink = GST_MULTIUDPSINK (bsink);
@@ -395,12 +396,13 @@ gst_multiudpsink_render (GstBaseSink * bsink, GstBuffer * buffer)
GST_LOG_OBJECT (sink, "sending %d bytes to client %p", size, client);
while (TRUE) {
+ len = gst_udp_get_sockaddr_length (&client->theiraddr);
#ifdef G_OS_WIN32
ret = sendto (*client->sock, (char *) data, size, 0,
#else
ret = sendto (*client->sock, data, size, 0,
#endif
- (struct sockaddr *) &client->theiraddr, sizeof (client->theiraddr));
+ (struct sockaddr *) &client->theiraddr, len);
if (ret < 0) {
/* we get a non-posix EPERM on Linux when a firewall rule blocks this
* destination. We will simply ignore this. */