Skip to content

Commit 5d1ea0a

Browse files
committed
Avoid passing RuleMessage by std::shared_ptr and use a reference instead.
- Avoids copying std::shared_ptr when lifetime of the RuleMessage is controlled by the caller.
1 parent 0f27848 commit 5d1ea0a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+202
-230
lines changed

examples/reading_logs_via_rule_message/reading_logs_via_rule_message.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,13 +160,13 @@ class ReadingLogsViaRuleMessage {
160160
std::cout << std::endl;
161161
if (ruleMessage->m_isDisruptive) {
162162
std::cout << " * Disruptive action: ";
163-
std::cout << modsecurity::RuleMessage::log(ruleMessage);
163+
std::cout << modsecurity::RuleMessage::log(*ruleMessage);
164164
std::cout << std::endl;
165165
std::cout << " ** %d is meant to be informed by the webserver.";
166166
std::cout << std::endl;
167167
} else {
168168
std::cout << " * Match, but no disruptive action: ";
169-
std::cout << modsecurity::RuleMessage::log(ruleMessage);
169+
std::cout << modsecurity::RuleMessage::log(*ruleMessage);
170170
std::cout << std::endl;
171171
}
172172
}

examples/using_bodies_in_chunks/simple_request.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,13 @@ static void logCb(void *data, const void *ruleMessagev) {
8181
std::cout << std::endl;
8282
if (ruleMessage->m_isDisruptive) {
8383
std::cout << " * Disruptive action: ";
84-
std::cout << modsecurity::RuleMessage::log(ruleMessage);
84+
std::cout << modsecurity::RuleMessage::log(*ruleMessage);
8585
std::cout << std::endl;
8686
std::cout << " ** %d is meant to be informed by the webserver.";
8787
std::cout << std::endl;
8888
} else {
8989
std::cout << " * Match, but no disruptive action: ";
90-
std::cout << modsecurity::RuleMessage::log(ruleMessage);
90+
std::cout << modsecurity::RuleMessage::log(*ruleMessage);
9191
std::cout << std::endl;
9292
}
9393
}

headers/modsecurity/actions/action.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ class Action {
8989

9090
virtual bool evaluate(RuleWithActions *rule, Transaction *transaction);
9191
virtual bool evaluate(RuleWithActions *rule, Transaction *transaction,
92-
std::shared_ptr<RuleMessage> ruleMessage) {
92+
RuleMessage &ruleMessage) {
9393
return evaluate(rule, transaction);
9494
}
9595
virtual bool init(std::string *error) { return true; }

headers/modsecurity/modsecurity.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ class ModSecurity {
292292
*/
293293
void setServerLogCb(ModSecLogCb cb, int properties);
294294

295-
void serverLog(void *data, std::shared_ptr<RuleMessage> rm);
295+
void serverLog(void *data, const RuleMessage &rm);
296296

297297
const std::string& getConnectorInformation() const;
298298

headers/modsecurity/rule.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,7 @@ class Rule {
8181

8282
virtual bool evaluate(Transaction *transaction) = 0;
8383

84-
virtual bool evaluate(Transaction *transaction,
85-
std::shared_ptr<RuleMessage> rm) = 0;
84+
virtual bool evaluate(Transaction *transaction, RuleMessage &ruleMessage) = 0;
8685

8786
const std::string& getFileName() const {
8887
return m_fileName;

headers/modsecurity/rule_marker.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ class RuleMarker : public Rule {
4848

4949
RuleMarker &operator=(const RuleMarker &r) = delete;
5050

51-
virtual bool evaluate(Transaction *transaction,
52-
std::shared_ptr<RuleMessage> rm) override {
51+
virtual bool evaluate(Transaction *transaction, RuleMessage &ruleMessage) override {
5352
return evaluate(transaction);
5453
}
5554

headers/modsecurity/rule_message.h

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -59,30 +59,30 @@ class RuleMessage {
5959
RuleMessage(const RuleMessage &ruleMessage) = default;
6060
RuleMessage &operator=(const RuleMessage &ruleMessage) = delete;
6161

62-
std::string log() {
63-
return log(this, 0);
62+
std::string log() const {
63+
return log(*this, 0);
6464
}
65-
std::string log(int props) {
66-
return log(this, props);
65+
std::string log(int props) const {
66+
return log(*this, props);
6767
}
68-
std::string log(int props, int responseCode) {
69-
return log(this, props, responseCode);
68+
std::string log(int props, int responseCode) const {
69+
return log(*this, props, responseCode);
7070
}
71-
std::string errorLog() {
72-
return log(this,
73-
ClientLogMessageInfo | ErrorLogTailLogMessageInfo);
71+
std::string errorLog() const {
72+
return log(*this,
73+
ClientLogMessageInfo | ErrorLogTailLogMessageInfo);
7474
}
7575

76-
static std::string log(const RuleMessage *rm, int props, int code);
77-
static std::string log(const RuleMessage *rm, int props) {
76+
static std::string log(const RuleMessage &rm, int props, int code);
77+
static std::string log(const RuleMessage &rm, int props) {
7878
return log(rm, props, -1);
7979
}
80-
static std::string log(const RuleMessage *rm) {
80+
static std::string log(const RuleMessage &rm) {
8181
return log(rm, 0);
8282
}
8383

84-
static std::string _details(const RuleMessage *rm);
85-
static std::string _errorLogTail(const RuleMessage *rm);
84+
static std::string _details(const RuleMessage &rm);
85+
static std::string _errorLogTail(const RuleMessage &rm);
8686

8787
int getPhase() const { return m_rule.getPhase() - 1; }
8888

headers/modsecurity/rule_unconditional.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class RuleUnconditional : public RuleWithActions {
4646
int lineNumber)
4747
: RuleWithActions(actions, transformations, fileName, lineNumber) { }
4848

49-
virtual bool evaluate(Transaction *transaction, std::shared_ptr<RuleMessage> ruleMessage) override;
49+
virtual bool evaluate(Transaction *transaction, RuleMessage &ruleMessage) override;
5050
};
5151

5252

headers/modsecurity/rule_with_actions.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,21 @@ class RuleWithActions : public Rule {
4747

4848
virtual bool evaluate(Transaction *transaction) override;
4949

50-
virtual bool evaluate(Transaction *transaction, std::shared_ptr<RuleMessage> ruleMessage) override;
50+
virtual bool evaluate(Transaction *transaction, RuleMessage &ruleMessage) override;
5151

5252
void executeActionsIndependentOfChainedRuleResult(
5353
Transaction *trasn,
5454
bool *containsDisruptive,
55-
std::shared_ptr<RuleMessage> ruleMessage);
55+
RuleMessage &ruleMessage);
5656

5757
void executeActionsAfterFullMatch(
5858
Transaction *trasn,
5959
bool containsDisruptive,
60-
std::shared_ptr<RuleMessage> ruleMessage);
60+
RuleMessage &ruleMessage);
6161

6262
void executeAction(Transaction *trans,
6363
bool containsBlock,
64-
std::shared_ptr<RuleMessage> ruleMessage,
64+
RuleMessage &ruleMessage,
6565
actions::Action *a,
6666
bool context);
6767

@@ -70,9 +70,9 @@ class RuleWithActions : public Rule {
7070
const Transaction *trasn, const std::string &value, TransformationResults &ret);
7171

7272
void performLogging(Transaction *trans,
73-
std::shared_ptr<RuleMessage> ruleMessage,
73+
const RuleMessage &ruleMessage,
7474
bool lastLog = true,
75-
bool chainedParentNull = false);
75+
bool chainedParentNull = false) const;
7676

7777
std::vector<actions::Action *> getActionsByName(const std::string& name,
7878
Transaction *t);

headers/modsecurity/rule_with_operator.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,15 @@ class RuleWithOperator : public RuleWithActions {
4747

4848
virtual ~RuleWithOperator();
4949

50-
bool evaluate(Transaction *transaction,
51-
std::shared_ptr<RuleMessage> rm) override;
50+
bool evaluate(Transaction *transaction, RuleMessage &ruleMessage) override;
5251

5352
void getVariablesExceptions(Transaction &t,
5453
variables::Variables *exclusion, variables::Variables *addition);
5554
inline void getFinalVars(variables::Variables *vars,
5655
variables::Variables *eclusion, Transaction *trans);
5756

5857
bool executeOperatorAt(Transaction *trasn, const std::string &key,
59-
const std::string &value, std::shared_ptr<RuleMessage> rm);
58+
const std::string &value, RuleMessage &ruleMessage);
6059

6160
static void updateMatchedVars(Transaction *trasn, const std::string &key,
6261
const std::string &value);

0 commit comments

Comments
 (0)