From 136af3764df4877f144b2ebf9f91ba69163ef811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20S=C3=B6ntgen?= Date: Wed, 8 May 2013 11:10:35 +0200 Subject: [PATCH] core: add session args filter to Core_child Add the filter_session_args() method to Core_child to prefix the labels of its children. Fixes #789. --- base/src/core/main.cc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/base/src/core/main.cc b/base/src/core/main.cc index f28a65e0f8..0c314bb7b3 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 *)