]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
hostapd_cli: Add support for cli history file
authorMikael Kanstrup <mikael.kanstrup@sonymobile.com>
Wed, 12 Oct 2016 12:18:53 +0000 (14:18 +0200)
committerJouni Malinen <j@w1.fi>
Sun, 16 Oct 2016 08:55:02 +0000 (11:55 +0300)
Signed-off-by: Mikael Kanstrup <mikael.kanstrup@sonymobile.com>
hostapd/hostapd_cli.c

index 5e6254244b3166316c72e647d0b7649f3ba2379b..00e73f9178fdb5e954c7b37e04b9f4adb68aa8f3 100644 (file)
@@ -1611,17 +1611,34 @@ static char ** hostapd_cli_edit_completion_cb(void *ctx, const char *str,
 
 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, NULL, NULL);
+                 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(NULL, NULL);
+       edit_deinit(hfile, NULL);
+       os_free(hfile);
        eloop_cancel_timeout(hostapd_cli_ping, NULL, NULL);
 }