X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fserver%2Ftelnet_server.c;h=c409ec0a1cde62b6309610af0557b6c64cb8496b;hp=b6b38a0cf56afa842ce56291477e5dd43188acf8;hb=cfc4d5c6b7b6f8f82dc5bbf3ee661c179814666e;hpb=8b994145b849c40b0a195c3fb332b9770b2f9097 diff --git a/src/server/telnet_server.c b/src/server/telnet_server.c index b6b38a0cf5..c409ec0a1c 100644 --- a/src/server/telnet_server.c +++ b/src/server/telnet_server.c @@ -32,9 +32,6 @@ static unsigned short telnet_port = 4444; -int handle_exit_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_telnet_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); - static char *negotiate = "\xFF\xFB\x03" /* IAC WILL Suppress Go Ahead */ "\xFF\xFB\x01" /* IAC WILL Echo */ @@ -104,7 +101,7 @@ int telnet_output(struct command_context_s *cmd_ctx, const char* line) return telnet_outputline(connection, line); } -void telnet_log_callback(void *priv, const char *file, int line, +void telnet_log_callback(void *priv, const char *file, unsigned line, const char *function, const char *string) { connection_t *connection = priv; @@ -597,6 +594,7 @@ int telnet_init(char *banner) if (telnet_port == 0) { LOG_INFO("telnet port disabled"); + free(telnet_service); return ERROR_OK; } @@ -607,32 +605,28 @@ int telnet_init(char *banner) return ERROR_OK; } -int telnet_register_commands(command_context_t *command_context) +/* daemon configuration command telnet_port */ +COMMAND_HANDLER(handle_telnet_port_command) { - register_command(command_context, NULL, "exit", handle_exit_command, - COMMAND_EXEC, "exit telnet session"); - - register_command(command_context, NULL, "telnet_port", handle_telnet_port_command, - COMMAND_ANY, "port on which to listen for incoming telnet connections"); + return server_port_command(cmd_ctx, cmd, args, argc, &telnet_port); +} - return ERROR_OK; +COMMAND_HANDLER(handle_exit_command) +{ + return ERROR_COMMAND_CLOSE_CONNECTION; } -/* daemon configuration command telnet_port */ -int handle_telnet_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +int telnet_register_commands(command_context_t *command_context) { - if (argc == 0) - { - command_print(cmd_ctx, "%d", telnet_port); - return ERROR_OK; - } + register_command(command_context, NULL, "exit", + &handle_exit_command, COMMAND_EXEC, + "exit telnet session"); - telnet_port = strtoul(args[0], NULL, 0); + register_command(command_context, NULL, "telnet_port", + &handle_telnet_port_command, COMMAND_ANY, + "port on which to listen for incoming telnet connections"); return ERROR_OK; } -int handle_exit_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) -{ - return ERROR_COMMAND_CLOSE_CONNECTION; -} +