From 2204e02fa430b2506bb499389777973ea397148e Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sat, 2 Feb 2008 12:20:22 +0100 Subject: [PATCH] dccp_send.c: Fix a header sending bug. If the dccp sender is asked to send out an empty chunk, it returns immediately without doing anything. However, we might want to send the audio file header or the queued chunks in this case. So always loop over all connected clients to see if we can send something. Moreover, if we are not listending on the dccp port, there can not be any dccp clients, so the loop over all clients will be an empty loop. Thus we may skip the initial check for an early return completely. --- dccp_send.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dccp_send.c b/dccp_send.c index b1e2f48d..55454aaa 100644 --- a/dccp_send.c +++ b/dccp_send.c @@ -189,9 +189,6 @@ static void dccp_send(long unsigned current_chunk, int ret; char *header_buf; - if (listen_fd < 0 || !len) - return; - list_for_each_entry_safe(dc, tmp, &clients, node) { if (!dc->header_sent && current_chunk) { size_t header_len; @@ -207,6 +204,8 @@ static void dccp_send(long unsigned current_chunk, dccp_shutdown_client(dc); continue; } + if (!len) + continue; // PARA_DEBUG_LOG("writing %d bytes to fd %d\n", len, dc->fd); ret = dccp_write(dc->fd, buf, len); if (ret < 0) { -- 2.30.2