aboutsummaryrefslogtreecommitdiff
path: root/cc3200/telnet
diff options
context:
space:
mode:
authorDaniel Campora2015-05-23 19:56:22 +0200
committerDaniel Campora2015-05-24 11:44:06 +0200
commit9f8c5456befbf33cf8e02de99b6b9f5a417f006a (patch)
treedc1339e90c801a2361dd19b0a3b4430a930a1ae5 /cc3200/telnet
parent0d31bbc7fa3bdf10a14d92bb010a5016dc6101af (diff)
cc3200: Reset the servers and close user sockets on WLAN disconection.
This is needed to avoid half-open connections.
Diffstat (limited to 'cc3200/telnet')
-rw-r--r--cc3200/telnet/telnet.c15
-rw-r--r--cc3200/telnet/telnet.h1
2 files changed, 8 insertions, 8 deletions
diff --git a/cc3200/telnet/telnet.c b/cc3200/telnet/telnet.c
index 0edc00cdb..3b77d6be0 100644
--- a/cc3200/telnet/telnet.c
+++ b/cc3200/telnet/telnet.c
@@ -132,7 +132,6 @@ static void telnet_process (void);
static int telnet_process_credential (char *credential, _i16 rxLen);
static void telnet_parse_input (uint8_t *str, int16_t *len);
static bool telnet_send_with_retries (int16_t sd, const void *pBuf, int16_t len);
-static void telnet_reset (void);
static void telnet_reset_buffer (void);
/******************************************************************************
@@ -293,6 +292,13 @@ void telnet_disable (void) {
telnet_data.state = E_TELNET_STE_DISABLED;
}
+void telnet_reset (void) {
+ // close the connection and start all over again
+ servers_close_socket(&telnet_data.n_sd);
+ servers_close_socket(&telnet_data.sd);
+ telnet_data.state = E_TELNET_STE_START;
+}
+
bool telnet_is_enabled (void) {
return telnet_data.enabled;
}
@@ -499,13 +505,6 @@ static bool telnet_send_with_retries (int16_t sd, const void *pBuf, int16_t len)
return false;
}
-static void telnet_reset (void) {
- // close the connection and start all over again
- servers_close_socket(&telnet_data.n_sd);
- servers_close_socket(&telnet_data.sd);
- telnet_data.state = E_TELNET_STE_START;
-}
-
static void telnet_reset_buffer (void) {
// erase any characters present in the current line
memset (telnet_data.rxBuffer, '\b', TELNET_RX_BUFFER_SIZE / 2);
diff --git a/cc3200/telnet/telnet.h b/cc3200/telnet/telnet.h
index 913cd73e1..983a774c8 100644
--- a/cc3200/telnet/telnet.h
+++ b/cc3200/telnet/telnet.h
@@ -38,6 +38,7 @@ extern bool telnet_rx_any (void);
extern int telnet_rx_char (void);
extern void telnet_enable (void);
extern void telnet_disable (void);
+extern void telnet_reset (void);
extern bool telnet_is_enabled (void);
extern bool telnet_is_active (void);