From 6f6af6fea60db36d742ff335b7994be493072f9e Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Fri, 5 Aug 2016 22:17:56 +0200 Subject: Fix disconnect bug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/servers/coopgamma.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/servers/coopgamma.c b/src/servers/coopgamma.c index 4e126cf..b96df10 100644 --- a/src/servers/coopgamma.c +++ b/src/servers/coopgamma.c @@ -228,6 +228,11 @@ int connection_closed(int client) ssize_t updated = -1; for (j = k = 0; j < output->table_size; j += !remove, k++) { + if (j != k) + { + output->table_filters[j] = output->table_filters[k]; + output->table_sums[j] = output->table_sums[k]; + } remove = output->table_filters[j].client == client; remove = remove && (output->table_filters[j].lifespan == LIFESPAN_UNTIL_DEATH); if (remove) @@ -238,8 +243,6 @@ int connection_closed(int client) if (updated == -1) updated = (ssize_t)j; } - output->table_filters[j] = output->table_filters[k]; - output->table_sums[j] = output->table_sums[k]; } if (updated >= 0) if (flush_filters(output, (size_t)updated) < 0) -- cgit v1.2.3-70-g09d2