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<LogFile>();
qRegisterMetaType<WorkerDialog>();
qRegisterMetaType<Blacklists>();
MainWindow w;
w.show();

View File

@ -19,13 +19,13 @@
#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 }
, web_server { web_server }
, dialogs_level { dialogs_level }
, db_data_path { db_data_path }
, db_hashes_path { db_hashes_path }
, blacklists { blacklists }
, blacklist { blacklist }
, logs_format { logs_format }
, files_to_use { log_files }
{
@ -358,11 +358,11 @@ void CraplogParser::storeLogLines()
bool CraplogParser::storeData( DatabaseWrapper& db, const QString& db_name )
{
// 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>& bl_cli_list{ (check_bl_cli)
? this->blacklists.at( 20 ).list
? this->blacklist.client.list
: empty };
// prepare the database related studd

View File

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

View File

@ -7,7 +7,8 @@
#include "modules/dialogs.h"
#include "modules/exceptions.h"
#include "modules/craplog/modules/lib.h"
#include "modules/warnlists/modules/warnlist.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;
@ -191,38 +192,38 @@ void Crapview::drawWarn( QTableWidget* table, QChartView* chart, const QChart::C
const auto items{ std::move(*result) };
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 };
std::vector<int> warning_cols;
warning_cols.reserve(4ul);
if ( warnlists.at( 11ul ).used ) { // method
if ( VecOps::contains( warnlists.at( 11ul ).list, line.at( 7ul ).toStdString() ) ) {
if ( warnlist.method.used ) {
if ( VecOps::contains( warnlist.method.list, line.at( 7ul ).toStdString() ) ) {
is_warning |= true;
warning_cols.emplace_back( 4 );
}
}
if ( warnlists.at( 12ul ).used ) { // uri
if ( warnlist.uri.used ) {
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 ); } ) ) {
// match found! skip this line
is_warning |= true;
warning_cols.emplace_back( 5 );
}
}
if ( warnlists.at( 20ul ).used ) { // client
if ( warnlist.client.used ) {
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 ); } ) ) {
// match found! skip this line
is_warning |= true;
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& 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 ); } ) ) {
// match found! skip this line
is_warning |= true;

View File

@ -9,7 +9,7 @@
#include <string>
struct BWlist;
struct Warnlist;
class QTableWidget;
@ -123,14 +123,14 @@ public:
\param month The printable month name
\param day The day
\param hout The hour
\param warnlists The warnlists to check against
\param warnlist The warnlists to check against
*/
void 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 Warnlist& warnlist
) const;