Set focus to monitor to ask password if line is multiplexed (Laurent Vivier)
This patch allows to display the "Password:" prompt if we use encrypted disk with "-nographic" option. It also modifies management of "-nographic" to not override user's choices for "-serial", "-parallel" and "-monitor". When qemu has to ask a password with "-nographic" with a multiplexed serial interface, it forces the focus to the monitor and restore original focus after. Signed-off-by: Laurent Vivier <Laurent.Vivier@bull.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4979 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
		
							parent
							
								
									e94f3a609e
								
							
						
					
					
						commit
						bc0129d978
					
				
							
								
								
									
										17
									
								
								monitor.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								monitor.c
									
									
									
									
									
								
							| @ -2722,12 +2722,19 @@ void monitor_readline(const char *prompt, int is_password, | ||||
|                       char *buf, int buf_size) | ||||
| { | ||||
|     int i; | ||||
|     int old_focus[MAX_MON]; | ||||
| 
 | ||||
|     if (is_password) { | ||||
|         for (i = 0; i < MAX_MON; i++) | ||||
|             if (monitor_hd[i] && monitor_hd[i]->focus == 0) | ||||
|         for (i = 0; i < MAX_MON; i++) { | ||||
|             old_focus[i] = 0; | ||||
|             if (monitor_hd[i]) { | ||||
|                 old_focus[i] = monitor_hd[i]->focus; | ||||
|                 monitor_hd[i]->focus = 0; | ||||
|                 qemu_chr_send_event(monitor_hd[i], CHR_EVENT_FOCUS); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     readline_start(prompt, is_password, monitor_readline_cb, NULL); | ||||
|     monitor_readline_buf = buf; | ||||
|     monitor_readline_buf_size = buf_size; | ||||
| @ -2735,4 +2742,10 @@ void monitor_readline(const char *prompt, int is_password, | ||||
|     while (monitor_readline_started) { | ||||
|         main_loop_wait(10); | ||||
|     } | ||||
|     /* restore original focus */ | ||||
|     if (is_password) { | ||||
|         for (i = 0; i < MAX_MON; i++) | ||||
|             if (old_focus[i]) | ||||
|                 monitor_hd[i]->focus = old_focus[i]; | ||||
|     } | ||||
| } | ||||
|  | ||||
							
								
								
									
										12
									
								
								vl.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								vl.c
									
									
									
									
									
								
							| @ -8381,9 +8381,6 @@ int main(int argc, char **argv) | ||||
|                 } | ||||
|                 break; | ||||
|             case QEMU_OPTION_nographic: | ||||
|                 serial_devices[0] = "stdio"; | ||||
|                 parallel_devices[0] = "null"; | ||||
|                 monitor_device = "stdio"; | ||||
|                 nographic = 1; | ||||
|                 break; | ||||
| #ifdef CONFIG_CURSES | ||||
| @ -8781,6 +8778,15 @@ int main(int argc, char **argv) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     if (nographic) { | ||||
|        if (serial_device_index == 0) | ||||
|            serial_devices[0] = "stdio"; | ||||
|        if (parallel_device_index == 0) | ||||
|            parallel_devices[0] = "null"; | ||||
|        if (strncmp(monitor_device, "vc", 2) == 0) | ||||
|            monitor_device = "stdio"; | ||||
|     } | ||||
| 
 | ||||
| #ifndef _WIN32 | ||||
|     if (daemonize) { | ||||
| 	pid_t pid; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 aliguori
						aliguori