diff --git a/src/proxy/rom_verify/main.cc b/src/proxy/rom_verify/main.cc index 8645f81..b6cfb24 100644 --- a/src/proxy/rom_verify/main.cc +++ b/src/proxy/rom_verify/main.cc @@ -170,6 +170,9 @@ struct Rom_hash::Main { config_rom.sigh(config_handler); session_requests.sigh(session_request_handler); + + /* handle requests that have queued before or during construction */ + handle_session_requests(); } }; diff --git a/src/server/chroot/component.cc b/src/server/chroot/component.cc index 5d6f3d5..32a1a57 100644 --- a/src/server/chroot/component.cc +++ b/src/server/chroot/component.cc @@ -125,6 +125,9 @@ struct Chroot::Main { config_rom.sigh(config_sig_rec.manage(&config_sig_ctx)); session_requests.sigh(session_request_handler); + + /* handle requests that have queued before or during construction */ + handle_session_requests(); } ~Main() { @@ -190,6 +193,10 @@ struct Chroot::Main char new_args[ARGS_MAX_LEN]; strncpy(new_args, args.string(), ARGS_MAX_LEN); + + /* sacrifice the label to make space for the root argument */ + Arg_string::remove_arg(new_args, "label"); + Arg_string::set_arg_string(new_args, ARGS_MAX_LEN, "root", new_root); Affinity affinity; diff --git a/src/server/rom_fallback/component.cc b/src/server/rom_fallback/component.cc index dd05cb4..0ef45a4 100644 --- a/src/server/rom_fallback/component.cc +++ b/src/server/rom_fallback/component.cc @@ -111,6 +111,9 @@ struct Rom_fallback::Main config_rom.sigh(config_sig_rec.manage(&config_sig_ctx)); session_requests.sigh(session_request_handler); + + /* handle requests that have queued before or during construction */ + handle_session_requests(); } ~Main() {