mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-09-30 03:34:29 +03:00
Renames class Assay to Transaction
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
#include "modsecurity/modsecurity.h"
|
||||
#include "modsecurity/rules.h"
|
||||
|
||||
using modsecurity::Assay;
|
||||
using modsecurity::Transaction;
|
||||
|
||||
char request_header[] = "" \
|
||||
"GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1\n\r" \
|
||||
@@ -88,83 +88,83 @@ int main(int argc, char *argv[]) {
|
||||
for (i = 0; i < NUM_REQUESTS; i++) {
|
||||
std::cout << "Proceeding with request " << i << std::endl;
|
||||
|
||||
Assay *modsecAssay = new Assay(modsec, rules, NULL);
|
||||
modsecAssay->processConnection(ip, 12345, "127.0.0.1", 80);
|
||||
Transaction *modsecTransaction = new Transaction(modsec, rules, NULL);
|
||||
modsecTransaction->processConnection(ip, 12345, "127.0.0.1", 80);
|
||||
|
||||
if (modsecAssay->intervention(&it)) {
|
||||
if (modsecTransaction->intervention(&it)) {
|
||||
std::cout << "There is an intervention" << std::endl;
|
||||
continue;
|
||||
}
|
||||
modsecAssay->processURI(request_uri, "GET", "1.1");
|
||||
if (modsecAssay->intervention(&it)) {
|
||||
modsecTransaction->processURI(request_uri, "GET", "1.1");
|
||||
if (modsecTransaction->intervention(&it)) {
|
||||
std::cout << "There is an intervention" << std::endl;
|
||||
continue;
|
||||
}
|
||||
|
||||
modsecAssay->addRequestHeader("Host",
|
||||
modsecTransaction->addRequestHeader("Host",
|
||||
"net.tutsplus.com");
|
||||
modsecAssay->addRequestHeader("User-Agent",
|
||||
modsecTransaction->addRequestHeader("User-Agent",
|
||||
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) " \
|
||||
"Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)\n\r");
|
||||
modsecAssay->addRequestHeader("Accept",
|
||||
modsecTransaction->addRequestHeader("Accept",
|
||||
"text/html,application/xhtml+xml,application/xml;" \
|
||||
"q=0.9,*/*;q=0.8");
|
||||
modsecAssay->addRequestHeader("Accept-Language",
|
||||
modsecTransaction->addRequestHeader("Accept-Language",
|
||||
"en-us,en;q=0.5");
|
||||
modsecAssay->addRequestHeader("Accept-Encoding",
|
||||
modsecTransaction->addRequestHeader("Accept-Encoding",
|
||||
"gzip,deflate");
|
||||
modsecAssay->addRequestHeader("Accept-Charset",
|
||||
modsecTransaction->addRequestHeader("Accept-Charset",
|
||||
"ISO-8859-1,utf-8;q=0.7,*;q=0.7");
|
||||
modsecAssay->addRequestHeader("Keep-Alive",
|
||||
modsecTransaction->addRequestHeader("Keep-Alive",
|
||||
"300");
|
||||
modsecAssay->addRequestHeader("Connection",
|
||||
modsecTransaction->addRequestHeader("Connection",
|
||||
"keep-alive");
|
||||
modsecAssay->addRequestHeader("Cookie",
|
||||
modsecTransaction->addRequestHeader("Cookie",
|
||||
"PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120");
|
||||
modsecAssay->addRequestHeader("Pragma",
|
||||
modsecTransaction->addRequestHeader("Pragma",
|
||||
"no-cache");
|
||||
modsecAssay->addRequestHeader("Cache-Control",
|
||||
modsecTransaction->addRequestHeader("Cache-Control",
|
||||
"no-cache");
|
||||
modsecAssay->processRequestHeaders();
|
||||
modsecTransaction->processRequestHeaders();
|
||||
|
||||
if (modsecAssay->intervention(&it)) {
|
||||
if (modsecTransaction->intervention(&it)) {
|
||||
std::cout << "There is an intervention" << std::endl;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
modsecAssay->processRequestBody();
|
||||
modsecTransaction->processRequestBody();
|
||||
|
||||
if (modsecAssay->intervention(&it)) {
|
||||
if (modsecTransaction->intervention(&it)) {
|
||||
std::cout << "There is an intervention" << std::endl;
|
||||
continue;
|
||||
}
|
||||
|
||||
modsecAssay->addResponseHeader("HTTP/1.1",
|
||||
modsecTransaction->addResponseHeader("HTTP/1.1",
|
||||
"200 OK");
|
||||
modsecAssay->addResponseHeader("Content-Type",
|
||||
modsecTransaction->addResponseHeader("Content-Type",
|
||||
"text/xml; charset=utf-8");
|
||||
modsecAssay->addResponseHeader("Content-Length",
|
||||
modsecTransaction->addResponseHeader("Content-Length",
|
||||
"200");
|
||||
|
||||
modsecAssay->processResponseHeaders();
|
||||
modsecTransaction->processResponseHeaders();
|
||||
|
||||
if (modsecAssay->intervention(&it)) {
|
||||
if (modsecTransaction->intervention(&it)) {
|
||||
std::cout << "There is an intervention" << std::endl;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
modsecAssay->appendResponseBody(response_body,
|
||||
modsecTransaction->appendResponseBody(response_body,
|
||||
strlen((const char*)response_body));
|
||||
modsecAssay->processResponseBody();
|
||||
modsecTransaction->processResponseBody();
|
||||
|
||||
if (modsecAssay->intervention(&it)) {
|
||||
if (modsecTransaction->intervention(&it)) {
|
||||
std::cout << "There is an intervention" << std::endl;
|
||||
continue;
|
||||
}
|
||||
|
||||
delete modsecAssay;
|
||||
delete modsecTransaction;
|
||||
}
|
||||
|
||||
delete modsec;
|
||||
|
@@ -134,7 +134,7 @@ int main(int argc, char** argv) {
|
||||
|
||||
ModSecurity *ms = new ModSecurity();
|
||||
Rules *rules = new Rules();
|
||||
Assay *assay = new Assay(ms, rules, NULL);
|
||||
Transaction *transaction = new Transaction(ms, rules, NULL);
|
||||
|
||||
|
||||
/**
|
||||
@@ -189,43 +189,43 @@ Utf8Unicode *utf8unicode = new Utf8Unicode("Utf8Unicode"); utf8unicode->evaluate
|
||||
*
|
||||
*/
|
||||
#if 1
|
||||
BeginsWith *beginswith = new BeginsWith("@BeginsWith", z, false); beginswith->evaluate(assay, s); delete beginswith;
|
||||
Contains *contains = new Contains("@Contains", z, false); contains->evaluate(assay, s); delete contains;
|
||||
ContainsWord *containsword = new ContainsWord("@ContainsWord", z, false); containsword->evaluate(assay, s); delete containsword;
|
||||
DetectSQLi *detectsqli = new DetectSQLi("@DetectSQLi", z, false); detectsqli->evaluate(assay, s); delete detectsqli;
|
||||
DetectXSS *detectxss = new DetectXSS("@DetectXSS", z, false); detectxss->evaluate(assay, s); delete detectxss;
|
||||
EndsWith *endswith = new EndsWith("@EndsWith", z, false); endswith->evaluate(assay, s); delete endswith;
|
||||
Eq *eq = new Eq("@Eq", z, false); eq->evaluate(assay, s); delete eq;
|
||||
FuzzyHash *fuzzyhash = new FuzzyHash("@FuzzyHash", z, false); fuzzyhash->evaluate(assay, s); delete fuzzyhash;
|
||||
Ge *ge = new Ge("@Ge", z, false); ge->evaluate(assay, s); delete ge;
|
||||
GeoLookup *geolookup = new GeoLookup("@GeoLookup", z, false); geolookup->evaluate(assay, s); delete geolookup;
|
||||
GsbLookup *gsblookup = new GsbLookup("@GsbLookup", z, false); gsblookup->evaluate(assay, s); delete gsblookup;
|
||||
Gt *gt = new Gt("@Gt", z, false); gt->evaluate(assay, s); delete gt;
|
||||
InspectFile *inspectfile = new InspectFile("@InspectFile", z, false); inspectfile->evaluate(assay, s); delete inspectfile;
|
||||
IpMatchF *ipmatchf = new IpMatchF("@IpMatchF", z, false); ipmatchf->evaluate(assay, s); delete ipmatchf;
|
||||
IpMatchFromFile *ipmatchfromfile = new IpMatchFromFile("@IpMatchFromFile", z, false); ipmatchfromfile->evaluate(assay, s); delete ipmatchfromfile;
|
||||
IpMatch *ipmatch = new IpMatch("@IpMatch", z, false); ipmatch->evaluate(assay, s); delete ipmatch;
|
||||
Le *le = new Le("@Le", z, false); le->evaluate(assay, s); delete le;
|
||||
Lt *lt = new Lt("@Lt", z, false); lt->evaluate(assay, s); delete lt;
|
||||
NoMatch *nomatch = new NoMatch("@NoMatch", z, false); nomatch->evaluate(assay, s); delete nomatch;
|
||||
PmF *pmf = new PmF("@PmF", z, false); pmf->evaluate(assay, s); delete pmf;
|
||||
PmFromFile *pmfromfile = new PmFromFile("@PmFromFile", z, false); pmfromfile->evaluate(assay, s); delete pmfromfile;
|
||||
Pm *pm = new Pm("@Pm", z, false); pm->evaluate(assay, s); delete pm;
|
||||
Rbl *rbl = new Rbl("@Rbl", z, false); rbl->evaluate(assay, s); delete rbl;
|
||||
Rsub *rsub = new Rsub("@Rsub", z, false); rsub->evaluate(assay, s); delete rsub;
|
||||
Rx *rx = new Rx("@Rx", z, false); rx->evaluate(assay, s); delete rx;
|
||||
StrEq *streq = new StrEq("@StrEq", z, false); streq->evaluate(assay, s); delete streq;
|
||||
StrMatch *strmatch = new StrMatch("@StrMatch", z, false); strmatch->evaluate(assay, s); delete strmatch;
|
||||
ValidateByteRange *validatebyterange = new ValidateByteRange("@ValidateByteRange", z, false); validatebyterange->evaluate(assay, s); delete validatebyterange;
|
||||
ValidateDTD *validatedtd = new ValidateDTD("@ValidateDTD", z, false); validatedtd->evaluate(assay, s); delete validatedtd;
|
||||
ValidateHash *validatehash = new ValidateHash("@ValidateHash", z, false); validatehash->evaluate(assay, s); delete validatehash;
|
||||
ValidateSchema *validateschema = new ValidateSchema("@ValidateSchema", z, false); validateschema->evaluate(assay, s); delete validateschema;
|
||||
ValidateUrlEncoding *validateurlencoding = new ValidateUrlEncoding("@ValidateUrlEncoding", z, false); validateurlencoding->evaluate(assay, s); delete validateurlencoding;
|
||||
ValidateUtf8Encoding *validateutf8encoding = new ValidateUtf8Encoding("@ValidateUtf8Encoding", z, false); validateutf8encoding->evaluate(assay, s); delete validateutf8encoding;
|
||||
VerifyCC *verifycc = new VerifyCC("@VerifyCC", z, false); verifycc->evaluate(assay, s); delete verifycc;
|
||||
VerifyCPF *verifycpf = new VerifyCPF("@VerifyCPF", z, false); verifycpf->evaluate(assay, s); delete verifycpf;
|
||||
VerifySSN *verifyssn = new VerifySSN("@VerifySSN", z, false); verifyssn->evaluate(assay, s); delete verifyssn;
|
||||
Within *within = new Within("@Within", z, false); within->evaluate(assay, s); delete within;
|
||||
BeginsWith *beginswith = new BeginsWith("@BeginsWith", z, false); beginswith->evaluate(transaction, s); delete beginswith;
|
||||
Contains *contains = new Contains("@Contains", z, false); contains->evaluate(transaction, s); delete contains;
|
||||
ContainsWord *containsword = new ContainsWord("@ContainsWord", z, false); containsword->evaluate(transaction, s); delete containsword;
|
||||
DetectSQLi *detectsqli = new DetectSQLi("@DetectSQLi", z, false); detectsqli->evaluate(transaction, s); delete detectsqli;
|
||||
DetectXSS *detectxss = new DetectXSS("@DetectXSS", z, false); detectxss->evaluate(transaction, s); delete detectxss;
|
||||
EndsWith *endswith = new EndsWith("@EndsWith", z, false); endswith->evaluate(transaction, s); delete endswith;
|
||||
Eq *eq = new Eq("@Eq", z, false); eq->evaluate(transaction, s); delete eq;
|
||||
FuzzyHash *fuzzyhash = new FuzzyHash("@FuzzyHash", z, false); fuzzyhash->evaluate(transaction, s); delete fuzzyhash;
|
||||
Ge *ge = new Ge("@Ge", z, false); ge->evaluate(transaction, s); delete ge;
|
||||
GeoLookup *geolookup = new GeoLookup("@GeoLookup", z, false); geolookup->evaluate(transaction, s); delete geolookup;
|
||||
GsbLookup *gsblookup = new GsbLookup("@GsbLookup", z, false); gsblookup->evaluate(transaction, s); delete gsblookup;
|
||||
Gt *gt = new Gt("@Gt", z, false); gt->evaluate(transaction, s); delete gt;
|
||||
InspectFile *inspectfile = new InspectFile("@InspectFile", z, false); inspectfile->evaluate(transaction, s); delete inspectfile;
|
||||
IpMatchF *ipmatchf = new IpMatchF("@IpMatchF", z, false); ipmatchf->evaluate(transaction, s); delete ipmatchf;
|
||||
IpMatchFromFile *ipmatchfromfile = new IpMatchFromFile("@IpMatchFromFile", z, false); ipmatchfromfile->evaluate(transaction, s); delete ipmatchfromfile;
|
||||
IpMatch *ipmatch = new IpMatch("@IpMatch", z, false); ipmatch->evaluate(transaction, s); delete ipmatch;
|
||||
Le *le = new Le("@Le", z, false); le->evaluate(transaction, s); delete le;
|
||||
Lt *lt = new Lt("@Lt", z, false); lt->evaluate(transaction, s); delete lt;
|
||||
NoMatch *nomatch = new NoMatch("@NoMatch", z, false); nomatch->evaluate(transaction, s); delete nomatch;
|
||||
PmF *pmf = new PmF("@PmF", z, false); pmf->evaluate(transaction, s); delete pmf;
|
||||
PmFromFile *pmfromfile = new PmFromFile("@PmFromFile", z, false); pmfromfile->evaluate(transaction, s); delete pmfromfile;
|
||||
Pm *pm = new Pm("@Pm", z, false); pm->evaluate(transaction, s); delete pm;
|
||||
Rbl *rbl = new Rbl("@Rbl", z, false); rbl->evaluate(transaction, s); delete rbl;
|
||||
Rsub *rsub = new Rsub("@Rsub", z, false); rsub->evaluate(transaction, s); delete rsub;
|
||||
Rx *rx = new Rx("@Rx", z, false); rx->evaluate(transaction, s); delete rx;
|
||||
StrEq *streq = new StrEq("@StrEq", z, false); streq->evaluate(transaction, s); delete streq;
|
||||
StrMatch *strmatch = new StrMatch("@StrMatch", z, false); strmatch->evaluate(transaction, s); delete strmatch;
|
||||
ValidateByteRange *validatebyterange = new ValidateByteRange("@ValidateByteRange", z, false); validatebyterange->evaluate(transaction, s); delete validatebyterange;
|
||||
ValidateDTD *validatedtd = new ValidateDTD("@ValidateDTD", z, false); validatedtd->evaluate(transaction, s); delete validatedtd;
|
||||
ValidateHash *validatehash = new ValidateHash("@ValidateHash", z, false); validatehash->evaluate(transaction, s); delete validatehash;
|
||||
ValidateSchema *validateschema = new ValidateSchema("@ValidateSchema", z, false); validateschema->evaluate(transaction, s); delete validateschema;
|
||||
ValidateUrlEncoding *validateurlencoding = new ValidateUrlEncoding("@ValidateUrlEncoding", z, false); validateurlencoding->evaluate(transaction, s); delete validateurlencoding;
|
||||
ValidateUtf8Encoding *validateutf8encoding = new ValidateUtf8Encoding("@ValidateUtf8Encoding", z, false); validateutf8encoding->evaluate(transaction, s); delete validateutf8encoding;
|
||||
VerifyCC *verifycc = new VerifyCC("@VerifyCC", z, false); verifycc->evaluate(transaction, s); delete verifycc;
|
||||
VerifyCPF *verifycpf = new VerifyCPF("@VerifyCPF", z, false); verifycpf->evaluate(transaction, s); delete verifycpf;
|
||||
VerifySSN *verifyssn = new VerifySSN("@VerifySSN", z, false); verifyssn->evaluate(transaction, s); delete verifyssn;
|
||||
Within *within = new Within("@Within", z, false); within->evaluate(transaction, s); delete within;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -234,26 +234,26 @@ Within *within = new Within("@Within", z, false); within->evaluate(assay, s); de
|
||||
*
|
||||
*/
|
||||
#if 0
|
||||
assay->processConnection(s.c_str(), 123, s.c_str(), 123);
|
||||
assay->processURI(s.c_str(), z.c_str(), z.c_str());
|
||||
assay->addRequestHeader(s, z);
|
||||
assay->addRequestHeader(s, s);
|
||||
assay->addRequestHeader(z, z);
|
||||
assay->addRequestHeader(z, s);
|
||||
assay->processRequestHeaders();
|
||||
assay->appendRequestBody((const unsigned char *)s.c_str(), s.length());
|
||||
assay->processRequestBody();
|
||||
assay->addResponseHeader(s, z);
|
||||
assay->addResponseHeader(s, s);
|
||||
assay->addResponseHeader(z, z);
|
||||
assay->addResponseHeader(z, s);
|
||||
assay->processResponseHeaders();
|
||||
assay->appendResponseBody((const unsigned char *)s.c_str(), s.length());
|
||||
assay->processResponseBody();
|
||||
transaction->processConnection(s.c_str(), 123, s.c_str(), 123);
|
||||
transaction->processURI(s.c_str(), z.c_str(), z.c_str());
|
||||
transaction->addRequestHeader(s, z);
|
||||
transaction->addRequestHeader(s, s);
|
||||
transaction->addRequestHeader(z, z);
|
||||
transaction->addRequestHeader(z, s);
|
||||
transaction->processRequestHeaders();
|
||||
transaction->appendRequestBody((const unsigned char *)s.c_str(), s.length());
|
||||
transaction->processRequestBody();
|
||||
transaction->addResponseHeader(s, z);
|
||||
transaction->addResponseHeader(s, s);
|
||||
transaction->addResponseHeader(z, z);
|
||||
transaction->addResponseHeader(z, s);
|
||||
transaction->processResponseHeaders();
|
||||
transaction->appendResponseBody((const unsigned char *)s.c_str(), s.length());
|
||||
transaction->processResponseBody();
|
||||
#endif
|
||||
|
||||
|
||||
delete assay;
|
||||
delete transaction;
|
||||
delete rules;
|
||||
delete ms;
|
||||
|
||||
|
@@ -25,8 +25,8 @@
|
||||
#include "src/utils.h"
|
||||
#include "parser/driver.h"
|
||||
#include "utils/https_client.h"
|
||||
#include "modsecurity/assay.h"
|
||||
#include "modsecurity/rules_properties.h"
|
||||
#include "modsecurity/transaction.h"
|
||||
|
||||
void print_help() {
|
||||
std::cout << "Use ./optimization /path/to/files.something" << std::endl;
|
||||
|
@@ -52,7 +52,7 @@ void print_help() {
|
||||
|
||||
|
||||
void actions(ModSecurityTestResults<RegressionTest> *r,
|
||||
modsecurity::Assay *a) {
|
||||
modsecurity::Transaction *a) {
|
||||
modsecurity::ModSecurityIntervention it;
|
||||
memset(&it, '\0', sizeof(modsecurity::ModSecurityIntervention));
|
||||
it.status = 200;
|
||||
@@ -83,7 +83,7 @@ void perform_unit_test(std::vector<RegressionTest *> *tests,
|
||||
CustomDebugLog *debug_log = new CustomDebugLog();
|
||||
modsecurity::ModSecurity *modsec = NULL;
|
||||
modsecurity::Rules *modsec_rules = NULL;
|
||||
modsecurity::Assay *modsec_assay = NULL;
|
||||
modsecurity::Transaction *modsec_transaction = NULL;
|
||||
ModSecurityTestResults<RegressionTest> r;
|
||||
std::stringstream serverLog;
|
||||
RegressionTestResult *testRes = new RegressionTestResult();
|
||||
@@ -131,7 +131,10 @@ void perform_unit_test(std::vector<RegressionTest *> *tests,
|
||||
if (modsec_rules->load(t->rules.c_str(), filename) < 0) {
|
||||
/* Parser error */
|
||||
if (t->parser_error.empty() == true) {
|
||||
/* Not expecting any error, thus return the error to the user. */
|
||||
/*
|
||||
* Not expecting any error, thus return the error to
|
||||
* the user.
|
||||
*/
|
||||
std::cout << KRED << "failed!" << RESET << std::endl;
|
||||
testRes->reason << KRED << "parse failed." << RESET \
|
||||
<< std::endl;
|
||||
@@ -182,69 +185,69 @@ void perform_unit_test(std::vector<RegressionTest *> *tests,
|
||||
}
|
||||
}
|
||||
|
||||
modsec_assay = new modsecurity::Assay(modsec, modsec_rules,
|
||||
modsec_transaction = new modsecurity::Transaction(modsec, modsec_rules,
|
||||
&serverLog);
|
||||
|
||||
modsec_assay->processConnection(t->clientIp.c_str(),
|
||||
modsec_transaction->processConnection(t->clientIp.c_str(),
|
||||
t->clientPort, t->serverIp.c_str(), t->serverPort);
|
||||
|
||||
actions(&r, modsec_assay);
|
||||
actions(&r, modsec_transaction);
|
||||
if (r.status != 200) {
|
||||
goto end;
|
||||
}
|
||||
|
||||
modsec_assay->processURI(t->uri.c_str(), t->method.c_str(),
|
||||
modsec_transaction->processURI(t->uri.c_str(), t->method.c_str(),
|
||||
t->httpVersion.c_str());
|
||||
|
||||
actions(&r, modsec_assay);
|
||||
actions(&r, modsec_transaction);
|
||||
if (r.status != 200) {
|
||||
goto end;
|
||||
}
|
||||
|
||||
for (std::pair<std::string, std::string> headers :
|
||||
t->request_headers) {
|
||||
modsec_assay->addRequestHeader(headers.first.c_str(),
|
||||
modsec_transaction->addRequestHeader(headers.first.c_str(),
|
||||
headers.second.c_str());
|
||||
}
|
||||
|
||||
modsec_assay->processRequestHeaders();
|
||||
actions(&r, modsec_assay);
|
||||
modsec_transaction->processRequestHeaders();
|
||||
actions(&r, modsec_transaction);
|
||||
if (r.status != 200) {
|
||||
goto end;
|
||||
}
|
||||
|
||||
modsec_assay->appendRequestBody(
|
||||
modsec_transaction->appendRequestBody(
|
||||
(unsigned char *)t->request_body.c_str(),
|
||||
t->request_body.size());
|
||||
modsec_assay->processRequestBody();
|
||||
actions(&r, modsec_assay);
|
||||
modsec_transaction->processRequestBody();
|
||||
actions(&r, modsec_transaction);
|
||||
if (r.status != 200) {
|
||||
goto end;
|
||||
}
|
||||
|
||||
for (std::pair<std::string, std::string> headers :
|
||||
t->response_headers) {
|
||||
modsec_assay->addResponseHeader(headers.first.c_str(),
|
||||
modsec_transaction->addResponseHeader(headers.first.c_str(),
|
||||
headers.second.c_str());
|
||||
}
|
||||
|
||||
modsec_assay->processResponseHeaders();
|
||||
actions(&r, modsec_assay);
|
||||
modsec_transaction->processResponseHeaders();
|
||||
actions(&r, modsec_transaction);
|
||||
if (r.status != 200) {
|
||||
goto end;
|
||||
}
|
||||
|
||||
modsec_assay->appendResponseBody(
|
||||
modsec_transaction->appendResponseBody(
|
||||
(unsigned char *)t->response_body.c_str(),
|
||||
t->response_body.size());
|
||||
modsec_assay->processResponseBody();
|
||||
actions(&r, modsec_assay);
|
||||
modsec_transaction->processResponseBody();
|
||||
actions(&r, modsec_transaction);
|
||||
if (r.status != 200) {
|
||||
goto end;
|
||||
}
|
||||
|
||||
end:
|
||||
modsec_assay->processLogging(r.status);
|
||||
modsec_transaction->processLogging(r.status);
|
||||
|
||||
CustomDebugLog *d = reinterpret_cast<CustomDebugLog *>
|
||||
(modsec_rules->m_debugLog);
|
||||
@@ -281,7 +284,7 @@ after_debug_log:
|
||||
r.log_raw_debug_log = d->log_messages();
|
||||
}
|
||||
|
||||
delete modsec_assay;
|
||||
delete modsec_transaction;
|
||||
delete modsec_rules;
|
||||
delete modsec;
|
||||
/* delete debug_log; */
|
||||
|
Reference in New Issue
Block a user