Adds protocol and http version to processUri method's signature

Protocol and http version will be further used to fill some variables
and the audit log.
This commit is contained in:
Felipe Zimmerle
2015-07-08 13:50:17 -03:00
parent 2109910848
commit 278b513933
12 changed files with 79 additions and 27 deletions

View File

@@ -85,12 +85,13 @@ void perform_unit_test(std::vector<RegressionTest *> *tests,
if (r.status != 200) {
goto end;
}
if (t->uri.empty() == false) {
modsec_assay->processURI(t->uri.c_str());
actions(&r, modsec_assay->intervention());
if (r.status != 200) {
goto end;
}
modsec_assay->processURI(t->uri.c_str(), t->protocol.c_str(),
t->httpVersion.c_str());
actions(&r, modsec_assay->intervention());
if (r.status != 200) {
goto end;
}
for (std::pair<std::string, std::string> headers :

View File

@@ -141,6 +141,12 @@ RegressionTest *RegressionTest::from_yajl_node(const yajl_val &node) {
if (strcmp(key2, "uri") == 0) {
u->uri = YAJL_GET_STRING(val2);
}
if (strcmp(key2, "protocol") == 0) {
u->protocol = YAJL_GET_STRING(val2);
}
if (strcmp(key2, "http_version") == 0) {
u->httpVersion = YAJL_GET_NUMBER(val2);
}
if (strcmp(key2, "headers") == 0) {
u->request_headers = yajl_array_to_map(val2);
}

View File

@@ -56,6 +56,8 @@ class RegressionTest {
int clientPort;
int serverPort;
std::string protocol;
std::string httpVersion;
std::string uri;
static inline std::string yajl_array_to_str(const yajl_val &node);