diff options
| author | Daniel Campora | 2015-05-23 19:56:22 +0200 |
|---|---|---|
| committer | Daniel Campora | 2015-05-24 11:44:06 +0200 |
| commit | 9f8c5456befbf33cf8e02de99b6b9f5a417f006a (patch) | |
| tree | dc1339e90c801a2361dd19b0a3b4430a930a1ae5 /cc3200/serverstask.c | |
| parent | 0d31bbc7fa3bdf10a14d92bb010a5016dc6101af (diff) | |
cc3200: Reset the servers and close user sockets on WLAN disconection.
This is needed to avoid half-open connections.
Diffstat (limited to 'cc3200/serverstask.c')
| -rw-r--r-- | cc3200/serverstask.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/cc3200/serverstask.c b/cc3200/serverstask.c index 80f22987f..732e6bbcc 100644 --- a/cc3200/serverstask.c +++ b/cc3200/serverstask.c @@ -53,12 +53,13 @@ typedef struct { volatile bool enabled; volatile bool do_disable; volatile bool do_enable; + volatile bool do_reset; }servers_Data_t; /****************************************************************************** DECLARE PRIVATE DATA ******************************************************************************/ -static servers_Data_t servers_data = {.enabled = false, .do_disable = false, .do_enable = false}; +static servers_Data_t servers_data = {.enabled = false, .do_disable = false, .do_enable = false, .do_reset = false}; static volatile bool sleep_sockets = false; /****************************************************************************** @@ -103,11 +104,21 @@ void TASK_Servers (void *pvParameters) { servers_data.enabled = false; } - if (cycle) { - telnet_run(); + if (servers_data.do_reset) { + telnet_reset(); + ftp_reset(); + servers_data.do_reset = false; + // resetting the servers is needed to preven half-open sockets + // and we should also close all user sockets + modusocket_close_all_user_sockets(); } else { - ftp_run(); + if (cycle) { + telnet_run(); + } + else { + ftp_run(); + } } // set the alive flag for the wdt @@ -137,6 +148,10 @@ void servers_stop (void) { HAL_Delay (SERVERS_CYCLE_TIME_MS * 5); } +void servers_reset (void) { + servers_data.do_reset = true; +} + bool servers_are_enabled (void) { return servers_data.enabled; } |
