summaryrefslogtreecommitdiffstats
path: root/gst/udp/gstmultiudpsink.c
diff options
context:
space:
mode:
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. */