|
ebpf-blocker 1.0.0
XDP-based packet blocker using eBPF
|
#include <db.h>
Public Member Functions | |
| BlockerDB (const std::string &path) | |
| ~BlockerDB () | |
| BlockerDB (const BlockerDB &)=delete | |
| BlockerDB & | operator= (const BlockerDB &)=delete |
| BlockerDB (BlockerDB &&)=delete | |
| BlockerDB & | operator= (BlockerDB &&)=delete |
| void | Migrate () |
| std::vector< BlockEntry > | GetWhitelist () |
| std::vector< BlockEntry > | GetBlacklist () |
| void | UpdateLastBlockedAt (uint32_t ip) |
Private Member Functions | |
| std::vector< BlockEntry > | GetEntries (const std::string &table) |
Private Attributes | |
| sqlite3 * | db_ |
RAII-обёртка над SQLite3 для хранения белого и чёрного списков.
Управляет подключением к базе данных, создаёт таблицы при первом запуске и предоставляет методы для чтения и обновления записей.
|
explicit |
|
delete |
|
delete |
| std::vector< BlockEntry > BlockerDB::GetBlacklist | ( | ) |
Возвращает все записи чёрного списка из базы данных.
Definition at line 198 of file db.cpp.
References GetEntries().
Referenced by main().
|
private |
Обобщённый SELECT ip, comment из указанной таблицы.
| [in] | table | Имя таблицы ("whitelist_ips" или "blocked_ips"). |
Definition at line 202 of file db.cpp.
References db_, and StepCallback().
Referenced by GetBlacklist(), and GetWhitelist().
| std::vector< BlockEntry > BlockerDB::GetWhitelist | ( | ) |
Возвращает все записи белого списка из базы данных.
Definition at line 194 of file db.cpp.
References GetEntries().
Referenced by main().
| void BlockerDB::Migrate | ( | ) |
| void BlockerDB::UpdateLastBlockedAt | ( | uint32_t | ip | ) |
Обновляет last_blocked_at текущим временем для указанного IP.
Также обновляет любую CIDR-запись, покрывающую этот IP.
| [in] | ip | IP-адрес источника в network byte order. |
Definition at line 146 of file db.cpp.
References db_, IPToString(), and MatchesCIDR().
Referenced by main().
|
private |
Указатель на дескриптор SQLite3.
Definition at line 74 of file db.h.
Referenced by BlockerDB(), GetEntries(), Migrate(), UpdateLastBlockedAt(), and ~BlockerDB().