}
/**
- * cui_ked_on_exit - The ked on_exit callback.
+ * cui_boot_editor_on_exit - The boot_editor on_exit callback.
*/
-static void cui_ked_on_exit(struct ked *ked, enum ked_result ked_result,
+static void cui_boot_editor_on_exit(struct boot_editor *boot_editor, enum boot_editor_result boot_editor_result,
struct pb_kexec_data *kd)
{
- struct cui *cui = cui_from_arg(ked->scr.ui_ctx);
+ struct cui *cui = cui_from_arg(boot_editor->scr.ui_ctx);
- if (ked_result == ked_update) {
+ if (boot_editor_result == boot_editor_update) {
struct pmenu_item *i = pmenu_find_selected(cui->main);
struct cui_opt_data *cod = cod_from_item(i);
char *name;
cui_set_current(cui, &cui->main->scr);
- talloc_free(ked);
+ talloc_free(boot_editor);
}
-int cui_ked_run(struct pmenu_item *item)
+int cui_boot_editor_run(struct pmenu_item *item)
{
struct cui *cui = cui_from_item(item);
struct cui_opt_data *cod = cod_from_item(item);
- struct ked *ked;
+ struct boot_editor *boot_editor;
- ked = ked_init(cui, cod->kd, cui_ked_on_exit);
- cui_set_current(cui, &ked->scr);
+ boot_editor = boot_editor_init(cui, cod->kd, cui_boot_editor_on_exit);
+ cui_set_current(cui, &boot_editor->scr);
return 0;
}
insert_pt = pmenu_grow(menu, 1);
i = pmenu_item_alloc(menu);
- i->on_edit = cui_ked_run;
+ i->on_edit = cui_boot_editor_run;
i->on_execute = cui_run_kexec;
i->data = cod = talloc_zero(i, struct cui_opt_data);
opt->ui_info = i = pmenu_item_alloc(cui->main);
- i->on_edit = cui_ked_run;
+ i->on_edit = cui_boot_editor_run;
i->on_execute = cui_run_kexec;
i->data = cod = talloc(i, struct cui_opt_data);
cui->on_kexec = on_kexec;
cui->timer.handle_timeout = cui_handle_timeout;
cui->dry_run = dry_run;
+ cui->waitset = waitset_create(cui);
/* Loop here for scripts that just started the server. */
-start_deamon:
- for (i = 10; i; i--) {
+retry_start:
+ for (i = start_deamon ? 2 : 10; i; i--) {
client = discover_client_init(&cui_client_ops, cui);
- if (client)
+ if (client || !i)
break;
pb_log("%s: waiting for server %d\n", __func__, i);
sleep(1);
result = pb_start_daemon();
if (!result)
- goto start_deamon;
+ goto retry_start;
pb_log("%s: discover_client_init failed.\n", __func__);
fprintf(stderr, "%s: error: discover_client_init failed.\n",
atexit(nc_atexit);
nc_start();
- waiter_register(discover_client_get_fd(client), WAIT_IN,
- cui_client_process_socket, client);
+ waiter_register(cui->waitset, discover_client_get_fd(client), WAIT_IN,
+ cui_client_process_socket, client);
- waiter_register(STDIN_FILENO, WAIT_IN, cui_process_key, cui);
+ waiter_register(cui->waitset, STDIN_FILENO, WAIT_IN,
+ cui_process_key, cui);
if (js_map) {
cui->pjs = pjs_init(cui, js_map);
if (cui->pjs)
- waiter_register(pjs_get_fd(cui->pjs), WAIT_IN,
- cui_process_js, cui);
+ waiter_register(cui->waitset, pjs_get_fd(cui->pjs),
+ WAIT_IN, cui_process_js, cui);
}
return cui;
cui->current->post(cui->current);
while (1) {
- int result = waiter_poll();
+ int result = waiter_poll(cui->waitset);
if (result < 0 && errno != EINTR) {
pb_log("%s: poll: %s\n", __func__, strerror(errno));