static void hostapd_cli_interactive(void) { char *hfile = NULL; char *home; printf("\nInteractive mode\n\n"); #ifdef CONFIG_HOSTAPD_CLI_HISTORY_DIR home = CONFIG_HOSTAPD_CLI_HISTORY_DIR; #else /* CONFIG_HOSTAPD_CLI_HISTORY_DIR */ home = getenv("HOME"); #endif /* CONFIG_HOSTAPD_CLI_HISTORY_DIR */ if (home) { const char *fname = ".hostapd_cli_history"; int hfile_len = os_strlen(home) + 1 + os_strlen(fname) + 1; hfile = os_malloc(hfile_len); if (hfile) os_snprintf(hfile, hfile_len, "%s/%s", home, fname); } eloop_register_signal_terminate(hostapd_cli_eloop_terminate, NULL); edit_init(hostapd_cli_edit_cmd_cb, hostapd_cli_edit_eof_cb, hostapd_cli_edit_completion_cb, NULL, hfile, NULL); eloop_register_timeout(ping_interval, 0, hostapd_cli_ping, NULL, NULL); eloop_run(); cli_txt_list_flush(&stations); edit_deinit(hfile, NULL); os_free(hfile); eloop_cancel_timeout(hostapd_cli_ping, NULL, NULL); }
static void wlantest_cli_interactive(int s) { struct wlantest_cli cli; char *home, *hfile = NULL; if (eloop_init()) return; home = getenv("HOME"); if (home) { const char *fname = ".wlantest_cli_history"; int hfile_len = os_strlen(home) + 1 + os_strlen(fname) + 1; hfile = os_malloc(hfile_len); if (hfile) os_snprintf(hfile, hfile_len, "%s/%s", home, fname); } cli.s = s; eloop_register_signal_terminate(wlantest_cli_eloop_terminate, &cli); edit_init(wlantest_cli_edit_cmd_cb, wlantest_cli_edit_eof_cb, wlantest_cli_edit_completion_cb, &cli, hfile, NULL); eloop_run(); edit_deinit(hfile, NULL); os_free(hfile); eloop_destroy(); }
static void hostapd_cli_interactive(void) { printf("\nInteractive mode\n\n"); eloop_register_signal_terminate(hostapd_cli_eloop_terminate, NULL); edit_init(hostapd_cli_edit_cmd_cb, hostapd_cli_edit_eof_cb, NULL, NULL, NULL, NULL); eloop_register_timeout(ping_interval, 0, hostapd_cli_ping, NULL, NULL); eloop_run(); edit_deinit(NULL, NULL); eloop_cancel_timeout(hostapd_cli_ping, NULL, NULL); }