diff options
author | Zachary T Welch <zw@superlucidity.net> | 2009-11-29 14:04:21 -0800 |
---|---|---|
committer | Zachary T Welch <zw@superlucidity.net> | 2009-11-30 16:29:24 -0800 |
commit | 64653b0bbb0b2ac87de83d867f241360087b7588 (patch) | |
tree | b35650fb22ca24328193704f156a1d7b9e2f5174 /src/openocd.c | |
parent | ec6c1962c2398a574a5c413b41483370347b9f5b (diff) | |
download | riscv-openocd-64653b0bbb0b2ac87de83d867f241360087b7588.zip riscv-openocd-64653b0bbb0b2ac87de83d867f241360087b7588.tar.gz riscv-openocd-64653b0bbb0b2ac87de83d867f241360087b7588.tar.bz2 |
move server_init() to openocd_main()
Moves the telnet and TCL server startup to server_init(), moving their
respective command registration in to server_register_commands().
Adds proper error checking for these particular startup processes.
Moves the core server startup to openocd_main(), improving related error
checking and preparing to defer 'init'.
Diffstat (limited to 'src/openocd.c')
-rw-r--r-- | src/openocd.c | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/src/openocd.c b/src/openocd.c index 7f6af4c..287a819 100644 --- a/src/openocd.c +++ b/src/openocd.c @@ -38,9 +38,7 @@ #include "mflash.h" #include "server.h" -#include "telnet_server.h" #include "gdb_server.h" -#include "tcl_server.h" #include "httpd.h" #ifdef HAVE_STRINGS_H @@ -149,13 +147,8 @@ COMMAND_HANDLER(handle_init_command) return ERROR_FAIL; LOG_DEBUG("pld init complete"); - /* initialize tcp server */ - server_init(); - /* initialize telnet subsystem */ - telnet_init("Open On-Chip Debugger"); gdb_target_add_all(all_targets); - tcl_init(); /* allows tcl to just connect without going thru telnet */ target_register_event_callback(log_target_callback_event_handler, CMD_CTX); @@ -194,9 +187,7 @@ struct command_context *setup_command_handler(void) register_commands(cmd_ctx, NULL, openocd_command_handlers); /* register subsystem commands */ server_register_commands(cmd_ctx); - telnet_register_commands(cmd_ctx); gdb_register_commands(cmd_ctx); - tcl_register_commands(cmd_ctx); /* tcl server commands */ log_register_commands(cmd_ctx); jtag_register_commands(cmd_ctx); xsvf_register_commands(cmd_ctx); @@ -259,7 +250,7 @@ int openocd_main(int argc, char *argv[]) return EXIT_FAILURE; ret = parse_config_file(cmd_ctx); - if ((ret != ERROR_OK) && (ret != ERROR_COMMAND_CLOSE_CONNECTION)) + if (ret != ERROR_OK) return EXIT_FAILURE; #if BUILD_HTTPD @@ -267,16 +258,21 @@ int openocd_main(int argc, char *argv[]) return EXIT_FAILURE; #endif - if (ret != ERROR_COMMAND_CLOSE_CONNECTION) + ret = server_init(); + if (ERROR_OK != ret) + return EXIT_FAILURE; + + if (1) { - if (command_run_line(cmd_ctx, "init") != ERROR_OK) - return EXIT_FAILURE; + ret = command_run_line(cmd_ctx, "init"); + if (ERROR_OK != ret) + ret = EXIT_FAILURE; + } - /* handle network connections */ + /* handle network connections */ + if (ERROR_OK == ret) server_loop(cmd_ctx); - } - /* shut server down */ server_quit(); #if BUILD_HTTPD @@ -288,6 +284,5 @@ int openocd_main(int argc, char *argv[]) /* free commandline interface */ command_done(cmd_ctx); - - return EXIT_SUCCESS; + return ret; } |