diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/vlib/unix/cli.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/vlib/unix/cli.c b/src/vlib/unix/cli.c index b268db57448..42c13740e20 100644 --- a/src/vlib/unix/cli.c +++ b/src/vlib/unix/cli.c @@ -60,6 +60,7 @@ #include <sys/types.h> #include <unistd.h> #include <limits.h> +#include <netinet/tcp.h> /** ANSI escape code. */ #define ESC "\x1b" @@ -1294,7 +1295,7 @@ unix_cli_process_telnet (unix_main_t * um, case DO: case DONT: /* Expect 3 bytes */ - if (vec_len (input_vector) < 3) + if (len < 3) return -1; /* want more bytes */ consume = 2; @@ -2763,11 +2764,17 @@ unix_cli_listen_read_ready (clib_file_t * uf) clib_error_t *error; unix_cli_file_t *cf; u32 cf_index; + int one; error = clib_socket_accept (s, &client); if (error) return error; + /* Disable Nagle, ignore any errors doing so eg on PF_LOCAL socket */ + one = 1; + setsockopt (client.fd, IPPROTO_TCP, TCP_NODELAY, + (void *) &one, sizeof (one)); + client_name = (char *) format (0, "%U%c", format_sockaddr, &client.peer, 0); cf_index = unix_cli_file_add (cm, client_name, client.fd); |