| // Copyright 2017 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "libcontainer/config.h" |
| |
| #include <utility> |
| |
| #include <base/callback.h> |
| #include <base/check.h> |
| #include <base/logging.h> |
| |
| // TODO(lhchavez): Remove this once container_config only holds a pointer to |
| // libcontainer::Config. |
| extern void container_config_add_hook(struct container_config* c, |
| minijail_hook_event_t event, |
| libcontainer::HookCallback callback); |
| |
| namespace libcontainer { |
| |
| Config::Config() : config_(container_config_create()) { |
| // container_config_create() allocates using std::nothrow, so we need to |
| // explicitly call abort(2) when allocation fails. |
| CHECK(config_); |
| } |
| |
| Config::~Config() { |
| container_config_destroy(config_); |
| } |
| |
| void Config::AddHook(minijail_hook_event_t event, |
| libcontainer::HookCallback callback) { |
| container_config_add_hook(config_, event, std::move(callback)); |
| } |
| |
| } // namespace libcontainer |