]> git.ipfire.org Git - thirdparty/bird.git/commit
CLI: Fix for long-lived sessions during high loads
authorOndrej Zajicek <santiago@crfreenet.org>
Sat, 10 Dec 2022 16:32:42 +0000 (17:32 +0100)
committerOndrej Zajicek <santiago@crfreenet.org>
Sat, 10 Dec 2022 16:32:42 +0000 (17:32 +0100)
commit4c19a8a984c39c7269cf497808735f147243800b
tree62ae5d14b3225a8366b62d8451c1b55a27aa5986
parent1124f39f731610687eb8fdd6d7079c20063809c1
CLI: Fix for long-lived sessions during high loads

When there is a continuos stream of CLI commands, cli_get_command()
always returns 1 (there is a new command). Anyway, the socket receive
buffer was reset only when there was no command at all, leading to a
strange behavior: after a while, the CLI receive buffer came to its end,
then read() was called with zero size buffer, it returned 0 which was
interpreted as EOF.

The patch fixes that by resetting the buffer position after each command
and moving remaining data at the beginning of buffer.

Thanks to Maria Matejka for examining the bug and for the original bugfix.
nest/cli.h
sysdep/unix/main.c