static void dhcp_cli(int argc, char **argv) { void *intrfc_handle = NULL; int wait_for_sec = WAIT_FOR_UAP_START; if (argc >= 3 && string_equal(argv[2], "start")) { if (!strncmp(argv[1], "mlan0", 5)) intrfc_handle = net_get_mlan_handle(); else if (!strncmp(argv[1], "uap0", 4)) { while(wait_for_sec) { wait_for_sec--; if (!is_uap_started()) { if (wait_for_sec == 0) { dhcp_e("unable" " to start DHCP server. Retry" " after uAP is started"); return; } } else break; os_thread_sleep(os_msec_to_ticks(1000)); } intrfc_handle = net_get_uap_handle(); } if (dhcp_server_start(intrfc_handle)) dhcp_e("unable to " "start DHCP server"); } else if (argc >= 3 && string_equal(argv[2], "stop")) dhcp_server_stop(); else { wmprintf("Usage: %s %s\r\n", DHCPS_COMMAND, DHCPS_HELP); wmprintf("Error: invalid argument\r\n"); } }
//which means stop UAP int JSON_DELEGATE(stop_diag_mode)(jsmn_node_t* pjn, fp_json_delegate_ack ack, void* ctx) { if(is_uap_started()) { LOG_DEBUG("APP send stop diag command to stop uap \r\n"); app_uap_stop(); } json_delegate_ack_result(ack,ctx,0); return 0; }