Skip to content
API Documentation
BastionGuard™
anonymous_namespace{SettingsPage.cpp} Namespace Reference

Functions

static bool run_cmd (const std::vector< std::string > &argv, std::string *out_stdout=nullptr, bool silence_stderr=true)
static bool pkexec_servicectl (const std::vector< std::string > &args, std::string *out_stdout=nullptr)
std::string choose_clamd_conf_target ()
bool atomic_install_with_pkexec (const std::string &tmp_src, const std::string &target)
bool isServiceActive (const std::string &service, bool user=false)
void set_badge_class (Gtk::Widget &w, const char *css_class)

Variables

constexpr const char * kServiceName = "bsc-daemon.service"
constexpr const char * kAutostartPath = "/etc/xdg/autostart/bastionguard-sc-autostart.desktop"
constexpr const char * kFallbackAutostartPath = "/etc/xdg/autostart/bastionguard-sc.desktop"
constexpr const char * kAutostartBackupPath = "/etc/xdg/autostart/bastionguard-sc-autostart.desktop.bak"

Function Documentation

◆ atomic_install_with_pkexec()

bool anonymous_namespace{SettingsPage.cpp}::atomic_install_with_pkexec ( const std::string & tmp_src,
const std::string & target )

Definition at line 1415 of file SettingsPage.cpp.

1415 {
1416 if (fs::exists(target)) {
1417 const std::string backup = target + ".bak." + std::to_string(std::time(nullptr));
1418 if (!bg_process::run({"pkexec", "/usr/bin/cp", "-a", "--", target, backup}).ok())
1419 return false;
1420 }
1421 return bg_process::run({"pkexec", "/usr/bin/install", "-D", "-m", "0644",
1422 tmp_src, target}).ok();
1423}
Result run(const std::vector< std::string > &args, bool merge_stderr=false, std::size_t limit=8U *1024U *1024U, const std::map< std::string, std::string > &environment={}, const std::function< bool(const std::string &)> &on_line={})

References atomic_install_with_pkexec(), bg_process::Result::ok(), and bg_process::run().

Referenced by atomic_install_with_pkexec().

◆ choose_clamd_conf_target()

std::string anonymous_namespace{SettingsPage.cpp}::choose_clamd_conf_target ( )

Definition at line 1395 of file SettingsPage.cpp.

1395 {
1396 const std::vector<std::string> candidates = {
1397 "/etc/clamd/clamd.conf",
1398 "/etc/clamav/clamd.conf",
1399 "/etc/clamd.d/clamd.conf",
1400 "/etc/clamd.conf"
1401 };
1402
1403 for (const auto& p : candidates) {
1404 if (std::filesystem::exists(p)) return p;
1405 }
1406
1407 for (const auto& p : candidates) {
1408 std::filesystem::path dir = std::filesystem::path(p).parent_path();
1409 if (dir.empty() || std::filesystem::exists(dir)) return p;
1410 }
1411
1412 return "/etc/clamav/clamd.conf";
1413}

References choose_clamd_conf_target().

Referenced by choose_clamd_conf_target().

◆ isServiceActive()

bool anonymous_namespace{SettingsPage.cpp}::isServiceActive ( const std::string & service,
bool user = false )

Definition at line 1429 of file SettingsPage.cpp.

1429 {
1430 return bg_process::run({"/usr/libexec/bastionguard/bastionguard-service",
1431 user ? "--user" : "--system", "is-active", service}).ok();
1432 }

References isServiceActive(), and bg_process::run().

Referenced by isClamonaccRunning(), and isServiceActive().

◆ pkexec_servicectl()

bool anonymous_namespace{SettingsPage.cpp}::pkexec_servicectl ( const std::vector< std::string > & args,
std::string * out_stdout = nullptr )
static

Definition at line 81 of file SettingsPage.cpp.

83 {
84 std::vector<std::string> argv;
85 argv.reserve(args.size() + 3);
86 argv.push_back("pkexec");
87 argv.push_back("/usr/libexec/bastionguard/bastionguard-service");
88 argv.push_back("--system");
89 argv.insert(argv.end(), args.begin(), args.end());
90
91 return run_cmd(argv, out_stdout, false);
92 }
static bool run_cmd(const std::vector< std::string > &argv, std::string *out_stdout=nullptr, bool silence_stderr=true)

References pkexec_servicectl(), and run_cmd().

Referenced by pkexec_servicectl().

◆ run_cmd()

bool anonymous_namespace{SettingsPage.cpp}::run_cmd ( const std::vector< std::string > & argv,
std::string * out_stdout = nullptr,
bool silence_stderr = true )
static

Definition at line 72 of file SettingsPage.cpp.

75 {
76 const auto result = bg_process::run(argv, !silence_stderr);
77 if (out_stdout) *out_stdout = result.output;
78 return result.ok();
79 }

References bg_process::run(), and run_cmd().

Referenced by pkexec_servicectl(), and run_cmd().

◆ set_badge_class()

void anonymous_namespace{SettingsPage.cpp}::set_badge_class ( Gtk::Widget & w,
const char * css_class )

Definition at line 23 of file SettingsPage.cpp.

24 {
25 w.remove_css_class("status-badge-success");
26 w.remove_css_class("status-badge-danger");
27 w.remove_css_class("status-badge-warning");
28 w.remove_css_class("status-badge-info");
29
30 if (css_class && *css_class) {
31 w.add_css_class(css_class);
32 }
33 }

References set_badge_class().

Referenced by set_badge_class().

Variable Documentation

◆ kAutostartBackupPath

const char* anonymous_namespace{SettingsPage.cpp}::kAutostartBackupPath = "/etc/xdg/autostart/bastionguard-sc-autostart.desktop.bak"
constexpr

Definition at line 21 of file SettingsPage.cpp.

◆ kAutostartPath

const char* anonymous_namespace{SettingsPage.cpp}::kAutostartPath = "/etc/xdg/autostart/bastionguard-sc-autostart.desktop"
constexpr

Definition at line 19 of file SettingsPage.cpp.

◆ kFallbackAutostartPath

const char* anonymous_namespace{SettingsPage.cpp}::kFallbackAutostartPath = "/etc/xdg/autostart/bastionguard-sc.desktop"
constexpr

Definition at line 20 of file SettingsPage.cpp.

◆ kServiceName

const char* anonymous_namespace{SettingsPage.cpp}::kServiceName = "bsc-daemon.service"
constexpr

Definition at line 18 of file SettingsPage.cpp.