From ebc28710051402e38a4743dfde20f1d1c2f7a875 Mon Sep 17 00:00:00 2001 From: Antonio Borneo Date: Mon, 20 Apr 2020 23:54:38 +0200 Subject: [PATCH] server: set tcp port and bind address before init All the servers open the listening socket during openocd "init"; it's not possible to change the tcp port or the bind address after "init". In current code, the call order during "init" permits to change the port and bind address of tcl and telnet server if the related command is issued after "init" in the same script or on openocd command line. This is not guaranteed to work if the call order during "init" changes, so it's incorrect. Change the commands "bindto" and "*_port" to COMMAND_CONFIG. Change-Id: Id88f225a67a872b4bcaf3b799466bddedc248015 Signed-off-by: Antonio Borneo Reported-by: Christopher Head Fixes: https://sourceforge.net/p/openocd/tickets/264/ Reviewed-on: http://openocd.zylin.com/5595 Reviewed-by: Christopher Head Tested-by: jenkins --- src/server/gdb_server.c | 2 +- src/server/server.c | 2 +- src/server/tcl_server.c | 2 +- src/server/telnet_server.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index 6f326fe24..f9fe4c293 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -3739,7 +3739,7 @@ static const struct command_registration gdb_command_handlers[] = { { .name = "gdb_port", .handler = handle_gdb_port_command, - .mode = COMMAND_ANY, + .mode = COMMAND_CONFIG, .help = "Normally gdb listens to a TCP/IP port. Each subsequent GDB " "server listens for the next port number after the " "base port number specified. " diff --git a/src/server/server.c b/src/server/server.c index f32a9c76f..07b7ae487 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -799,7 +799,7 @@ static const struct command_registration server_command_handlers[] = { { .name = "bindto", .handler = &handle_bindto_command, - .mode = COMMAND_ANY, + .mode = COMMAND_CONFIG, .usage = "[name]", .help = "Specify address by name on which to listen for " "incoming TCP/IP connections", diff --git a/src/server/tcl_server.c b/src/server/tcl_server.c index 1735c43ff..1ecb827a1 100644 --- a/src/server/tcl_server.c +++ b/src/server/tcl_server.c @@ -331,7 +331,7 @@ static const struct command_registration tcl_command_handlers[] = { { .name = "tcl_port", .handler = handle_tcl_port_command, - .mode = COMMAND_ANY, + .mode = COMMAND_CONFIG, .help = "Specify port on which to listen " "for incoming Tcl syntax. " "Read help on 'gdb_port'.", diff --git a/src/server/telnet_server.c b/src/server/telnet_server.c index a864f5fd2..bfabae833 100644 --- a/src/server/telnet_server.c +++ b/src/server/telnet_server.c @@ -705,7 +705,7 @@ static const struct command_registration telnet_command_handlers[] = { { .name = "telnet_port", .handler = handle_telnet_port_command, - .mode = COMMAND_ANY, + .mode = COMMAND_CONFIG, .help = "Specify port on which to listen " "for incoming telnet connections. " "Read help on 'gdb_port'.",