mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-15 23:55:03 +03:00
- Leverage std::size to determine buffer size at compile time. - Simplified 'TimeMon::evaluate' implementation as it was using strftime to get the month, convert the string to int, and then decrement it by one to make it zero based. This same value is already available in the 'struct tm' previously generated with the call to localtime_r (and where the month is already zero-based)
61 lines
1.4 KiB
C++
61 lines
1.4 KiB
C++
/*
|
|
* ModSecurity, http://www.modsecurity.org/
|
|
* Copyright (c) 2015 - 2021 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
|
*
|
|
* You may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* If any of the files related to licensing are missing or if you have any
|
|
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
|
* directly using the email address security@modsecurity.org.
|
|
*
|
|
*/
|
|
|
|
#include "src/variables/time_wday.h"
|
|
|
|
#include <time.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
#include <fcntl.h>
|
|
|
|
#include <iostream>
|
|
#include <string>
|
|
#include <vector>
|
|
#include <list>
|
|
#include <utility>
|
|
|
|
#include "modsecurity/transaction.h"
|
|
|
|
#ifdef WIN32
|
|
#include "src/compat/msvc.h"
|
|
#endif
|
|
|
|
namespace modsecurity {
|
|
namespace variables {
|
|
|
|
void TimeWDay::evaluate(Transaction *transaction,
|
|
RuleWithActions *rule,
|
|
std::vector<const VariableValue *> *l) {
|
|
time_t timer;
|
|
time(&timer);
|
|
|
|
struct tm timeinfo;
|
|
localtime_r(&timer, &timeinfo);
|
|
|
|
char tstr[std::size("d")];
|
|
strftime(tstr, std::size(tstr), "%u", &timeinfo);
|
|
|
|
transaction->m_variableTimeWDay.assign(tstr);
|
|
|
|
l->push_back(new VariableValue(&m_retName,
|
|
&transaction->m_variableTimeWDay));
|
|
}
|
|
|
|
|
|
} // namespace variables
|
|
} // namespace modsecurity
|