aboutsummaryrefslogtreecommitdiff
path: root/src/openocd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/openocd.c')
-rw-r--r--src/openocd.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/openocd.c b/src/openocd.c
index b0dd21ab..4d4dc2c8 100644
--- a/src/openocd.c
+++ b/src/openocd.c
@@ -283,7 +283,9 @@ static int openocd_thread(int argc, char *argv[], struct command_context *cmd_ct
return ERROR_FAIL;
ret = parse_config_file(cmd_ctx);
- if (ret != ERROR_OK)
+ if (ret == ERROR_COMMAND_CLOSE_CONNECTION)
+ return ERROR_OK;
+ else if (ret != ERROR_OK)
return ERROR_FAIL;
ret = server_init(cmd_ctx);
@@ -296,9 +298,15 @@ static int openocd_thread(int argc, char *argv[], struct command_context *cmd_ct
return ERROR_FAIL;
}
- server_loop(cmd_ctx);
+ ret = server_loop(cmd_ctx);
+
+ int last_signal = server_quit();
+ if (last_signal != ERROR_OK)
+ return last_signal;
- return server_quit();
+ if (ret != ERROR_OK)
+ return ERROR_FAIL;
+ return ERROR_OK;
}
/* normally this is the main() function entry, but if OpenOCD is linked