Do not listen unless configured with cli-listen. 66/666/2
authorEd Warnicke <[email protected]>
Sat, 2 Apr 2016 03:43:37 +0000 (22:43 -0500)
committerGerrit Code Review <[email protected]>
Wed, 6 Apr 2016 16:03:33 +0000 (16:03 +0000)
I noticed while mucking about with lsof that vpp
was listening on port 5000.

telnet 0 5000 revealed that it was listening for
the cli on that port.

Digging into the code, it turns out that if you
do not configure cli-listen (Example:

unix {
     cli-listen localhost:5002
}
)

Then vpp is listening on the first available port
starting at port 5000 anyway.  This is a simple
patch to *not* listen unless configured to do so.

Change-Id: Id7f6f4d69e0a1642d2767849a90b21f38f21ecaa
Signed-off-by: Ed Warnicke <[email protected]>
vlib/vlib/unix/cli.c

index f8b7f08..2cdd476 100644 (file)
@@ -686,7 +686,7 @@ unix_cli_config (vlib_main_t * vm, unformat_input_t * input)
   unix_main_t * um = &unix_main;
   unix_cli_main_t * cm = &unix_cli_main;
   int flags, standard_input_fd;
-  clib_error_t * error;
+  clib_error_t * error = 0;
 
   /* We depend on unix flags being set. */
   if ((error = vlib_call_config_function (vm, unix_config)))
@@ -704,14 +704,15 @@ unix_cli_config (vlib_main_t * vm, unformat_input_t * input)
       unix_cli_file_add (cm, "stdin", standard_input_fd);
     }
 
-  {
+  /* If we have socket config, LISTEN, otherwise, don't */
+  clib_socket_t * s = &um->cli_listen_socket;
+  if(s->config && s->config[0] != 0) {
     /* CLI listen. */
-    clib_socket_t * s = &um->cli_listen_socket;
     unix_file_t template = {0};
 
     s->flags = SOCKET_IS_SERVER; /* listen, don't connect */
-
     error = clib_socket_init (s);
+
     if (error)
       return error;