BastionGuard/thirdparty/bastionguard-secure-connection/daemon/include/bsc/fw/Firewall.hpp
specialworld83 f0f913a209 Release 2.0
2026-07-15 10:52:22 +02:00

27 lines
933 B
C++

#pragma once
#include <cstdint>
#include <string>
namespace bsc::fw {
class Firewall {
public:
explicit Firewall(std::string backend = "nftables") : backend_(std::move(backend)) {}
bool reload(const std::string& config_path) const;
// Installa la chain di intercettazione che dirotta il traffico in uscita
// verso la NFQUEUE con numero `queue_num`. Restituisce true se nft e'
// disponibile e il comando e' stato eseguito con successo. In caso di
// errore (nft non installato, permessi mancanti, ecc.) restituisce false
// e il daemon cade nel fallback di polling /proc.
bool install_nfqueue_rule(std::uint16_t queue_num, bool queue_bypass = true) const;
// Rimuove la chain di intercettazione installata da install_nfqueue_rule.
// Sicuro da chiamare anche se la chain non esiste.
void remove_nfqueue_rule() const;
private:
std::string backend_;
};
} // namespace bsc::fw