diff --git a/base/src/core/main.cc b/base/src/core/main.cc index f28a65e0f..0c314bb7b 100644 --- a/base/src/core/main.cc +++ b/base/src/core/main.cc @@ -138,6 +138,25 @@ class Core_child : public Child_policy ** Child-policy interface ** ****************************/ + void filter_session_args(const char *, char *args, + Genode::size_t args_len) + { + using namespace Genode; + + char label_buf[Parent::Session_args::MAX_SIZE]; + Arg_string::find_arg(args, "label").string(label_buf, sizeof(label_buf), ""); + + char value_buf[Parent::Session_args::MAX_SIZE]; + Genode::snprintf(value_buf, sizeof(value_buf), + "\"%s%s%s\"", + "init", + Genode::strcmp(label_buf, "") == 0 ? "" : " -> ", + label_buf); + + Arg_string::set_arg(args, args_len, "label", value_buf); + } + + const char *name() const { return "init"; } Service *resolve_session_request(const char *service, const char *)