From 35742ca05a8826541207faaa9584708da5485d95 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 28 Feb 2012 19:19:34 +0100 Subject: Replicate packets for each peer when sending --- src/fastd.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/fastd.c') diff --git a/src/fastd.c b/src/fastd.c index 876975f..3594ffd 100644 --- a/src/fastd.c +++ b/src/fastd.c @@ -343,15 +343,17 @@ static void handle_input(fastd_context *ctx) { dest_addr[0], dest_addr[1], dest_addr[2], dest_addr[3], dest_addr[4], dest_addr[5]); // TODO find correct peer - fastd_peer *peer = ctx->peers; - if (peer->state == STATE_ESTABLISHED) { - buffer.len = len; - ctx->conf->method->method_send(ctx, peer, buffer); - } - else { - fastd_buffer_free(buffer); + fastd_peer *peer; + for (peer = ctx->peers; peer; peer = peer->next) { + if (peer->state == STATE_ESTABLISHED) { + fastd_buffer send_buffer = fastd_buffer_alloc(len, 0); + memcpy(send_buffer.base, buffer.base, len); + ctx->conf->method->method_send(ctx, peer, send_buffer); + } } + + fastd_buffer_free(buffer); } if (fds[1].revents & POLLIN) { size_t max_len = ctx->conf->method->method_max_packet_size(ctx); -- cgit v1.2.3