diff options
Diffstat (limited to 'src/openocd.c')
-rw-r--r-- | src/openocd.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/openocd.c b/src/openocd.c index 758febb4..b0dd21ab 100644 --- a/src/openocd.c +++ b/src/openocd.c @@ -277,30 +277,28 @@ static int openocd_thread(int argc, char *argv[], struct command_context *cmd_ct int ret; if (parse_cmdline_args(cmd_ctx, argc, argv) != ERROR_OK) - return EXIT_FAILURE; + return ERROR_FAIL; if (server_preinit() != ERROR_OK) - return EXIT_FAILURE; + return ERROR_FAIL; ret = parse_config_file(cmd_ctx); if (ret != ERROR_OK) - return EXIT_FAILURE; + return ERROR_FAIL; ret = server_init(cmd_ctx); if (ERROR_OK != ret) - return EXIT_FAILURE; + return ERROR_FAIL; if (init_at_startup) { ret = command_run_line(cmd_ctx, "init"); if (ERROR_OK != ret) - return EXIT_FAILURE; + return ERROR_FAIL; } server_loop(cmd_ctx); - server_quit(); - - return ret; + return server_quit(); } /* normally this is the main() function entry, but if OpenOCD is linked @@ -338,5 +336,10 @@ int openocd_main(int argc, char *argv[]) adapter_quit(); + if (ERROR_FAIL == ret) + return EXIT_FAILURE; + else if (ERROR_OK != ret) + exit_on_signal(ret); + return ret; } |