/** the list of connected clients **/
static struct list_head clients;
static int listen_fd = -1;
-static struct sender *self;
/** Maximal number of bytes in a chunk queue. */
#define DCCP_MAX_PENDING_BYTES 40000
struct dccp_client *dc, *tmp;
int ret;
char *header_buf;
- size_t header_len;
-
- 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;
header_buf = vss_get_header(&header_len);
if (header_buf && header_len > 0) {
if (queue_chunk_or_shutdown(dc, -1U, 0) < 0)
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) {
s->client_cmds[SENDER_ALLOW] = NULL;
s->client_cmds[SENDER_ADD] = NULL;
s->client_cmds[SENDER_DELETE] = NULL;
- self = s;
ret = dccp_open();
if (ret < 0)
PARA_ERROR_LOG("%s\n", para_strerror(-ret));