2021-09-12 19:40:34 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <pthread.h>
|
|
|
|
#include <string_view>
|
|
|
|
#include <functional>
|
|
|
|
#include <map>
|
2021-09-16 12:27:34 +00:00
|
|
|
#include <atomic>
|
2021-09-12 19:40:34 +00:00
|
|
|
|
|
|
|
#include <daemon.hpp>
|
|
|
|
|
|
|
|
#define ISOLATED_MAGIC "isolated"
|
|
|
|
|
2022-03-01 10:13:18 +00:00
|
|
|
namespace DenyRequest {
|
|
|
|
enum : int {
|
2022-02-12 15:43:36 +00:00
|
|
|
ENFORCE,
|
|
|
|
DISABLE,
|
|
|
|
ADD,
|
|
|
|
REMOVE,
|
|
|
|
LIST,
|
|
|
|
STATUS,
|
|
|
|
|
|
|
|
END
|
|
|
|
};
|
2022-03-01 10:13:18 +00:00
|
|
|
}
|
2022-02-12 15:43:36 +00:00
|
|
|
|
2022-03-01 10:13:18 +00:00
|
|
|
namespace DenyResponse {
|
|
|
|
enum : int {
|
2022-02-12 15:43:36 +00:00
|
|
|
OK,
|
|
|
|
ENFORCED,
|
|
|
|
NOT_ENFORCED,
|
|
|
|
ITEM_EXIST,
|
|
|
|
ITEM_NOT_EXIST,
|
|
|
|
INVALID_PKG,
|
|
|
|
NO_NS,
|
|
|
|
ERROR,
|
|
|
|
|
|
|
|
END
|
|
|
|
};
|
2022-03-01 10:13:18 +00:00
|
|
|
}
|
2022-02-12 15:43:36 +00:00
|
|
|
|
2021-09-12 19:40:34 +00:00
|
|
|
// CLI entries
|
2022-03-01 10:13:18 +00:00
|
|
|
int enable_deny();
|
|
|
|
int disable_deny();
|
|
|
|
int add_list(int client);
|
|
|
|
int rm_list(int client);
|
2021-09-12 19:40:34 +00:00
|
|
|
void ls_list(int client);
|
|
|
|
|
|
|
|
// Utility functions
|
|
|
|
bool is_deny_target(int uid, std::string_view process);
|
2021-10-27 10:54:48 +00:00
|
|
|
void revert_unmount();
|
2021-09-12 19:40:34 +00:00
|
|
|
|
2022-01-18 03:54:33 +00:00
|
|
|
extern std::atomic<bool> denylist_enforced;
|