summaryrefslogtreecommitdiff
path: root/src/server/telnet_server.c
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-10-31 13:40:02 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-10-31 13:40:02 +0000
commitc2120ba28a7f3c473c05403e6015c95bec406336 (patch)
tree548754e1b28c4b752e98f3da263ab7d5853ed14a /src/server/telnet_server.c
parente4218ebb8f7f5bf27578198e16ae5add99edeb75 (diff)
downloadopenocd+libswd-c2120ba28a7f3c473c05403e6015c95bec406336.tar.gz
openocd+libswd-c2120ba28a7f3c473c05403e6015c95bec406336.tar.bz2
openocd+libswd-c2120ba28a7f3c473c05403e6015c95bec406336.tar.xz
openocd+libswd-c2120ba28a7f3c473c05403e6015c95bec406336.zip
Added telnet_async command to enable/disable asynchronous
messages. git-svn-id: svn://svn.berlios.de/openocd/trunk@1117 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/server/telnet_server.c')
-rw-r--r--src/server/telnet_server.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/server/telnet_server.c b/src/server/telnet_server.c
index 85e1957f..ef22348a 100644
--- a/src/server/telnet_server.c
+++ b/src/server/telnet_server.c
@@ -48,6 +48,11 @@ static unsigned short telnet_port = 0;
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 int telnet_async()
+{
+ return jim_global_long("telnet_async_state");
+}
+
static char *negotiate =
"\xFF\xFB\x03" /* IAC WILL Suppress Go Ahead */
"\xFF\xFB\x01" /* IAC WILL Echo */
@@ -186,7 +191,8 @@ int telnet_new_connection(connection_t *connection)
telnet_connection->next_history = 0;
telnet_connection->current_history = 0;
- log_add_callback(telnet_log_callback, connection);
+ if (telnet_async())
+ log_add_callback(telnet_log_callback, connection);
@@ -341,7 +347,15 @@ int telnet_input(connection_t *connection)
t_con->line_size = 0;
t_con->line_cursor = -1; /* to supress prompt in log callback during command execution */
+
+ if (!telnet_async())
+ log_add_callback(telnet_log_callback, connection);
+
retval = command_run_line(command_context, t_con->line);
+
+ if (!telnet_async())
+ log_remove_callback(telnet_log_callback, connection);
+
t_con->line_cursor = 0;
if (retval == ERROR_COMMAND_CLOSE_CONNECTION)