// // Created by xajhu on 2021/6/29 0029. // #include #include #include "cmdline.h" #include "task_manager.h" #include "init.h" #include "user_info.h" #include "lwip/tcpip.h" #include "open_dhcp/dhcpd.h" #if LWIP_ON static void test_init(void *arg) { /* remove compiler warning */ sys_sem_t *init_sem; init_sem = (sys_sem_t *)arg; srand((unsigned int)time(0)); sys_sem_signal(init_sem); } static void lwip_init_env() { err_t err; sys_sem_t init_sem; err = sys_sem_new(&init_sem, 0); LWIP_UNUSED_ARG(err); tcpip_init(test_init, &init_sem); sys_sem_wait(&init_sem); sys_sem_free(&init_sem); } #endif int main(int argc, char **argv) { #if OPENDHCPD_ON return dhcpd_main(argc, argv); #else uv_setup_args(argc, argv); setvbuf(stdout, NULL, _IONBF, 0); menu_run(argc, argv); #if LWIP_ON lwip_init_env(); user_info_init(); pppoe_session_init(); #endif task_manager_run(); user_uninit(); return 0; #endif }