diff --git a/cc3200/serverstask.c b/cc3200/serverstask.c index ea56589eab..55c0bbfbf8 100644 --- a/cc3200/serverstask.c +++ b/cc3200/serverstask.c @@ -87,31 +87,30 @@ void TASK_Servers (void *pvParameters) { for ( ;; ) { - if (servers_data.enabled) { - if (servers_data.do_disable) { - // disable network services - telnet_disable(); - ftp_disable(); - // now clear the flags - servers_data.do_disable = false; - servers_data.enabled = false; - } - else { - if (cycle) { - telnet_run(); - } - else { - ftp_run(); - } - } - } - else if (servers_data.do_enable) { + if (servers_data.do_enable) { // enable network services telnet_enable(); ftp_enable(); // now set/clear the flags servers_data.enabled = true; servers_data.do_enable = false; + servers_data.do_disable = false; + } + else if (servers_data.enabled && servers_data.do_disable) { + // disable network services + telnet_disable(); + ftp_disable(); + // now clear the flags + servers_data.do_disable = false; + servers_data.enabled = false; + servers_data.do_enable = false; + } + + if (cycle) { + telnet_run(); + } + else { + ftp_run(); } // move to the next cycle @@ -125,6 +124,7 @@ void TASK_Servers (void *pvParameters) { void servers_start (void) { servers_data.do_disable = false; servers_data.do_enable = true; + HAL_Delay (SERVERS_CYCLE_TIME_MS * 5); } void servers_stop (void) { @@ -133,6 +133,7 @@ void servers_stop (void) { do { HAL_Delay (SERVERS_CYCLE_TIME_MS); } while (servers_are_enabled()); + HAL_Delay (SERVERS_CYCLE_TIME_MS * 5); } bool servers_are_enabled (void) {