MCPcopy Create free account
hub / github.com/OpenVPN/openvpn3-linux / ModuleHandler

Method ModuleHandler

addons/devposture/modulehandler.cpp:17–48  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15namespace DevPosture {
16
17ModuleHandler::ModuleHandler(Module::UPtr mod, const bool external)
18 : DBus::Object::Base(PATH_DEVPOSTURE + "/modules/" + mod->name(),
19 Constants::GenInterface("devicecheck")),
20 module_(std::move(mod)),
21 prop_name_(module_->name()),
22 prop_type_(module_->type()),
23 prop_version_(module_->version()),
24 prop_external_(external)
25
26{
27 auto r_args = AddMethod(
28 "Run",
29 [this](DBus::Object::Method::Arguments::Ptr args)
30 {
31 GVariantBuilder *b = glib2::Builder::Create("a{sv}");
32
33 for (const auto &[key, value] : module_->Run({}))
34 {
35 g_variant_builder_add(b, "{sv}", key.c_str(), glib2::Value::Create(value));
36 }
37
38 args->SetMethodReturn(glib2::Builder::FinishWrapped(b));
39 });
40
41 r_args->AddInput("input", "a{sv}");
42 r_args->AddOutput("result", "a{sv}");
43
44 AddProperty("type", prop_type_, /* readwrite */ false);
45 AddProperty("name", prop_name_, /* readwrite */ false);
46 AddProperty("version", prop_version_, /* readwrite */ false);
47 AddProperty("external", prop_external_, /* readwrite */ false);
48}
49
50
51const bool ModuleHandler::Authorize(const DBus::Authz::Request::Ptr authzreq)

Callers

nothing calls this directly

Calls 4

nameMethod · 0.45
typeMethod · 0.45
versionMethod · 0.45
RunMethod · 0.45

Tested by

no test coverage detected