From: Andre Noll Date: Sat, 2 Feb 2008 11:20:22 +0000 (+0100) Subject: dccp_send.c: Fix a header sending bug. X-Git-Tag: v0.3.1~61 X-Git-Url: http://git.tue.mpg.de/?a=commitdiff_plain;h=2204e02fa430b2506bb499389777973ea397148e;p=paraslash.git 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. --- 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) {