This commit is contained in:
Valentino Orlandi 2024-02-04 01:22:08 +01:00
parent d71801b8d6
commit 7902cf2833
Signed by: elB4RTO
GPG Key ID: 1719E976DB2D4E71
5 changed files with 24 additions and 23 deletions

View File

@ -11,6 +11,7 @@ int main(int argc, char *argv[])
qRegisterMetaType<size_t>(); qRegisterMetaType<size_t>();
qRegisterMetaType<LogFile>(); qRegisterMetaType<LogFile>();
qRegisterMetaType<WorkerDialog>(); qRegisterMetaType<WorkerDialog>();
qRegisterMetaType<Blacklists>();
MainWindow w; MainWindow w;
w.show(); w.show();

View File

@ -19,13 +19,13 @@
#include <QSqlError> #include <QSqlError>
CraplogParser::CraplogParser( const WebServer web_server, const DialogsLevel dialogs_level, const std::string& db_data_path, const std::string& db_hashes_path, const LogsFormat& logs_format, const bw_lists_t& blacklists, const worker_files_t& log_files, QObject* parent ) CraplogParser::CraplogParser( const WebServer web_server, const DialogsLevel dialogs_level, const std::string& db_data_path, const std::string& db_hashes_path, const LogsFormat& logs_format, const Blacklist& blacklist, const worker_files_t& log_files, QObject* parent )
: QObject { parent } : QObject { parent }
, web_server { web_server } , web_server { web_server }
, dialogs_level { dialogs_level } , dialogs_level { dialogs_level }
, db_data_path { db_data_path } , db_data_path { db_data_path }
, db_hashes_path { db_hashes_path } , db_hashes_path { db_hashes_path }
, blacklists { blacklists } , blacklist { blacklist }
, logs_format { logs_format } , logs_format { logs_format }
, files_to_use { log_files } , files_to_use { log_files }
{ {
@ -358,11 +358,11 @@ void CraplogParser::storeLogLines()
bool CraplogParser::storeData( DatabaseWrapper& db, const QString& db_name ) bool CraplogParser::storeData( DatabaseWrapper& db, const QString& db_name )
{ {
// get blacklist items // get blacklist items
const bool check_bl_cli { this->blacklists.at( 20 ).used }; const bool check_bl_cli { this->blacklist.client.used };
const std::vector<std::string> empty; const std::vector<std::string> empty;
const std::vector<std::string>& bl_cli_list{ (check_bl_cli) const std::vector<std::string>& bl_cli_list{ (check_bl_cli)
? this->blacklists.at( 20 ).list ? this->blacklist.client.list
: empty }; : empty };
// prepare the database related studd // prepare the database related studd

View File

@ -6,12 +6,13 @@
#include "modules/craplog/modules/lib.h" #include "modules/craplog/modules/lib.h"
#include "modules/blacklists/modules/blacklist.h"
#include <QObject> #include <QObject>
#include <unordered_map> #include <unordered_map>
struct BWlist;
struct LogLineData; struct LogLineData;
class DatabaseWrapper; class DatabaseWrapper;
@ -25,7 +26,6 @@ class CraplogParser final : public QObject
using logs_file_t = std::tuple<std::string,std::string>; using logs_file_t = std::tuple<std::string,std::string>;
using worker_files_t = std::vector<logs_file_t>; using worker_files_t = std::vector<logs_file_t>;
using bw_lists_t = std::unordered_map<int, BWlist>;
public: public:
@ -35,7 +35,7 @@ public:
const std::string& db_data_path, const std::string& db_data_path,
const std::string& db_hashes_path, const std::string& db_hashes_path,
const LogsFormat& logs_format, const LogsFormat& logs_format,
const bw_lists_t& blacklists, const Blacklist& blacklist,
const worker_files_t& log_files, const worker_files_t& log_files,
QObject* parent=nullptr QObject* parent=nullptr
); );
@ -100,8 +100,7 @@ private:
/////////////////// ///////////////////
//// BLACKLIST //// //// BLACKLIST ////
// { log_field_id : BWlist } const Blacklist blacklist;
const bw_lists_t blacklists;
////////////// //////////////
//// LOGS //// //// LOGS ////

View File

@ -7,7 +7,8 @@
#include "modules/dialogs.h" #include "modules/dialogs.h"
#include "modules/exceptions.h" #include "modules/exceptions.h"
#include "modules/craplog/modules/lib.h"
#include "modules/warnlists/modules/warnlist.h"
#include "modules/crapview/modules/lib.h" #include "modules/crapview/modules/lib.h"
@ -163,7 +164,7 @@ void Crapview::sliceClicked( QPieSlice* slice )
} }
void Crapview::drawWarn( QTableWidget* table, QChartView* chart, const QChart::ChartTheme& theme, const QString web_server, const QString year, const QString month, const QString day, const QString hour, const std::unordered_map<int, BWlist>& warnlists ) const void Crapview::drawWarn( QTableWidget* table, QChartView* chart, const QChart::ChartTheme& theme, const QString web_server, const QString year, const QString month, const QString day, const QString hour, const Warnlist& warnlist ) const
{ {
std::optional<stats_warn_items_t> result; std::optional<stats_warn_items_t> result;
@ -191,38 +192,38 @@ void Crapview::drawWarn( QTableWidget* table, QChartView* chart, const QChart::C
const auto items{ std::move(*result) }; const auto items{ std::move(*result) };
const auto check_warnings{ const auto check_warnings{
[&warnlists](const std::array<QString,18>& line)->std::tuple<bool,std::vector<int>> [&warnlist](const std::array<QString,18>& line)->std::tuple<bool,std::vector<int>>
{ {
bool is_warning{ false }; bool is_warning{ false };
std::vector<int> warning_cols; std::vector<int> warning_cols;
warning_cols.reserve(4ul); warning_cols.reserve(4ul);
if ( warnlists.at( 11ul ).used ) { // method if ( warnlist.method.used ) {
if ( VecOps::contains( warnlists.at( 11ul ).list, line.at( 7ul ).toStdString() ) ) { if ( VecOps::contains( warnlist.method.list, line.at( 7ul ).toStdString() ) ) {
is_warning |= true; is_warning |= true;
warning_cols.emplace_back( 4 ); warning_cols.emplace_back( 4 );
} }
} }
if ( warnlists.at( 12ul ).used ) { // uri if ( warnlist.uri.used ) {
const auto target{ line.at( 8ul ).toStdString() }; const auto target{ line.at( 8ul ).toStdString() };
const auto& list{ warnlists.at( 12ul ).list }; const auto& list{ warnlist.uri.list };
if ( std::any_of( list.cbegin(), list.cend(), [&target](std::string_view flag){ return StringOps::startsWith( target, flag ); } ) ) { if ( std::any_of( list.cbegin(), list.cend(), [&target](std::string_view flag){ return StringOps::startsWith( target, flag ); } ) ) {
// match found! skip this line // match found! skip this line
is_warning |= true; is_warning |= true;
warning_cols.emplace_back( 5 ); warning_cols.emplace_back( 5 );
} }
} }
if ( warnlists.at( 20ul ).used ) { // client if ( warnlist.client.used ) {
const auto target{ line.at( 12ul ).toStdString() }; const auto target{ line.at( 12ul ).toStdString() };
const auto& list{ warnlists.at( 20ul ).list }; const auto& list{ warnlist.client.list };
if ( std::any_of( list.cbegin(), list.cend(), [&target](std::string_view flag){ return StringOps::startsWith( target, flag ); } ) ) { if ( std::any_of( list.cbegin(), list.cend(), [&target](std::string_view flag){ return StringOps::startsWith( target, flag ); } ) ) {
// match found! skip this line // match found! skip this line
is_warning |= true; is_warning |= true;
warning_cols.emplace_back( 9 ); warning_cols.emplace_back( 9 );
} }
} }
if ( warnlists.at( 21ul ).used ) { // user-agent if ( warnlist.user_agent.used ) {
const auto target{ line.at( 11ul ).toStdString() }; const auto target{ line.at( 11ul ).toStdString() };
const auto& list{ warnlists.at( 21ul ).list }; const auto& list{ warnlist.user_agent.list };
if ( std::any_of( list.cbegin(), list.cend(), [&target](std::string_view flag){ return StringOps::startsWith( target, flag ); } ) ) { if ( std::any_of( list.cbegin(), list.cend(), [&target](std::string_view flag){ return StringOps::startsWith( target, flag ); } ) ) {
// match found! skip this line // match found! skip this line
is_warning |= true; is_warning |= true;

View File

@ -9,7 +9,7 @@
#include <string> #include <string>
struct BWlist; struct Warnlist;
class QTableWidget; class QTableWidget;
@ -123,14 +123,14 @@ public:
\param month The printable month name \param month The printable month name
\param day The day \param day The day
\param hout The hour \param hout The hour
\param warnlists The warnlists to check against \param warnlist The warnlists to check against
*/ */
void drawWarn( void drawWarn(
QTableWidget* table, QChartView* chart, QTableWidget* table, QChartView* chart,
const QChart::ChartTheme& theme, const QChart::ChartTheme& theme,
const QString web_server, const QString web_server,
const QString year, const QString month, const QString day, const QString hour, const QString year, const QString month, const QString day, const QString hour,
const std::unordered_map<int, BWlist>& warnlists const Warnlist& warnlist
) const; ) const;