[PATCH] ui/ncurses: Remember to abort boot on server connect

Samuel Mendoza-Jonas sam at mendozajonas.com
Thu May 26 16:13:27 AEST 2016


The UI can now come up before the server, but in order for a key press
to cancel autoboot a key has to be pressed once the server connects.
Instead remember to cancel autoboot if a key has been pressed at any
point.

Signed-off-by: Samuel Mendoza-Jonas <sam at mendozajonas.com>
---
 ui/ncurses/nc-cui.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/ui/ncurses/nc-cui.c b/ui/ncurses/nc-cui.c
index a2de48e..bd727a5 100644
--- a/ui/ncurses/nc-cui.c
+++ b/ui/ncurses/nc-cui.c
@@ -423,11 +423,16 @@ static int cui_process_key(void *arg)
 		if (c == ERR)
 			break;
 
-		if (!cui->has_input && cui->client) {
-			pb_log("UI input received (key = %d), aborting "
-					"default boot\n", c);
-			discover_client_cancel_default(cui->client);
+		if (!cui->has_input) {
 			cui->has_input = true;
+			if (cui->client) {
+				pb_log("UI input received (key = %d), aborting "
+					"default boot\n", c);
+				discover_client_cancel_default(cui->client);
+			} else {
+				pb_log("UI input received (key = %d), aborting "
+					"once server connects\n", c);
+			}
 		}
 
 		if (process_global_keys(cui, c))
@@ -927,6 +932,11 @@ static int cui_server_wait(void *arg)
 	} else {
 		nc_scr_status_printf(cui->current, "Info: Connected to server!");
 		talloc_steal(cui, cui->client);
+
+		if (cui->has_input) {
+			pb_log("Aborting default boot on server connect\n");
+			discover_client_cancel_default(cui->client);
+		}
 	}
 
 	return 0;
-- 
2.8.2



More information about the Petitboot mailing list