Coverage Report

Created: 2025-01-09 07:36

/src/osquery/plugins/config/update.cpp
Line
Count
Source (jump to first uncovered line)
1
/**
2
 * Copyright (c) 2014-present, The osquery authors
3
 *
4
 * This source code is licensed as defined by the LICENSE file found in the
5
 * root directory of this source tree.
6
 *
7
 * SPDX-License-Identifier: (Apache-2.0 OR GPL-2.0-only)
8
 */
9
10
#include <osquery/config/config.h>
11
#include <osquery/registry/registry_factory.h>
12
13
namespace osquery {
14
15
/**
16
 * @brief A special config plugin that updates an osquery core's config.
17
 *
18
 * Config plugins may asynchronously change config data for the core osquery
19
 * process. This is a rare instance where a plugin acts to change core state.
20
 * Plugins normally act on behalf of a registry or extension call.
21
 * To achieve plugin-initiated calls, Config plugins chain calls to plugins
22
 * using the UpdateConfigPlugin named 'update'.
23
 *
24
 * Plugins do not need to implement call-chaining explicitly. If an extension
25
 * plugin implements an asynchronous feature it should call `Config::update`
26
 * directly. The osquery config will check if the registry is external, meaning
27
 * the config instance is running as an extension. If external, config will
28
 * route the update request and the registry will send missing (in this case
29
 * "config/update" is missing) requests to core.
30
 */
31
class UpdateConfigPlugin : public ConfigPlugin {
32
 public:
33
0
  Status genConfig(std::map<std::string, std::string>& config) {
34
0
    return Status(0, "Unused");
35
0
  }
36
};
37
38
REGISTER(UpdateConfigPlugin, "config", "update");
39
}