use CALL_COMMAND_HANDLER instead of direct calls
[fw/openocd] / src / server / tcl_server.c
index 8d2a0f71d79aeb7f22e9d866a73dd1faa84d7376..c8da5bcadce31a1ed9bf44f5fa11517a9ecbf0b8 100644 (file)
 #include "config.h"
 #endif
 
-#include <stdarg.h>
 #include "tcl_server.h"
 
-#include "log.h"
-#include "command.h"
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <errno.h>
-#include <string.h>
-#include <ctype.h>
 
 #define TCL_SERVER_VERSION     "TCL Server 0.1"
 #define TCL_MAX_LINE           (4096)
@@ -43,11 +34,7 @@ typedef struct tcl_connection_s {
        int tc_outerror; /* flag an output error */
 } tcl_connection_t;
 
-extern Jim_Interp *interp;
-static unsigned short tcl_port = 0;
-
-/* commands */
-static int handle_tcl_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static unsigned short tcl_port = 6666;
 
 /* handlers */
 static int tcl_new_connection(connection_t *connection);
@@ -151,7 +138,7 @@ static int tcl_input(connection_t *connection)
                        if (memchr(result, '\n', reslen) == NULL)
                                tcl_output(connection, "\n", 1);
                }
-               
+
                tclc->tc_lineoffset = 0;
                tclc->tc_linedrop = 0;
        }
@@ -175,24 +162,23 @@ int tcl_init(void)
 
        if (tcl_port == 0)
        {
-               LOG_WARNING("no tcl port specified, using default port 6666");
-               tcl_port = 6666;
+               LOG_INFO("tcl port disabled");
+               return ERROR_OK;
        }
 
-       retval = add_service("tcl", CONNECTION_TCL, tcl_port, 1, tcl_new_connection, tcl_input, tcl_closed, NULL);
+       retval = add_service("tcl", CONNECTION_TCP, tcl_port, 1, tcl_new_connection, tcl_input, tcl_closed, NULL);
        return retval;
 }
 
-int tcl_register_commands(command_context_t *cmd_ctx)
+COMMAND_HANDLER(handle_tcl_port_command)
 {
-       register_command(cmd_ctx, NULL, "tcl_port", handle_tcl_port_command, COMMAND_CONFIG, "");
-       return ERROR_OK;
+       return CALL_COMMAND_HANDLER(server_port_command, &tcl_port);
 }
 
-static int handle_tcl_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+int tcl_register_commands(command_context_t *cmd_ctx)
 {
-       if (argc == 1) {
-               tcl_port = strtoul(args[0], NULL, 0);
-       }
+       register_command(cmd_ctx, NULL, "tcl_port",
+                       handle_tcl_port_command, COMMAND_CONFIG,
+                       "port on which to listen for incoming TCL syntax");
        return ERROR_OK;
 }