82 lines
2.3 KiB
C++
82 lines
2.3 KiB
C++
/******************************************************************************
|
|
* Copyright (c) Huawei Technologies Co., Ltd. 2020-2020. All rights reserved.
|
|
* iSulad licensed under the Mulan PSL v1.
|
|
* You can use this software according to the terms and conditions of the Mulan PSL v1.
|
|
* You may obtain a copy of Mulan PSL v1 at:
|
|
* http://license.coscl.org.cn/MulanPSL
|
|
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
|
|
* PURPOSE.
|
|
* See the Mulan PSL v1 for more details.
|
|
* Author: wujing
|
|
* Create: 2020-02-11
|
|
* Description: provide selinux label mock
|
|
******************************************************************************/
|
|
|
|
#include "selinux_label_mock.h"
|
|
|
|
namespace {
|
|
MockSelinuxLabel *g_selinux_label_mock = NULL;
|
|
}
|
|
|
|
void SelinuxLabel_SetMock(MockSelinuxLabel* mock)
|
|
{
|
|
g_selinux_label_mock = mock;
|
|
}
|
|
|
|
int selinux_state_init(void)
|
|
{
|
|
if (g_selinux_label_mock != nullptr) {
|
|
return g_selinux_label_mock->SelinuxStateInit();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
void selinux_set_disabled()
|
|
{
|
|
if (g_selinux_label_mock != nullptr) {
|
|
g_selinux_label_mock->SelinuxSetDisabled();
|
|
}
|
|
}
|
|
|
|
|
|
bool selinux_get_enable()
|
|
{
|
|
if (g_selinux_label_mock != nullptr) {
|
|
return g_selinux_label_mock->SelinuxGetEnable();
|
|
}
|
|
return false;
|
|
}
|
|
|
|
int init_label(const char **label_opts, size_t label_opts_len, char **process_label, char **mount_label)
|
|
{
|
|
if (g_selinux_label_mock != nullptr) {
|
|
return g_selinux_label_mock->InitLabel(label_opts, label_opts_len, process_label, mount_label);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int relabel(const char *path, const char *file_label, bool shared)
|
|
{
|
|
if (g_selinux_label_mock != nullptr) {
|
|
return g_selinux_label_mock->Relabel(path, file_label, shared);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int get_disable_security_opt(char ***labels, size_t *labels_len)
|
|
{
|
|
if (g_selinux_label_mock != nullptr) {
|
|
return g_selinux_label_mock->GetDisableSecurityOpt(labels, labels_len);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int dup_security_opt(const char *src, char ***dst, size_t *len)
|
|
{
|
|
if (g_selinux_label_mock != nullptr) {
|
|
return g_selinux_label_mock->DupSecurityOpt(src, dst, len);
|
|
}
|
|
return 0;
|
|
}
|