Version upgrade 4.00 #45
5 changed files with 24 additions and 23 deletions
|
@ -11,6 +11,7 @@ int main(int argc, char *argv[])
|
|||
qRegisterMetaType<size_t>();
|
||||
qRegisterMetaType<LogFile>();
|
||||
qRegisterMetaType<WorkerDialog>();
|
||||
qRegisterMetaType<Blacklists>();
|
||||
|
||||
MainWindow w;
|
||||
w.show();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ////
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue