hostapd_cli: Add support for cli history file
Signed-off-by: Mikael Kanstrup <mikael.kanstrup@sonymobile.com>
This commit is contained in:
		
							parent
							
								
									c650f92916
								
							
						
					
					
						commit
						cf296a23d5
					
				
					 1 changed files with 19 additions and 2 deletions
				
			
		|  | @ -1611,17 +1611,34 @@ static char ** hostapd_cli_edit_completion_cb(void *ctx, const char *str, | ||||||
| 
 | 
 | ||||||
| static void hostapd_cli_interactive(void) | static void hostapd_cli_interactive(void) | ||||||
| { | { | ||||||
|  | 	char *hfile = NULL; | ||||||
|  | 	char *home; | ||||||
|  | 
 | ||||||
| 	printf("\nInteractive mode\n\n"); | 	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); | 	eloop_register_signal_terminate(hostapd_cli_eloop_terminate, NULL); | ||||||
| 	edit_init(hostapd_cli_edit_cmd_cb, hostapd_cli_edit_eof_cb, | 	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_register_timeout(ping_interval, 0, hostapd_cli_ping, NULL, NULL); | ||||||
| 
 | 
 | ||||||
| 	eloop_run(); | 	eloop_run(); | ||||||
| 
 | 
 | ||||||
| 	cli_txt_list_flush(&stations); | 	cli_txt_list_flush(&stations); | ||||||
| 	edit_deinit(NULL, NULL); | 	edit_deinit(hfile, NULL); | ||||||
|  | 	os_free(hfile); | ||||||
| 	eloop_cancel_timeout(hostapd_cli_ping, NULL, NULL); | 	eloop_cancel_timeout(hostapd_cli_ping, NULL, NULL); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Mikael Kanstrup
						Mikael Kanstrup