diff --git a/server/modules/filter/fwfilter.c b/server/modules/filter/fwfilter.c index 4e81a7b4f..823553fa7 100644 --- a/server/modules/filter/fwfilter.c +++ b/server/modules/filter/fwfilter.c @@ -1138,6 +1138,15 @@ bool rule_is_active(RULE* rule) return true; } +/** + * Check if a query matches a single rule + * @param my_instance Fwfilter instance + * @param my_session Fwfilter session + * @param queue The GWBUF containing the query + * @param rulelist The rule to check + * @param query Pointer to the null-terminated query string + * @return true if the query matches the rule + */ bool rule_matches(FW_INSTANCE* my_instance, FW_SESSION* my_session, GWBUF *queue, RULELIST *rulelist, char* query) { char *ptr,*where,*msg = NULL; diff --git a/server/modules/filter/test/CMakeLists.txt b/server/modules/filter/test/CMakeLists.txt index 39967be6f..2de313c8b 100644 --- a/server/modules/filter/test/CMakeLists.txt +++ b/server/modules/filter/test/CMakeLists.txt @@ -15,12 +15,12 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fwtest.cnf.in ${CMAKE_CURRENT_BINARY_ -add_test(TestHintfilter /bin/sh -c "MAXSCALE_HOME=\"${CMAKE_BINARY_DIR}\" ${CMAKE_CURRENT_BINARY_DIR}/harness -i ${CMAKE_CURRENT_SOURCE_DIR}/hint_testing.input -o ${CMAKE_CURRENT_BINARY_DIR}/hint_testing.output -c ${CMAKE_CURRENT_SOURCE_DIR}/hint_testing.cnf -t 1 -s 1 -e ${CMAKE_CURRENT_SOURCE_DIR}/hint_testing.expected ") +add_test(TestHintfilter /bin/sh -c "MAXSCALE_HOME=\"${CMAKE_BINARY_DIR}\" ${CMAKE_CURRENT_BINARY_DIR}/harness -i ${CMAKE_CURRENT_SOURCE_DIR}/hintfilter/hint_testing.input -o ${CMAKE_CURRENT_BINARY_DIR}/hintfilter/hint_testing.output -c ${CMAKE_CURRENT_SOURCE_DIR}/hintfilter/hint_testing.cnf -t 1 -s 1 -e ${CMAKE_CURRENT_SOURCE_DIR}/hintfilter/hint_testing.expected ") -add_test(TestRegexfilter /bin/sh -c "MAXSCALE_HOME=\"${CMAKE_BINARY_DIR}\" ${CMAKE_CURRENT_BINARY_DIR}/harness -i ${CMAKE_CURRENT_SOURCE_DIR}/regextest.input -o ${CMAKE_CURRENT_BINARY_DIR}/regextest.output -c ${CMAKE_CURRENT_SOURCE_DIR}/regextest.cnf -t 1 -s 1 -e ${CMAKE_CURRENT_SOURCE_DIR}/regextest.expected ") +add_test(TestRegexfilter /bin/sh -c "MAXSCALE_HOME=\"${CMAKE_BINARY_DIR}\" ${CMAKE_CURRENT_BINARY_DIR}/harness -i ${CMAKE_CURRENT_SOURCE_DIR}/regexfilter/regextest.input -o ${CMAKE_CURRENT_BINARY_DIR}/regexfilter/regextest.output -c ${CMAKE_CURRENT_SOURCE_DIR}/regexfilter/regextest.cnf -t 1 -s 1 -e ${CMAKE_CURRENT_SOURCE_DIR}/regexfilter/regextest.expected ") -add_test(TestFwfilter /bin/sh -c "MAXSCALE_HOME=\"${CMAKE_BINARY_DIR}\" ${CMAKE_CURRENT_BINARY_DIR}/harness -i ${CMAKE_CURRENT_SOURCE_DIR}/fwtest.input -o ${CMAKE_CURRENT_BINARY_DIR}/fwtest.output -c ${CMAKE_CURRENT_BINARY_DIR}/fwfilter.cnf -t 1 -s 1 -e ${CMAKE_CURRENT_SOURCE_DIR}/fwtest.expected ") +add_test(TestFwfilter /bin/sh -c "MAXSCALE_HOME=\"${CMAKE_BINARY_DIR}\" ${CMAKE_CURRENT_BINARY_DIR}/harness -i ${CMAKE_CURRENT_SOURCE_DIR}/fwfilter/fwtest.input -o ${CMAKE_CURRENT_BINARY_DIR}/fwfilter/fwtest.output -c ${CMAKE_CURRENT_BINARY_DIR}/fwfilter/fwfilter.cnf -t 1 -s 1 -e ${CMAKE_CURRENT_SOURCE_DIR}/fwfilter/fwtest.expected ") -add_test(TestFwfilter2 /bin/sh -c "MAXSCALE_HOME=\"${CMAKE_BINARY_DIR}\" ${CMAKE_CURRENT_BINARY_DIR}/harness -i ${CMAKE_CURRENT_SOURCE_DIR}/fwtest2.input -o ${CMAKE_CURRENT_BINARY_DIR}/fwtest2.output -c ${CMAKE_CURRENT_BINARY_DIR}/fwfilter.cnf -t 1 -s 1 -e ${CMAKE_CURRENT_SOURCE_DIR}/fwtest2.expected ") +add_test(TestFwfilter2 /bin/sh -c "MAXSCALE_HOME=\"${CMAKE_BINARY_DIR}\" ${CMAKE_CURRENT_BINARY_DIR}/harness -i ${CMAKE_CURRENT_SOURCE_DIR}/fwfilter/fwtest2.input -o ${CMAKE_CURRENT_BINARY_DIR}/fwfilter/fwtest2.output -c ${CMAKE_CURRENT_BINARY_DIR}/fwfilter/fwfilter.cnf -t 1 -s 1 -e ${CMAKE_CURRENT_SOURCE_DIR}/fwfilter/fwtest2.expected ") -add_test(TestFwfilter3 /bin/sh -c "MAXSCALE_HOME=\"${CMAKE_BINARY_DIR}\" ${CMAKE_CURRENT_BINARY_DIR}/harness -i ${CMAKE_CURRENT_SOURCE_DIR}/fwtest3.input -o ${CMAKE_CURRENT_BINARY_DIR}/fwtest3.output -c ${CMAKE_CURRENT_BINARY_DIR}/fwfilter.cnf -t 1 -s 1 -e ${CMAKE_CURRENT_SOURCE_DIR}/fwtest3.expected ") \ No newline at end of file +add_test(TestFwfilter3 /bin/sh -c "MAXSCALE_HOME=\"${CMAKE_BINARY_DIR}\" ${CMAKE_CURRENT_BINARY_DIR}/harness -i ${CMAKE_CURRENT_SOURCE_DIR}/fwfilter/fwtest3.input -o ${CMAKE_CURRENT_BINARY_DIR}/fwfilter/fwtest3.output -c ${CMAKE_CURRENT_BINARY_DIR}/fwfilter/fwfilter.cnf -t 1 -s 1 -e ${CMAKE_CURRENT_SOURCE_DIR}/fwfilter/fwtest3.expected ") \ No newline at end of file diff --git a/server/modules/filter/test/fwtest.cnf.in b/server/modules/filter/test/fwfilter/fwtest.cnf.in similarity index 100% rename from server/modules/filter/test/fwtest.cnf.in rename to server/modules/filter/test/fwfilter/fwtest.cnf.in diff --git a/server/modules/filter/test/fwtest.expected b/server/modules/filter/test/fwfilter/fwtest.expected similarity index 100% rename from server/modules/filter/test/fwtest.expected rename to server/modules/filter/test/fwfilter/fwtest.expected diff --git a/server/modules/filter/test/fwtest.input b/server/modules/filter/test/fwfilter/fwtest.input similarity index 100% rename from server/modules/filter/test/fwtest.input rename to server/modules/filter/test/fwfilter/fwtest.input diff --git a/server/modules/filter/test/fwtest.output b/server/modules/filter/test/fwfilter/fwtest.output similarity index 100% rename from server/modules/filter/test/fwtest.output rename to server/modules/filter/test/fwfilter/fwtest.output diff --git a/server/modules/filter/test/fwtest2.expected b/server/modules/filter/test/fwfilter/fwtest2.expected similarity index 100% rename from server/modules/filter/test/fwtest2.expected rename to server/modules/filter/test/fwfilter/fwtest2.expected diff --git a/server/modules/filter/test/fwtest2.input b/server/modules/filter/test/fwfilter/fwtest2.input similarity index 100% rename from server/modules/filter/test/fwtest2.input rename to server/modules/filter/test/fwfilter/fwtest2.input diff --git a/server/modules/filter/test/hint_testing.cnf b/server/modules/filter/test/hintfilter/hint_testing.cnf similarity index 100% rename from server/modules/filter/test/hint_testing.cnf rename to server/modules/filter/test/hintfilter/hint_testing.cnf diff --git a/server/modules/filter/test/hint_testing.expected b/server/modules/filter/test/hintfilter/hint_testing.expected similarity index 100% rename from server/modules/filter/test/hint_testing.expected rename to server/modules/filter/test/hintfilter/hint_testing.expected diff --git a/server/modules/filter/test/hint_testing.input b/server/modules/filter/test/hintfilter/hint_testing.input similarity index 100% rename from server/modules/filter/test/hint_testing.input rename to server/modules/filter/test/hintfilter/hint_testing.input diff --git a/server/modules/filter/test/hint_tests.sh b/server/modules/filter/test/hintfilter/hint_tests.sh similarity index 100% rename from server/modules/filter/test/hint_tests.sh rename to server/modules/filter/test/hintfilter/hint_tests.sh diff --git a/server/modules/filter/test/regextest.cnf b/server/modules/filter/test/regexfilter/regextest.cnf similarity index 100% rename from server/modules/filter/test/regextest.cnf rename to server/modules/filter/test/regexfilter/regextest.cnf diff --git a/server/modules/filter/test/regextest.expected b/server/modules/filter/test/regexfilter/regextest.expected similarity index 100% rename from server/modules/filter/test/regextest.expected rename to server/modules/filter/test/regexfilter/regextest.expected diff --git a/server/modules/filter/test/regextest.input b/server/modules/filter/test/regexfilter/regextest.input similarity index 100% rename from server/modules/filter/test/regextest.input rename to server/modules/filter/test/regexfilter/regextest.input