From 14293666e3af0fe9bd9ffca323fadd881d322fe2 Mon Sep 17 00:00:00 2001 From: Felipe Zimmerle Date: Wed, 18 Apr 2018 13:15:05 -0300 Subject: [PATCH] Open space for GitHub pages --- .gitignore | 50 - .gitmodules | 9 - .travis.yml | 52 - AUTHORS | 3 - CHANGES | 167 - LICENSE | 201 - Makefile.am | 304 - README.md | 261 - bindings/python | 1 - build.sh | 13 - build/.empty | 0 build/ax_cxx_compile_stdcxx_11.m4 | 171 - build/ax_prog_doxygen.m4 | 533 - build/ax_valgrind_check.m4 | 236 - build/curl.m4 | 131 - build/libgeoip.m4 | 191 - build/libmaxmind.m4 | 194 - build/libxml.m4 | 111 - build/lmdb.m4 | 187 - build/lua.m4 | 240 - build/pcre.m4 | 109 - build/release.sh | 21 - build/ssdeep.m4 | 147 - build/yajl.m4 | 176 - configure.ac | 601 - doc/.empty | 0 doc/Makefile.am | 17 - doc/doxygen.cfg | 2403 ---- doc/ms-doxygen-logo.png | Bin 10555 -> 0 bytes examples/Makefile.am | 21 - examples/multiprocess_c/Makefile.am | 34 - examples/multiprocess_c/basic_rules.conf | 14 - examples/multiprocess_c/multi.c | 139 - .../reading_logs_via_rule_message/Makefile.am | 52 - .../blocked_request.conf | 3 - .../blocked_request_engine_on.conf | 2 - .../reading_logs_via_rule_message/match.conf | 1 - .../no_match.conf | 1 - .../reading_logs_via_rule_message.h | 211 - .../simple_request.cc | 42 - examples/reading_logs_with_offset/Makefile.am | 52 - examples/reading_logs_with_offset/read.cc | 34 - examples/simple_example_using_c/Makefile.am | 31 - .../simple_example_using_c/basic_rules.conf | 223 - .../simple_example_using_c/test-valgrind.sh | 4 - examples/simple_example_using_c/test.c | 77 - examples/using_bodies_in_chunks/Makefile.am | 52 - examples/using_bodies_in_chunks/example.conf | 3 - .../using_bodies_in_chunks/simple_request.cc | 279 - headers/modsecurity/actions/action.h | 156 - headers/modsecurity/anchored_set_variable.h | 104 - headers/modsecurity/anchored_variable.h | 75 - headers/modsecurity/audit_log.h | 224 - headers/modsecurity/collection/collection.h | 197 - headers/modsecurity/collection/collections.h | 73 - headers/modsecurity/debug_log.h | 61 - headers/modsecurity/intervention.h | 71 - headers/modsecurity/modsecurity.h | 337 - headers/modsecurity/rule.h | 126 - headers/modsecurity/rule_message.h | 124 - headers/modsecurity/rules.h | 106 - headers/modsecurity/rules_exceptions.h | 87 - headers/modsecurity/rules_properties.h | 504 - headers/modsecurity/transaction.h | 657 -- headers/modsecurity/variable_origin.h | 56 - headers/modsecurity/variable_value.h | 109 - modsecurity.conf-recommended | 220 - others/Makefile.am | 28 - others/libinjection | 1 - others/mbedtls/base64.c | 289 - others/mbedtls/base64.h | 88 - others/mbedtls/check_config.h | 540 - others/mbedtls/mbed-tls-config.h | 2511 ----- others/mbedtls/md5.c | 404 - others/mbedtls/md5.h | 136 - others/mbedtls/platform.h | 214 - others/mbedtls/sha1.c | 448 - others/mbedtls/sha1.h | 136 - others/modsec.png | Bin 34980 -> 0 bytes src/Makefile.am | 341 - src/actions/accuracy.cc | 49 - src/actions/accuracy.h | 47 - src/actions/action.cc | 60 - src/actions/audit_log.cc | 37 - src/actions/audit_log.h | 47 - src/actions/capture.cc | 41 - src/actions/capture.h | 41 - src/actions/chain.cc | 35 - src/actions/chain.h | 45 - src/actions/ctl/audit_log_parts.cc | 50 - src/actions/ctl/audit_log_parts.h | 49 - src/actions/ctl/request_body_access.cc | 58 - src/actions/ctl/request_body_access.h | 47 - .../ctl/request_body_processor_json.cc | 40 - src/actions/ctl/request_body_processor_json.h | 42 - src/actions/ctl/request_body_processor_xml.cc | 40 - src/actions/ctl/request_body_processor_xml.h | 42 - src/actions/ctl/rule_engine.cc | 64 - src/actions/ctl/rule_engine.h | 48 - src/actions/ctl/rule_remove_by_id.cc | 50 - src/actions/ctl/rule_remove_by_id.h | 47 - src/actions/ctl/rule_remove_by_tag.cc | 43 - src/actions/ctl/rule_remove_by_tag.h | 47 - src/actions/ctl/rule_remove_target_by_id.cc | 63 - src/actions/ctl/rule_remove_target_by_id.h | 49 - src/actions/ctl/rule_remove_target_by_tag.cc | 56 - src/actions/ctl/rule_remove_target_by_tag.h | 47 - src/actions/data/status.cc | 50 - src/actions/data/status.h | 52 - src/actions/disruptive/allow.cc | 66 - src/actions/disruptive/allow.h | 88 - src/actions/disruptive/block.cc | 53 - src/actions/disruptive/block.h | 50 - src/actions/disruptive/deny.cc | 53 - src/actions/disruptive/deny.h | 45 - src/actions/disruptive/pass.cc | 46 - src/actions/disruptive/pass.h | 45 - src/actions/disruptive/redirect.cc | 59 - src/actions/disruptive/redirect.h | 63 - src/actions/exec.cc | 61 - src/actions/exec.h | 51 - src/actions/init_col.cc | 79 - src/actions/init_col.h | 52 - src/actions/log.cc | 42 - src/actions/log.h | 44 - src/actions/log_data.cc | 48 - src/actions/log_data.h | 54 - src/actions/maturity.cc | 49 - src/actions/maturity.h | 47 - src/actions/msg.cc | 70 - src/actions/msg.h | 54 - src/actions/multi_match.cc | 34 - src/actions/multi_match.h | 45 - src/actions/no_audit_log.cc | 37 - src/actions/no_audit_log.h | 46 - src/actions/no_log.cc | 40 - src/actions/no_log.h | 44 - src/actions/phase.cc | 88 - src/actions/phase.h | 50 - src/actions/rev.cc | 43 - src/actions/rev.h | 45 - src/actions/rule_id.cc | 58 - src/actions/rule_id.h | 50 - src/actions/set_rsc.cc | 49 - src/actions/set_rsc.h | 53 - src/actions/set_sid.cc | 49 - src/actions/set_sid.h | 53 - src/actions/set_uid.cc | 49 - src/actions/set_uid.h | 53 - src/actions/set_var.cc | 159 - src/actions/set_var.h | 72 - src/actions/severity.cc | 94 - src/actions/severity.h | 50 - src/actions/skip.cc | 53 - src/actions/skip.h | 46 - src/actions/skip_after.cc | 39 - src/actions/skip_after.h | 42 - src/actions/tag.cc | 74 - src/actions/tag.h | 52 - src/actions/transformations/base64_decode.cc | 45 - src/actions/transformations/base64_decode.h | 45 - .../transformations/base64_decode_ext.cc | 45 - .../transformations/base64_decode_ext.h | 45 - src/actions/transformations/base64_encode.cc | 45 - src/actions/transformations/base64_encode.h | 45 - src/actions/transformations/cmd_line.cc | 87 - src/actions/transformations/cmd_line.h | 47 - .../transformations/compress_whitespace.cc | 66 - .../transformations/compress_whitespace.h | 44 - src/actions/transformations/css_decode.cc | 196 - src/actions/transformations/css_decode.h | 49 - .../transformations/escape_seq_decode.cc | 162 - .../transformations/escape_seq_decode.h | 45 - src/actions/transformations/hex_decode.cc | 79 - src/actions/transformations/hex_decode.h | 47 - src/actions/transformations/hex_encode.cc | 53 - src/actions/transformations/hex_encode.h | 44 - .../transformations/html_entity_decode.cc | 208 - .../transformations/html_entity_decode.h | 52 - src/actions/transformations/js_decode.cc | 168 - src/actions/transformations/js_decode.h | 47 - src/actions/transformations/length.cc | 46 - src/actions/transformations/length.h | 44 - src/actions/transformations/lower_case.cc | 47 - src/actions/transformations/lower_case.h | 46 - src/actions/transformations/md5.cc | 44 - src/actions/transformations/md5.h | 45 - src/actions/transformations/none.cc | 42 - src/actions/transformations/none.h | 47 - src/actions/transformations/normalise_path.cc | 228 - src/actions/transformations/normalise_path.h | 47 - .../transformations/normalise_path_win.cc | 60 - .../transformations/normalise_path_win.h | 45 - .../transformations/parity_even_7bit.cc | 82 - .../transformations/parity_even_7bit.h | 45 - .../transformations/parity_odd_7bit.cc | 81 - src/actions/transformations/parity_odd_7bit.h | 45 - .../transformations/parity_zero_7bit.cc | 73 - .../transformations/parity_zero_7bit.h | 45 - .../transformations/remove_comments.cc | 112 - src/actions/transformations/remove_comments.h | 47 - .../transformations/remove_comments_char.cc | 77 - .../transformations/remove_comments_char.h | 44 - src/actions/transformations/remove_nulls.cc | 55 - src/actions/transformations/remove_nulls.h | 46 - .../transformations/remove_whitespace.cc | 63 - .../transformations/remove_whitespace.h | 44 - .../transformations/replace_comments.cc | 88 - .../transformations/replace_comments.h | 44 - src/actions/transformations/replace_nulls.cc | 57 - src/actions/transformations/replace_nulls.h | 44 - src/actions/transformations/sha1.cc | 47 - src/actions/transformations/sha1.h | 44 - src/actions/transformations/sql_hex_decode.cc | 113 - src/actions/transformations/sql_hex_decode.h | 54 - src/actions/transformations/transformation.cc | 124 - src/actions/transformations/transformation.h | 49 - src/actions/transformations/trim.cc | 68 - src/actions/transformations/trim.h | 48 - src/actions/transformations/trim_left.cc | 48 - src/actions/transformations/trim_left.h | 45 - src/actions/transformations/trim_right.cc | 46 - src/actions/transformations/trim_right.h | 45 - src/actions/transformations/upper_case.cc | 47 - src/actions/transformations/upper_case.h | 46 - src/actions/transformations/url_decode.cc | 64 - src/actions/transformations/url_decode.h | 46 - src/actions/transformations/url_decode_uni.cc | 192 - src/actions/transformations/url_decode_uni.h | 46 - src/actions/transformations/url_encode.cc | 102 - src/actions/transformations/url_encode.h | 47 - .../transformations/utf8_to_unicode.cc | 314 - src/actions/transformations/utf8_to_unicode.h | 52 - src/actions/ver.cc | 37 - src/actions/ver.h | 44 - src/actions/xmlns.cc | 62 - src/actions/xmlns.h | 48 - src/anchored_set_variable.cc | 122 - src/anchored_variable.cc | 141 - src/audit_log/audit_log.cc | 369 - src/audit_log/writer/https.cc | 63 - src/audit_log/writer/https.h | 52 - src/audit_log/writer/parallel.cc | 196 - src/audit_log/writer/parallel.h | 76 - src/audit_log/writer/serial.cc | 54 - src/audit_log/writer/serial.h | 57 - src/audit_log/writer/writer.cc | 39 - src/audit_log/writer/writer.h | 80 - .../backend/in_memory-per_process.cc | 167 - .../backend/in_memory-per_process.h | 105 - src/collection/backend/lmdb.cc | 621 - src/collection/backend/lmdb.h | 88 - src/collection/collections.cc | 57 - src/debug_log/debug_log.cc | 85 - src/debug_log/debug_log_writer.cc | 55 - src/debug_log/debug_log_writer.h | 66 - src/debug_log_writer_agent.h | 55 - src/engine/lua.cc | 467 - src/engine/lua.h | 104 - src/modsecurity.cc | 496 - src/operators/.directory | 6 - src/operators/begins_with.cc | 43 - src/operators/begins_with.h | 43 - src/operators/contains.cc | 40 - src/operators/contains.h | 46 - src/operators/contains_word.cc | 77 - src/operators/contains_word.h | 46 - src/operators/detect_sqli.cc | 67 - src/operators/detect_sqli.h | 44 - src/operators/detect_xss.cc | 60 - src/operators/detect_xss.h | 43 - src/operators/ends_with.cc | 45 - src/operators/ends_with.h | 46 - src/operators/eq.cc | 48 - src/operators/eq.h | 41 - src/operators/fuzzy_hash.cc | 129 - src/operators/fuzzy_hash.h | 59 - src/operators/ge.cc | 37 - src/operators/ge.h | 42 - src/operators/geo_lookup.cc | 55 - src/operators/geo_lookup.h | 39 - src/operators/gsblookup.cc | 36 - src/operators/gsblookup.h | 41 - src/operators/gt.cc | 36 - src/operators/gt.h | 43 - src/operators/inspect_file.cc | 87 - src/operators/inspect_file.h | 50 - src/operators/ip_match.cc | 46 - src/operators/ip_match.h | 49 - src/operators/ip_match_f.cc | 27 - src/operators/ip_match_f.h | 39 - src/operators/ip_match_from_file.cc | 53 - src/operators/ip_match_from_file.h | 41 - src/operators/le.cc | 36 - src/operators/le.h | 45 - src/operators/lt.cc | 35 - src/operators/lt.h | 44 - src/operators/no_match.cc | 29 - src/operators/no_match.h | 42 - src/operators/operator.cc | 210 - src/operators/operator.h | 154 - src/operators/pm.cc | 159 - src/operators/pm.h | 68 - src/operators/pm_f.cc | 27 - src/operators/pm_f.h | 42 - src/operators/pm_from_file.cc | 66 - src/operators/pm_from_file.h | 46 - src/operators/rbl.cc | 240 - src/operators/rbl.h | 102 - src/operators/rsub.cc | 36 - src/operators/rsub.h | 43 - src/operators/rx.cc | 89 - src/operators/rx.h | 74 - src/operators/str_eq.cc | 30 - src/operators/str_eq.h | 44 - src/operators/str_match.cc | 36 - src/operators/str_match.h | 44 - src/operators/unconditional_match.cc | 27 - src/operators/unconditional_match.h | 41 - src/operators/validate_byte_range.cc | 138 - src/operators/validate_byte_range.h | 54 - src/operators/validate_dtd.cc | 118 - src/operators/validate_dtd.h | 104 - src/operators/validate_hash.cc | 35 - src/operators/validate_hash.h | 41 - src/operators/validate_schema.cc | 154 - src/operators/validate_schema.h | 148 - src/operators/validate_url_encoding.cc | 130 - src/operators/validate_url_encoding.h | 45 - src/operators/validate_utf8_encoding.cc | 208 - src/operators/validate_utf8_encoding.h | 54 - src/operators/verify_cc.cc | 171 - src/operators/verify_cc.h | 52 - src/operators/verify_cpf.cc | 157 - src/operators/verify_cpf.h | 68 - src/operators/verify_ssn.cc | 148 - src/operators/verify_ssn.h | 68 - src/operators/within.cc | 48 - src/operators/within.h | 44 - src/parser/Makefile.am | 45 - src/parser/driver.cc | 214 - src/parser/driver.h | 89 - src/parser/location.hh | 192 - src/parser/position.hh | 180 - src/parser/seclang-parser.cc | 6420 ----------- src/parser/seclang-parser.hh | 6055 ---------- src/parser/seclang-parser.yy | 2929 ----- src/parser/seclang-scanner.cc | 9997 ----------------- src/parser/seclang-scanner.ll | 1317 --- src/parser/stack.hh | 157 - src/request_body_processor/json.cc | 289 - src/request_body_processor/json.h | 128 - src/request_body_processor/multipart.cc | 1671 --- src/request_body_processor/multipart.h | 207 - src/request_body_processor/xml.cc | 155 - src/request_body_processor/xml.h | 73 - src/rule.cc | 947 -- src/rule_message.cc | 96 - src/rule_script.cc | 48 - src/rule_script.h | 66 - src/rules.cc | 361 - src/rules_exceptions.cc | 227 - src/run_time_string.cc | 69 - src/run_time_string.h | 67 - src/transaction.cc | 2237 ---- src/unique_id.cc | 233 - src/unique_id.h | 67 - src/utils/acmp.cc | 590 - src/utils/acmp.h | 196 - src/utils/base64.cc | 220 - src/utils/base64.h | 45 - src/utils/decode.cc | 124 - src/utils/decode.h | 40 - src/utils/geo_lookup.cc | 301 - src/utils/geo_lookup.h | 79 - src/utils/https_client.cc | 134 - src/utils/https_client.h | 63 - src/utils/ip_tree.cc | 156 - src/utils/ip_tree.h | 50 - src/utils/md5.cc | 40 - src/utils/md5.h | 41 - src/utils/msc_tree.cc | 1141 -- src/utils/msc_tree.h | 105 - src/utils/phase.h | 59 - src/utils/random.cc | 45 - src/utils/random.h | 39 - src/utils/regex.cc | 132 - src/utils/regex.h | 71 - src/utils/sha1.cc | 60 - src/utils/sha1.h | 38 - src/utils/shared_files.cc | 245 - src/utils/shared_files.h | 156 - src/utils/string.cc | 255 - src/utils/string.h | 83 - src/utils/system.cc | 170 - src/utils/system.h | 42 - src/variables/args.h | 82 - src/variables/args_combined_size.h | 47 - src/variables/args_get.h | 81 - src/variables/args_get_names.h | 79 - src/variables/args_names.h | 79 - src/variables/args_post.h | 81 - src/variables/args_post_names.h | 79 - src/variables/auth_type.h | 47 - src/variables/duration.cc | 43 - src/variables/duration.h | 47 - src/variables/env.cc | 60 - src/variables/env.h | 45 - src/variables/files.h | 83 - src/variables/files_combined_size.h | 47 - src/variables/files_names.h | 84 - src/variables/files_sizes.h | 83 - src/variables/files_tmp_content.h | 83 - src/variables/files_tmp_names.h | 81 - src/variables/full_request.h | 47 - src/variables/full_request_length.h | 47 - src/variables/geo.h | 83 - src/variables/global.h | 117 - src/variables/highest_severity.cc | 40 - src/variables/highest_severity.h | 47 - src/variables/inbound_data_error.h | 47 - src/variables/ip.h | 117 - src/variables/matched_var.h | 47 - src/variables/matched_var_name.h | 47 - src/variables/matched_vars.h | 83 - src/variables/matched_vars_names.h | 83 - src/variables/modsec_build.cc | 36 - src/variables/modsec_build.h | 58 - src/variables/multipart_boundary_quoted.h | 47 - src/variables/multipart_boundary_whitespace.h | 47 - src/variables/multipart_crlf_lf_lines.h | 47 - src/variables/multipart_data_after.h | 47 - src/variables/multipart_data_before.h | 47 - src/variables/multipart_file_limit_exceeded.h | 47 - src/variables/multipart_file_name.h | 83 - src/variables/multipart_header_folding.h | 47 - .../multipart_invalid_header_folding.h | 47 - src/variables/multipart_invalid_part.h | 47 - src/variables/multipart_invalid_quoting.h | 46 - src/variables/multipart_lf_line.h | 47 - src/variables/multipart_missing_semicolon.h | 47 - src/variables/multipart_name.h | 83 - src/variables/multipart_strict_error.h | 47 - src/variables/multipart_unmatched_boundary.h | 47 - src/variables/outbound_data_error.h | 47 - src/variables/path_info.h | 47 - src/variables/query_string.h | 47 - src/variables/remote_addr.h | 47 - src/variables/remote_host.h | 47 - src/variables/remote_port.h | 47 - src/variables/remote_user.cc | 90 - src/variables/remote_user.h | 50 - src/variables/reqbody_error.h | 47 - src/variables/reqbody_error_msg.h | 46 - src/variables/reqbody_processor.h | 46 - src/variables/reqbody_processor_error.h | 47 - src/variables/reqbody_processor_error_msg.h | 47 - src/variables/request_base_name.h | 47 - src/variables/request_body.h | 46 - src/variables/request_body_length.h | 46 - src/variables/request_cookies.h | 83 - src/variables/request_cookies_names.h | 83 - src/variables/request_file_name.h | 46 - src/variables/request_headers.h | 83 - src/variables/request_headers_names.h | 79 - src/variables/request_line.h | 46 - src/variables/request_method.h | 46 - src/variables/request_protocol.h | 46 - src/variables/request_uri.h | 46 - src/variables/request_uri_raw.h | 46 - src/variables/resource.h | 123 - src/variables/response_body.h | 46 - src/variables/response_content_length.h | 46 - src/variables/response_content_type.h | 46 - src/variables/response_headers.h | 83 - src/variables/response_headers_names.h | 79 - src/variables/response_protocol.h | 46 - src/variables/response_status.h | 46 - src/variables/rule.h | 79 - src/variables/server_addr.h | 47 - src/variables/server_name.h | 47 - src/variables/server_port.h | 47 - src/variables/session.h | 121 - src/variables/session_id.h | 47 - src/variables/status.h | 47 - src/variables/time.cc | 57 - src/variables/time.h | 47 - src/variables/time_day.cc | 57 - src/variables/time_day.h | 46 - src/variables/time_epoch.cc | 47 - src/variables/time_epoch.h | 46 - src/variables/time_hour.cc | 57 - src/variables/time_hour.h | 46 - src/variables/time_min.cc | 57 - src/variables/time_min.h | 46 - src/variables/time_mon.cc | 59 - src/variables/time_mon.h | 46 - src/variables/time_sec.cc | 57 - src/variables/time_sec.h | 46 - src/variables/time_wday.cc | 57 - src/variables/time_wday.h | 46 - src/variables/time_year.cc | 57 - src/variables/time_year.h | 46 - src/variables/tx.cc | 39 - src/variables/tx.h | 112 - src/variables/unique_id.h | 47 - src/variables/url_encoded_error.h | 47 - src/variables/user.h | 120 - src/variables/user_id.h | 47 - src/variables/variable.cc | 83 - src/variables/variable.h | 489 - src/variables/web_app_id.h | 50 - src/variables/xml.cc | 152 - src/variables/xml.h | 70 - test/.empty | 0 test/Makefile.am | 181 - test/benchmark/Makefile.am | 40 - test/benchmark/basic_rules.conf | 5 - test/benchmark/benchmark.cc | 174 - test/benchmark/download-owasp-v2-rules.sh | 53 - test/benchmark/download-owasp-v3-rules.sh | 13 - test/coding_style_suppressions.txt | 37 - test/common/colors.h | 31 - test/common/modsecurity_test.cc | 166 - test/common/modsecurity_test.h | 58 - test/common/modsecurity_test_results.h | 35 - test/cppcheck_suppressions.txt | 50 - test/custom-test-driver | 133 - test/fuzzer/Makefile.am | 47 - test/fuzzer/afl_fuzzer.cc | 269 - test/optimization/optimization.cc | 153 - test/regression-tests-valgrind.sh | 4 - test/regression/custom_debug_log.cc | 49 - test/regression/custom_debug_log.h | 43 - test/regression/regression.cc | 555 - test/regression/regression_test.cc | 218 - test/regression/regression_test.h | 99 - .../data/GeoIP2-City-Test-source.json | 44 - test/test-cases/data/GeoIP2-City-Test.mmdb | Bin 3133 -> 0 bytes test/test-cases/data/SoapEnvelope-bad.dtd | 8 - test/test-cases/data/SoapEnvelope-bad.xsd | 126 - test/test-cases/data/SoapEnvelope.dtd | 8 - test/test-cases/data/SoapEnvelope.xsd | 126 - test/test-cases/data/SoapEnvelope2.xsd | 126 - .../data/config_example-bad-op-include.txt | 2 - .../data/config_example-ops-include.txt | 1 - test/test-cases/data/config_example.txt | 2 - test/test-cases/data/config_example2.txt | 1 - test/test-cases/data/config_example3.txt | 2 - test/test-cases/data/geo/GeoIPCity.dat | Bin 4065 -> 0 bytes test/test-cases/data/geo/README.txt | 4 - test/test-cases/data/ipMatchFromFile.txt | 4 - .../match-getvar-multi-transformations.lua | 21 - .../data/match-getvar-transformation.lua | 21 - .../test-cases/data/match-getvar-withTnfs.lua | 7 - test/test-cases/data/match-getvar.lua | 19 - test/test-cases/data/match-getvars.lua | 21 - test/test-cases/data/match-log.lua | 4 - test/test-cases/data/match-set.lua | 5 - test/test-cases/data/match.lua | 3 - test/test-cases/data/script.lua | 29 - test/test-cases/data/ssdeep.txt | 4 - test/test-cases/data/test.lua | 0 test/test-cases/regression/action-allow.json | 101 - test/test-cases/regression/action-block.json | 66 - .../action-ctl_request_body_access.json | 185 - .../action-ctl_request_body_processor.json | 175 - .../regression/action-ctl_rule_engine.json | 315 - .../action-ctl_rule_remove_by_id.json | 66 - .../action-ctl_rule_remove_by_tag.json | 84 - .../action-ctl_rule_remove_target_by_id.json | 98 - .../action-ctl_rule_remove_target_by_tag.json | 98 - .../regression/action-disruptive.json | 69 - test/test-cases/regression/action-exec.json | 148 - test/test-cases/regression/action-id.json | 266 - .../test-cases/regression/action-initcol.json | 36 - test/test-cases/regression/action-msg.json | 118 - test/test-cases/regression/action-setrsc.json | 36 - test/test-cases/regression/action-setsid.json | 36 - test/test-cases/regression/action-setuid.json | 36 - test/test-cases/regression/action-skip.json | 104 - test/test-cases/regression/action-tag.json | 118 - .../regression/action-tnf-base64.json | 90 - test/test-cases/regression/action-xmlns.json | 107 - test/test-cases/regression/actions.json | 358 - test/test-cases/regression/auditlog.json | 175 - .../collection-case-insensitive.json | 60 - ...llection-regular_expression_selection.json | 119 - .../regression/collection-resource.json | 107 - .../regression/collection-tx-with-macro.json | 237 - test/test-cases/regression/collection-tx.json | 237 - .../regression/config-body_limits.json | 197 - .../config-calling_phases_by_name.json | 85 - .../regression/config-include-bad.json | 55 - .../test-cases/regression/config-include.json | 283 - .../regression/config-remove_by_id.json | 125 - .../regression/config-remove_by_msg.json | 84 - .../regression/config-remove_by_tag.json | 84 - .../regression/config-response_type.json | 125 - .../regression/config-secdefaultaction.json | 285 - .../regression/config-secremoterules.json | 99 - .../config-update-target-by-id.json | 41 - .../config-update-target-by-msg.json | 41 - .../config-update-target-by-tag.json | 41 - .../config-xml_external_entity.json | 142 - test/test-cases/regression/debug_log.json | 64 - .../regression/directive-sec_rule_script.json | 201 - test/test-cases/regression/issue-1152.json | 204 - test/test-cases/regression/issue-1528.json | 38 - test/test-cases/regression/issue-1565.json | 79 - test/test-cases/regression/issue-1576.json | 143 - test/test-cases/regression/issue-1591.json | 119 - test/test-cases/regression/issue-394.json | 38 - test/test-cases/regression/issue-960.json | 122 - .../misc-variable-under-quotes.json | 79 - test/test-cases/regression/misc.json | 18 - .../regression/offset-variable.json | 1955 ---- .../operator-UnconditionalMatch.json | 46 - .../regression/operator-detectsqli.json | 46 - .../regression/operator-detectxss.json | 46 - .../regression/operator-fuzzyhash.json | 216 - .../regression/operator-inpectFile.json | 394 - .../regression/operator-ipMatchFromFile.json | 135 - test/test-cases/regression/operator-rx.json | 89 - .../operator-validate-byte-range.json | 40 - .../regression/operator-verifycc.json | 46 - .../regression/operator-verifycpf.json | 46 - .../regression/operator-verifyssn.json | 46 - .../regression/request-body-parser-json.json | 84 - .../request-body-parser-multipart-crlf.json | 67 - .../request-body-parser-multipart.json | 2453 ---- .../request-body-parser-xml-validade-dtd.json | 186 - .../regression/request-body-parser-xml.json | 252 - .../regression/sec_component_signature.json | 53 - test/test-cases/regression/secaction.json | 61 - test/test-cases/regression/secmarker.json | 128 - test/test-cases/regression/secruleengine.json | 77 - .../regression/transformation-none.json | 118 - .../regression/transformations.json | 118 - test/test-cases/regression/variable-ARGS.json | 301 - .../variable-ARGS_COMBINED_SIZE.json | 295 - .../regression/variable-ARGS_GET.json | 120 - .../regression/variable-ARGS_GET_NAMES.json | 81 - .../regression/variable-ARGS_NAMES.json | 169 - .../regression/variable-ARGS_POST.json | 91 - .../regression/variable-ARGS_POST_NAMES.json | 91 - .../regression/variable-AUTH_TYPE.json | 93 - .../regression/variable-DURATION.json | 50 - test/test-cases/regression/variable-ENV.json | 135 - .../test-cases/regression/variable-FILES.json | 61 - .../variable-FILES_COMBINED_SIZE.json | 61 - .../regression/variable-FILES_NAMES.json | 61 - .../regression/variable-FILES_SIZES.json | 61 - .../regression/variable-FULL_REQUEST.json | 62 - .../variable-FULL_REQUEST_LENGTH.json | 62 - test/test-cases/regression/variable-GEO.json | 760 -- .../regression/variable-HIGHEST_SEVERITY.json | 83 - .../variable-INBOUND_DATA_ERROR.json | 102 - .../regression/variable-MATCHED_VAR.json | 86 - .../regression/variable-MATCHED_VARS.json | 86 - .../variable-MATCHED_VARS_NAMES.json | 86 - .../regression/variable-MATCHED_VAR_NAME.json | 86 - .../regression/variable-MODSEC_BUILD.json | 47 - .../variable-MULTIPART_CRLF_LF_LINES.json | 121 - .../variable-MULTIPART_FILENAME.json | 121 - ...able-MULTIPART_INVALID_HEADER_FOLDING.json | 61 - .../regression/variable-MULTIPART_NAME.json | 121 - .../variable-MULTIPART_STRICT_ERROR.json | 298 - ...variable-MULTIPART_UNMATCHED_BOUNDARY.json | 61 - .../variable-OUTBOUND_DATA_ERROR.json | 116 - .../regression/variable-PATH_INFO.json | 134 - .../regression/variable-QUERY_STRING.json | 43 - .../regression/variable-REMOTE_ADDR.json | 84 - .../regression/variable-REMOTE_HOST.json | 84 - .../regression/variable-REMOTE_PORT.json | 84 - .../regression/variable-REMOTE_USER.json | 44 - .../variable-REQBODY_PROCESSOR.json | 183 - .../variable-REQBODY_PROCESSOR_ERROR.json | 141 - .../regression/variable-REQUEST_BASENAME.json | 43 - .../regression/variable-REQUEST_BODY.json | 62 - .../variable-REQUEST_BODY_LENGTH.json | 62 - .../regression/variable-REQUEST_COOKIES.json | 123 - .../variable-REQUEST_COOKIES_NAMES.json | 123 - .../regression/variable-REQUEST_FILENAME.json | 43 - .../regression/variable-REQUEST_HEADERS.json | 61 - .../variable-REQUEST_HEADERS_NAMES.json | 356 - .../regression/variable-REQUEST_LINE.json | 43 - .../regression/variable-REQUEST_METHOD.json | 43 - .../regression/variable-REQUEST_PROTOCOL.json | 43 - .../regression/variable-REQUEST_URI.json | 43 - .../regression/variable-REQUEST_URI_RAW.json | 43 - .../regression/variable-RESPONSE_BODY.json | 34 - .../variable-RESPONSE_CONTENT_LENGTH.json | 43 - .../variable-RESPONSE_CONTENT_TYPE.json | 43 - .../regression/variable-RESPONSE_HEADERS.json | 61 - .../variable-RESPONSE_HEADERS_NAMES.json | 179 - .../variable-RESPONSE_PROTOCOL.json | 44 - test/test-cases/regression/variable-RULE.json | 311 - .../regression/variable-SERVER_ADDR.json | 84 - .../regression/variable-SERVER_NAME.json | 85 - .../regression/variable-SERVER_PORT.json | 84 - .../regression/variable-SESSIONID.json | 70 - .../regression/variable-STATUS.json | 93 - test/test-cases/regression/variable-TIME.json | 43 - .../regression/variable-TIME_DAY.json | 43 - .../regression/variable-TIME_EPOCH.json | 43 - .../regression/variable-TIME_HOUR.json | 43 - .../regression/variable-TIME_MIN.json | 43 - .../regression/variable-TIME_MON.json | 43 - .../regression/variable-TIME_SEC.json | 43 - .../regression/variable-TIME_WDAY.json | 43 - .../regression/variable-TIME_YEAR.json | 43 - test/test-cases/regression/variable-TX.json | 83 - .../regression/variable-UNIQUE_ID.json | 43 - .../regression/variable-URLENCODED_ERROR.json | 295 - .../regression/variable-USERID.json | 67 - .../regression/variable-WEBAPPID.json | 94 - .../variable-WEBSERVER_ERROR_LOG.json | 14 - .../regression/variable-variation-count.json | 173 - .../variable-variation-exclusion.json | 116 - test/test-cases/secrules-language-tests | 1 - test/test-suite.sh | 24 - test/unit-tests-valgrind.sh | 4 - test/unit/unit.cc | 230 - test/unit/unit_test.cc | 160 - test/unit/unit_test.h | 49 - test/valgrind_suppressions.txt | 3825 ------- tools/Makefile.am | 14 - tools/rules-check/Makefile.am | 41 - tools/rules-check/rules-check.cc | 107 - 730 files changed, 110432 deletions(-) delete mode 100644 .gitignore delete mode 100644 .gitmodules delete mode 100644 .travis.yml delete mode 100644 AUTHORS delete mode 100644 CHANGES delete mode 100644 LICENSE delete mode 100644 Makefile.am delete mode 100644 README.md delete mode 160000 bindings/python delete mode 100755 build.sh delete mode 100644 build/.empty delete mode 100644 build/ax_cxx_compile_stdcxx_11.m4 delete mode 100644 build/ax_prog_doxygen.m4 delete mode 100644 build/ax_valgrind_check.m4 delete mode 100644 build/curl.m4 delete mode 100644 build/libgeoip.m4 delete mode 100644 build/libmaxmind.m4 delete mode 100644 build/libxml.m4 delete mode 100644 build/lmdb.m4 delete mode 100644 build/lua.m4 delete mode 100644 build/pcre.m4 delete mode 100755 build/release.sh delete mode 100644 build/ssdeep.m4 delete mode 100644 build/yajl.m4 delete mode 100644 configure.ac delete mode 100644 doc/.empty delete mode 100644 doc/Makefile.am delete mode 100644 doc/doxygen.cfg delete mode 100644 doc/ms-doxygen-logo.png delete mode 100644 examples/Makefile.am delete mode 100644 examples/multiprocess_c/Makefile.am delete mode 100644 examples/multiprocess_c/basic_rules.conf delete mode 100644 examples/multiprocess_c/multi.c delete mode 100644 examples/reading_logs_via_rule_message/Makefile.am delete mode 100644 examples/reading_logs_via_rule_message/blocked_request.conf delete mode 100644 examples/reading_logs_via_rule_message/blocked_request_engine_on.conf delete mode 100644 examples/reading_logs_via_rule_message/match.conf delete mode 100644 examples/reading_logs_via_rule_message/no_match.conf delete mode 100644 examples/reading_logs_via_rule_message/reading_logs_via_rule_message.h delete mode 100644 examples/reading_logs_via_rule_message/simple_request.cc delete mode 100644 examples/reading_logs_with_offset/Makefile.am delete mode 100644 examples/reading_logs_with_offset/read.cc delete mode 100644 examples/simple_example_using_c/Makefile.am delete mode 100644 examples/simple_example_using_c/basic_rules.conf delete mode 100755 examples/simple_example_using_c/test-valgrind.sh delete mode 100644 examples/simple_example_using_c/test.c delete mode 100644 examples/using_bodies_in_chunks/Makefile.am delete mode 100644 examples/using_bodies_in_chunks/example.conf delete mode 100644 examples/using_bodies_in_chunks/simple_request.cc delete mode 100644 headers/modsecurity/actions/action.h delete mode 100644 headers/modsecurity/anchored_set_variable.h delete mode 100644 headers/modsecurity/anchored_variable.h delete mode 100644 headers/modsecurity/audit_log.h delete mode 100644 headers/modsecurity/collection/collection.h delete mode 100644 headers/modsecurity/collection/collections.h delete mode 100644 headers/modsecurity/debug_log.h delete mode 100644 headers/modsecurity/intervention.h delete mode 100644 headers/modsecurity/modsecurity.h delete mode 100644 headers/modsecurity/rule.h delete mode 100644 headers/modsecurity/rule_message.h delete mode 100644 headers/modsecurity/rules.h delete mode 100644 headers/modsecurity/rules_exceptions.h delete mode 100644 headers/modsecurity/rules_properties.h delete mode 100644 headers/modsecurity/transaction.h delete mode 100644 headers/modsecurity/variable_origin.h delete mode 100644 headers/modsecurity/variable_value.h delete mode 100644 modsecurity.conf-recommended delete mode 100644 others/Makefile.am delete mode 160000 others/libinjection delete mode 100644 others/mbedtls/base64.c delete mode 100644 others/mbedtls/base64.h delete mode 100644 others/mbedtls/check_config.h delete mode 100644 others/mbedtls/mbed-tls-config.h delete mode 100644 others/mbedtls/md5.c delete mode 100644 others/mbedtls/md5.h delete mode 100644 others/mbedtls/platform.h delete mode 100644 others/mbedtls/sha1.c delete mode 100644 others/mbedtls/sha1.h delete mode 100644 others/modsec.png delete mode 100644 src/Makefile.am delete mode 100644 src/actions/accuracy.cc delete mode 100644 src/actions/accuracy.h delete mode 100644 src/actions/action.cc delete mode 100644 src/actions/audit_log.cc delete mode 100644 src/actions/audit_log.h delete mode 100644 src/actions/capture.cc delete mode 100644 src/actions/capture.h delete mode 100644 src/actions/chain.cc delete mode 100644 src/actions/chain.h delete mode 100644 src/actions/ctl/audit_log_parts.cc delete mode 100644 src/actions/ctl/audit_log_parts.h delete mode 100644 src/actions/ctl/request_body_access.cc delete mode 100644 src/actions/ctl/request_body_access.h delete mode 100644 src/actions/ctl/request_body_processor_json.cc delete mode 100644 src/actions/ctl/request_body_processor_json.h delete mode 100644 src/actions/ctl/request_body_processor_xml.cc delete mode 100644 src/actions/ctl/request_body_processor_xml.h delete mode 100644 src/actions/ctl/rule_engine.cc delete mode 100644 src/actions/ctl/rule_engine.h delete mode 100644 src/actions/ctl/rule_remove_by_id.cc delete mode 100644 src/actions/ctl/rule_remove_by_id.h delete mode 100644 src/actions/ctl/rule_remove_by_tag.cc delete mode 100644 src/actions/ctl/rule_remove_by_tag.h delete mode 100644 src/actions/ctl/rule_remove_target_by_id.cc delete mode 100644 src/actions/ctl/rule_remove_target_by_id.h delete mode 100644 src/actions/ctl/rule_remove_target_by_tag.cc delete mode 100644 src/actions/ctl/rule_remove_target_by_tag.h delete mode 100644 src/actions/data/status.cc delete mode 100644 src/actions/data/status.h delete mode 100644 src/actions/disruptive/allow.cc delete mode 100644 src/actions/disruptive/allow.h delete mode 100644 src/actions/disruptive/block.cc delete mode 100644 src/actions/disruptive/block.h delete mode 100644 src/actions/disruptive/deny.cc delete mode 100644 src/actions/disruptive/deny.h delete mode 100644 src/actions/disruptive/pass.cc delete mode 100644 src/actions/disruptive/pass.h delete mode 100644 src/actions/disruptive/redirect.cc delete mode 100644 src/actions/disruptive/redirect.h delete mode 100644 src/actions/exec.cc delete mode 100644 src/actions/exec.h delete mode 100644 src/actions/init_col.cc delete mode 100644 src/actions/init_col.h delete mode 100644 src/actions/log.cc delete mode 100644 src/actions/log.h delete mode 100644 src/actions/log_data.cc delete mode 100644 src/actions/log_data.h delete mode 100644 src/actions/maturity.cc delete mode 100644 src/actions/maturity.h delete mode 100644 src/actions/msg.cc delete mode 100644 src/actions/msg.h delete mode 100644 src/actions/multi_match.cc delete mode 100644 src/actions/multi_match.h delete mode 100644 src/actions/no_audit_log.cc delete mode 100644 src/actions/no_audit_log.h delete mode 100644 src/actions/no_log.cc delete mode 100644 src/actions/no_log.h delete mode 100644 src/actions/phase.cc delete mode 100644 src/actions/phase.h delete mode 100644 src/actions/rev.cc delete mode 100644 src/actions/rev.h delete mode 100644 src/actions/rule_id.cc delete mode 100644 src/actions/rule_id.h delete mode 100644 src/actions/set_rsc.cc delete mode 100644 src/actions/set_rsc.h delete mode 100644 src/actions/set_sid.cc delete mode 100644 src/actions/set_sid.h delete mode 100644 src/actions/set_uid.cc delete mode 100644 src/actions/set_uid.h delete mode 100644 src/actions/set_var.cc delete mode 100644 src/actions/set_var.h delete mode 100644 src/actions/severity.cc delete mode 100644 src/actions/severity.h delete mode 100644 src/actions/skip.cc delete mode 100644 src/actions/skip.h delete mode 100644 src/actions/skip_after.cc delete mode 100644 src/actions/skip_after.h delete mode 100644 src/actions/tag.cc delete mode 100644 src/actions/tag.h delete mode 100644 src/actions/transformations/base64_decode.cc delete mode 100644 src/actions/transformations/base64_decode.h delete mode 100644 src/actions/transformations/base64_decode_ext.cc delete mode 100644 src/actions/transformations/base64_decode_ext.h delete mode 100644 src/actions/transformations/base64_encode.cc delete mode 100644 src/actions/transformations/base64_encode.h delete mode 100644 src/actions/transformations/cmd_line.cc delete mode 100644 src/actions/transformations/cmd_line.h delete mode 100644 src/actions/transformations/compress_whitespace.cc delete mode 100644 src/actions/transformations/compress_whitespace.h delete mode 100644 src/actions/transformations/css_decode.cc delete mode 100644 src/actions/transformations/css_decode.h delete mode 100644 src/actions/transformations/escape_seq_decode.cc delete mode 100644 src/actions/transformations/escape_seq_decode.h delete mode 100644 src/actions/transformations/hex_decode.cc delete mode 100644 src/actions/transformations/hex_decode.h delete mode 100644 src/actions/transformations/hex_encode.cc delete mode 100644 src/actions/transformations/hex_encode.h delete mode 100644 src/actions/transformations/html_entity_decode.cc delete mode 100644 src/actions/transformations/html_entity_decode.h delete mode 100644 src/actions/transformations/js_decode.cc delete mode 100644 src/actions/transformations/js_decode.h delete mode 100644 src/actions/transformations/length.cc delete mode 100644 src/actions/transformations/length.h delete mode 100644 src/actions/transformations/lower_case.cc delete mode 100644 src/actions/transformations/lower_case.h delete mode 100644 src/actions/transformations/md5.cc delete mode 100644 src/actions/transformations/md5.h delete mode 100644 src/actions/transformations/none.cc delete mode 100644 src/actions/transformations/none.h delete mode 100644 src/actions/transformations/normalise_path.cc delete mode 100644 src/actions/transformations/normalise_path.h delete mode 100644 src/actions/transformations/normalise_path_win.cc delete mode 100644 src/actions/transformations/normalise_path_win.h delete mode 100644 src/actions/transformations/parity_even_7bit.cc delete mode 100644 src/actions/transformations/parity_even_7bit.h delete mode 100644 src/actions/transformations/parity_odd_7bit.cc delete mode 100644 src/actions/transformations/parity_odd_7bit.h delete mode 100644 src/actions/transformations/parity_zero_7bit.cc delete mode 100644 src/actions/transformations/parity_zero_7bit.h delete mode 100644 src/actions/transformations/remove_comments.cc delete mode 100644 src/actions/transformations/remove_comments.h delete mode 100644 src/actions/transformations/remove_comments_char.cc delete mode 100644 src/actions/transformations/remove_comments_char.h delete mode 100644 src/actions/transformations/remove_nulls.cc delete mode 100644 src/actions/transformations/remove_nulls.h delete mode 100644 src/actions/transformations/remove_whitespace.cc delete mode 100644 src/actions/transformations/remove_whitespace.h delete mode 100644 src/actions/transformations/replace_comments.cc delete mode 100644 src/actions/transformations/replace_comments.h delete mode 100644 src/actions/transformations/replace_nulls.cc delete mode 100644 src/actions/transformations/replace_nulls.h delete mode 100644 src/actions/transformations/sha1.cc delete mode 100644 src/actions/transformations/sha1.h delete mode 100644 src/actions/transformations/sql_hex_decode.cc delete mode 100644 src/actions/transformations/sql_hex_decode.h delete mode 100644 src/actions/transformations/transformation.cc delete mode 100644 src/actions/transformations/transformation.h delete mode 100644 src/actions/transformations/trim.cc delete mode 100644 src/actions/transformations/trim.h delete mode 100644 src/actions/transformations/trim_left.cc delete mode 100644 src/actions/transformations/trim_left.h delete mode 100644 src/actions/transformations/trim_right.cc delete mode 100644 src/actions/transformations/trim_right.h delete mode 100644 src/actions/transformations/upper_case.cc delete mode 100644 src/actions/transformations/upper_case.h delete mode 100644 src/actions/transformations/url_decode.cc delete mode 100644 src/actions/transformations/url_decode.h delete mode 100644 src/actions/transformations/url_decode_uni.cc delete mode 100644 src/actions/transformations/url_decode_uni.h delete mode 100644 src/actions/transformations/url_encode.cc delete mode 100644 src/actions/transformations/url_encode.h delete mode 100644 src/actions/transformations/utf8_to_unicode.cc delete mode 100644 src/actions/transformations/utf8_to_unicode.h delete mode 100644 src/actions/ver.cc delete mode 100644 src/actions/ver.h delete mode 100644 src/actions/xmlns.cc delete mode 100644 src/actions/xmlns.h delete mode 100644 src/anchored_set_variable.cc delete mode 100644 src/anchored_variable.cc delete mode 100644 src/audit_log/audit_log.cc delete mode 100644 src/audit_log/writer/https.cc delete mode 100644 src/audit_log/writer/https.h delete mode 100644 src/audit_log/writer/parallel.cc delete mode 100644 src/audit_log/writer/parallel.h delete mode 100644 src/audit_log/writer/serial.cc delete mode 100644 src/audit_log/writer/serial.h delete mode 100644 src/audit_log/writer/writer.cc delete mode 100644 src/audit_log/writer/writer.h delete mode 100644 src/collection/backend/in_memory-per_process.cc delete mode 100644 src/collection/backend/in_memory-per_process.h delete mode 100644 src/collection/backend/lmdb.cc delete mode 100644 src/collection/backend/lmdb.h delete mode 100644 src/collection/collections.cc delete mode 100644 src/debug_log/debug_log.cc delete mode 100644 src/debug_log/debug_log_writer.cc delete mode 100644 src/debug_log/debug_log_writer.h delete mode 100644 src/debug_log_writer_agent.h delete mode 100644 src/engine/lua.cc delete mode 100644 src/engine/lua.h delete mode 100644 src/modsecurity.cc delete mode 100644 src/operators/.directory delete mode 100644 src/operators/begins_with.cc delete mode 100644 src/operators/begins_with.h delete mode 100644 src/operators/contains.cc delete mode 100644 src/operators/contains.h delete mode 100644 src/operators/contains_word.cc delete mode 100644 src/operators/contains_word.h delete mode 100644 src/operators/detect_sqli.cc delete mode 100644 src/operators/detect_sqli.h delete mode 100644 src/operators/detect_xss.cc delete mode 100644 src/operators/detect_xss.h delete mode 100644 src/operators/ends_with.cc delete mode 100644 src/operators/ends_with.h delete mode 100644 src/operators/eq.cc delete mode 100644 src/operators/eq.h delete mode 100644 src/operators/fuzzy_hash.cc delete mode 100644 src/operators/fuzzy_hash.h delete mode 100644 src/operators/ge.cc delete mode 100644 src/operators/ge.h delete mode 100644 src/operators/geo_lookup.cc delete mode 100644 src/operators/geo_lookup.h delete mode 100644 src/operators/gsblookup.cc delete mode 100644 src/operators/gsblookup.h delete mode 100644 src/operators/gt.cc delete mode 100644 src/operators/gt.h delete mode 100644 src/operators/inspect_file.cc delete mode 100644 src/operators/inspect_file.h delete mode 100644 src/operators/ip_match.cc delete mode 100644 src/operators/ip_match.h delete mode 100644 src/operators/ip_match_f.cc delete mode 100644 src/operators/ip_match_f.h delete mode 100644 src/operators/ip_match_from_file.cc delete mode 100644 src/operators/ip_match_from_file.h delete mode 100644 src/operators/le.cc delete mode 100644 src/operators/le.h delete mode 100644 src/operators/lt.cc delete mode 100644 src/operators/lt.h delete mode 100644 src/operators/no_match.cc delete mode 100644 src/operators/no_match.h delete mode 100644 src/operators/operator.cc delete mode 100644 src/operators/operator.h delete mode 100644 src/operators/pm.cc delete mode 100644 src/operators/pm.h delete mode 100644 src/operators/pm_f.cc delete mode 100644 src/operators/pm_f.h delete mode 100644 src/operators/pm_from_file.cc delete mode 100644 src/operators/pm_from_file.h delete mode 100644 src/operators/rbl.cc delete mode 100644 src/operators/rbl.h delete mode 100644 src/operators/rsub.cc delete mode 100644 src/operators/rsub.h delete mode 100644 src/operators/rx.cc delete mode 100644 src/operators/rx.h delete mode 100644 src/operators/str_eq.cc delete mode 100644 src/operators/str_eq.h delete mode 100644 src/operators/str_match.cc delete mode 100644 src/operators/str_match.h delete mode 100644 src/operators/unconditional_match.cc delete mode 100644 src/operators/unconditional_match.h delete mode 100644 src/operators/validate_byte_range.cc delete mode 100644 src/operators/validate_byte_range.h delete mode 100644 src/operators/validate_dtd.cc delete mode 100644 src/operators/validate_dtd.h delete mode 100644 src/operators/validate_hash.cc delete mode 100644 src/operators/validate_hash.h delete mode 100644 src/operators/validate_schema.cc delete mode 100644 src/operators/validate_schema.h delete mode 100644 src/operators/validate_url_encoding.cc delete mode 100644 src/operators/validate_url_encoding.h delete mode 100644 src/operators/validate_utf8_encoding.cc delete mode 100644 src/operators/validate_utf8_encoding.h delete mode 100644 src/operators/verify_cc.cc delete mode 100644 src/operators/verify_cc.h delete mode 100644 src/operators/verify_cpf.cc delete mode 100644 src/operators/verify_cpf.h delete mode 100644 src/operators/verify_ssn.cc delete mode 100644 src/operators/verify_ssn.h delete mode 100644 src/operators/within.cc delete mode 100644 src/operators/within.h delete mode 100644 src/parser/Makefile.am delete mode 100644 src/parser/driver.cc delete mode 100644 src/parser/driver.h delete mode 100644 src/parser/location.hh delete mode 100644 src/parser/position.hh delete mode 100644 src/parser/seclang-parser.cc delete mode 100644 src/parser/seclang-parser.hh delete mode 100644 src/parser/seclang-parser.yy delete mode 100644 src/parser/seclang-scanner.cc delete mode 100755 src/parser/seclang-scanner.ll delete mode 100644 src/parser/stack.hh delete mode 100644 src/request_body_processor/json.cc delete mode 100644 src/request_body_processor/json.h delete mode 100644 src/request_body_processor/multipart.cc delete mode 100644 src/request_body_processor/multipart.h delete mode 100644 src/request_body_processor/xml.cc delete mode 100644 src/request_body_processor/xml.h delete mode 100644 src/rule.cc delete mode 100644 src/rule_message.cc delete mode 100644 src/rule_script.cc delete mode 100644 src/rule_script.h delete mode 100644 src/rules.cc delete mode 100644 src/rules_exceptions.cc delete mode 100644 src/run_time_string.cc delete mode 100644 src/run_time_string.h delete mode 100644 src/transaction.cc delete mode 100644 src/unique_id.cc delete mode 100644 src/unique_id.h delete mode 100644 src/utils/acmp.cc delete mode 100644 src/utils/acmp.h delete mode 100644 src/utils/base64.cc delete mode 100644 src/utils/base64.h delete mode 100644 src/utils/decode.cc delete mode 100644 src/utils/decode.h delete mode 100644 src/utils/geo_lookup.cc delete mode 100644 src/utils/geo_lookup.h delete mode 100644 src/utils/https_client.cc delete mode 100644 src/utils/https_client.h delete mode 100644 src/utils/ip_tree.cc delete mode 100644 src/utils/ip_tree.h delete mode 100644 src/utils/md5.cc delete mode 100644 src/utils/md5.h delete mode 100644 src/utils/msc_tree.cc delete mode 100644 src/utils/msc_tree.h delete mode 100644 src/utils/phase.h delete mode 100644 src/utils/random.cc delete mode 100644 src/utils/random.h delete mode 100644 src/utils/regex.cc delete mode 100644 src/utils/regex.h delete mode 100644 src/utils/sha1.cc delete mode 100644 src/utils/sha1.h delete mode 100644 src/utils/shared_files.cc delete mode 100644 src/utils/shared_files.h delete mode 100644 src/utils/string.cc delete mode 100644 src/utils/string.h delete mode 100644 src/utils/system.cc delete mode 100644 src/utils/system.h delete mode 100644 src/variables/args.h delete mode 100644 src/variables/args_combined_size.h delete mode 100644 src/variables/args_get.h delete mode 100644 src/variables/args_get_names.h delete mode 100644 src/variables/args_names.h delete mode 100644 src/variables/args_post.h delete mode 100644 src/variables/args_post_names.h delete mode 100644 src/variables/auth_type.h delete mode 100644 src/variables/duration.cc delete mode 100644 src/variables/duration.h delete mode 100644 src/variables/env.cc delete mode 100644 src/variables/env.h delete mode 100644 src/variables/files.h delete mode 100644 src/variables/files_combined_size.h delete mode 100644 src/variables/files_names.h delete mode 100644 src/variables/files_sizes.h delete mode 100644 src/variables/files_tmp_content.h delete mode 100644 src/variables/files_tmp_names.h delete mode 100644 src/variables/full_request.h delete mode 100644 src/variables/full_request_length.h delete mode 100644 src/variables/geo.h delete mode 100644 src/variables/global.h delete mode 100644 src/variables/highest_severity.cc delete mode 100644 src/variables/highest_severity.h delete mode 100644 src/variables/inbound_data_error.h delete mode 100644 src/variables/ip.h delete mode 100644 src/variables/matched_var.h delete mode 100644 src/variables/matched_var_name.h delete mode 100644 src/variables/matched_vars.h delete mode 100644 src/variables/matched_vars_names.h delete mode 100644 src/variables/modsec_build.cc delete mode 100644 src/variables/modsec_build.h delete mode 100644 src/variables/multipart_boundary_quoted.h delete mode 100644 src/variables/multipart_boundary_whitespace.h delete mode 100644 src/variables/multipart_crlf_lf_lines.h delete mode 100644 src/variables/multipart_data_after.h delete mode 100644 src/variables/multipart_data_before.h delete mode 100644 src/variables/multipart_file_limit_exceeded.h delete mode 100644 src/variables/multipart_file_name.h delete mode 100644 src/variables/multipart_header_folding.h delete mode 100644 src/variables/multipart_invalid_header_folding.h delete mode 100644 src/variables/multipart_invalid_part.h delete mode 100644 src/variables/multipart_invalid_quoting.h delete mode 100644 src/variables/multipart_lf_line.h delete mode 100644 src/variables/multipart_missing_semicolon.h delete mode 100644 src/variables/multipart_name.h delete mode 100644 src/variables/multipart_strict_error.h delete mode 100644 src/variables/multipart_unmatched_boundary.h delete mode 100644 src/variables/outbound_data_error.h delete mode 100644 src/variables/path_info.h delete mode 100644 src/variables/query_string.h delete mode 100644 src/variables/remote_addr.h delete mode 100644 src/variables/remote_host.h delete mode 100644 src/variables/remote_port.h delete mode 100644 src/variables/remote_user.cc delete mode 100644 src/variables/remote_user.h delete mode 100644 src/variables/reqbody_error.h delete mode 100644 src/variables/reqbody_error_msg.h delete mode 100644 src/variables/reqbody_processor.h delete mode 100644 src/variables/reqbody_processor_error.h delete mode 100644 src/variables/reqbody_processor_error_msg.h delete mode 100644 src/variables/request_base_name.h delete mode 100644 src/variables/request_body.h delete mode 100644 src/variables/request_body_length.h delete mode 100644 src/variables/request_cookies.h delete mode 100644 src/variables/request_cookies_names.h delete mode 100644 src/variables/request_file_name.h delete mode 100644 src/variables/request_headers.h delete mode 100644 src/variables/request_headers_names.h delete mode 100644 src/variables/request_line.h delete mode 100644 src/variables/request_method.h delete mode 100644 src/variables/request_protocol.h delete mode 100644 src/variables/request_uri.h delete mode 100644 src/variables/request_uri_raw.h delete mode 100644 src/variables/resource.h delete mode 100644 src/variables/response_body.h delete mode 100644 src/variables/response_content_length.h delete mode 100644 src/variables/response_content_type.h delete mode 100644 src/variables/response_headers.h delete mode 100644 src/variables/response_headers_names.h delete mode 100644 src/variables/response_protocol.h delete mode 100644 src/variables/response_status.h delete mode 100644 src/variables/rule.h delete mode 100644 src/variables/server_addr.h delete mode 100644 src/variables/server_name.h delete mode 100644 src/variables/server_port.h delete mode 100644 src/variables/session.h delete mode 100644 src/variables/session_id.h delete mode 100644 src/variables/status.h delete mode 100644 src/variables/time.cc delete mode 100644 src/variables/time.h delete mode 100644 src/variables/time_day.cc delete mode 100644 src/variables/time_day.h delete mode 100644 src/variables/time_epoch.cc delete mode 100644 src/variables/time_epoch.h delete mode 100644 src/variables/time_hour.cc delete mode 100644 src/variables/time_hour.h delete mode 100644 src/variables/time_min.cc delete mode 100644 src/variables/time_min.h delete mode 100644 src/variables/time_mon.cc delete mode 100644 src/variables/time_mon.h delete mode 100644 src/variables/time_sec.cc delete mode 100644 src/variables/time_sec.h delete mode 100644 src/variables/time_wday.cc delete mode 100644 src/variables/time_wday.h delete mode 100644 src/variables/time_year.cc delete mode 100644 src/variables/time_year.h delete mode 100644 src/variables/tx.cc delete mode 100644 src/variables/tx.h delete mode 100644 src/variables/unique_id.h delete mode 100644 src/variables/url_encoded_error.h delete mode 100644 src/variables/user.h delete mode 100644 src/variables/user_id.h delete mode 100644 src/variables/variable.cc delete mode 100644 src/variables/variable.h delete mode 100644 src/variables/web_app_id.h delete mode 100644 src/variables/xml.cc delete mode 100644 src/variables/xml.h delete mode 100644 test/.empty delete mode 100644 test/Makefile.am delete mode 100644 test/benchmark/Makefile.am delete mode 100644 test/benchmark/basic_rules.conf delete mode 100644 test/benchmark/benchmark.cc delete mode 100755 test/benchmark/download-owasp-v2-rules.sh delete mode 100755 test/benchmark/download-owasp-v3-rules.sh delete mode 100644 test/coding_style_suppressions.txt delete mode 100644 test/common/colors.h delete mode 100644 test/common/modsecurity_test.cc delete mode 100644 test/common/modsecurity_test.h delete mode 100644 test/common/modsecurity_test_results.h delete mode 100644 test/cppcheck_suppressions.txt delete mode 100755 test/custom-test-driver delete mode 100644 test/fuzzer/Makefile.am delete mode 100644 test/fuzzer/afl_fuzzer.cc delete mode 100644 test/optimization/optimization.cc delete mode 100755 test/regression-tests-valgrind.sh delete mode 100644 test/regression/custom_debug_log.cc delete mode 100644 test/regression/custom_debug_log.h delete mode 100644 test/regression/regression.cc delete mode 100644 test/regression/regression_test.cc delete mode 100644 test/regression/regression_test.h delete mode 100644 test/test-cases/data/GeoIP2-City-Test-source.json delete mode 100644 test/test-cases/data/GeoIP2-City-Test.mmdb delete mode 100644 test/test-cases/data/SoapEnvelope-bad.dtd delete mode 100644 test/test-cases/data/SoapEnvelope-bad.xsd delete mode 100644 test/test-cases/data/SoapEnvelope.dtd delete mode 100644 test/test-cases/data/SoapEnvelope.xsd delete mode 100644 test/test-cases/data/SoapEnvelope2.xsd delete mode 100644 test/test-cases/data/config_example-bad-op-include.txt delete mode 100644 test/test-cases/data/config_example-ops-include.txt delete mode 100644 test/test-cases/data/config_example.txt delete mode 100644 test/test-cases/data/config_example2.txt delete mode 100644 test/test-cases/data/config_example3.txt delete mode 100644 test/test-cases/data/geo/GeoIPCity.dat delete mode 100644 test/test-cases/data/geo/README.txt delete mode 100644 test/test-cases/data/ipMatchFromFile.txt delete mode 100644 test/test-cases/data/match-getvar-multi-transformations.lua delete mode 100644 test/test-cases/data/match-getvar-transformation.lua delete mode 100644 test/test-cases/data/match-getvar-withTnfs.lua delete mode 100644 test/test-cases/data/match-getvar.lua delete mode 100644 test/test-cases/data/match-getvars.lua delete mode 100644 test/test-cases/data/match-log.lua delete mode 100644 test/test-cases/data/match-set.lua delete mode 100644 test/test-cases/data/match.lua delete mode 100644 test/test-cases/data/script.lua delete mode 100644 test/test-cases/data/ssdeep.txt delete mode 100644 test/test-cases/data/test.lua delete mode 100644 test/test-cases/regression/action-allow.json delete mode 100644 test/test-cases/regression/action-block.json delete mode 100644 test/test-cases/regression/action-ctl_request_body_access.json delete mode 100644 test/test-cases/regression/action-ctl_request_body_processor.json delete mode 100644 test/test-cases/regression/action-ctl_rule_engine.json delete mode 100644 test/test-cases/regression/action-ctl_rule_remove_by_id.json delete mode 100644 test/test-cases/regression/action-ctl_rule_remove_by_tag.json delete mode 100644 test/test-cases/regression/action-ctl_rule_remove_target_by_id.json delete mode 100644 test/test-cases/regression/action-ctl_rule_remove_target_by_tag.json delete mode 100644 test/test-cases/regression/action-disruptive.json delete mode 100644 test/test-cases/regression/action-exec.json delete mode 100644 test/test-cases/regression/action-id.json delete mode 100644 test/test-cases/regression/action-initcol.json delete mode 100644 test/test-cases/regression/action-msg.json delete mode 100644 test/test-cases/regression/action-setrsc.json delete mode 100644 test/test-cases/regression/action-setsid.json delete mode 100644 test/test-cases/regression/action-setuid.json delete mode 100644 test/test-cases/regression/action-skip.json delete mode 100644 test/test-cases/regression/action-tag.json delete mode 100644 test/test-cases/regression/action-tnf-base64.json delete mode 100644 test/test-cases/regression/action-xmlns.json delete mode 100644 test/test-cases/regression/actions.json delete mode 100644 test/test-cases/regression/auditlog.json delete mode 100644 test/test-cases/regression/collection-case-insensitive.json delete mode 100644 test/test-cases/regression/collection-regular_expression_selection.json delete mode 100644 test/test-cases/regression/collection-resource.json delete mode 100644 test/test-cases/regression/collection-tx-with-macro.json delete mode 100644 test/test-cases/regression/collection-tx.json delete mode 100644 test/test-cases/regression/config-body_limits.json delete mode 100644 test/test-cases/regression/config-calling_phases_by_name.json delete mode 100644 test/test-cases/regression/config-include-bad.json delete mode 100644 test/test-cases/regression/config-include.json delete mode 100644 test/test-cases/regression/config-remove_by_id.json delete mode 100644 test/test-cases/regression/config-remove_by_msg.json delete mode 100644 test/test-cases/regression/config-remove_by_tag.json delete mode 100644 test/test-cases/regression/config-response_type.json delete mode 100644 test/test-cases/regression/config-secdefaultaction.json delete mode 100644 test/test-cases/regression/config-secremoterules.json delete mode 100644 test/test-cases/regression/config-update-target-by-id.json delete mode 100644 test/test-cases/regression/config-update-target-by-msg.json delete mode 100644 test/test-cases/regression/config-update-target-by-tag.json delete mode 100644 test/test-cases/regression/config-xml_external_entity.json delete mode 100644 test/test-cases/regression/debug_log.json delete mode 100644 test/test-cases/regression/directive-sec_rule_script.json delete mode 100644 test/test-cases/regression/issue-1152.json delete mode 100644 test/test-cases/regression/issue-1528.json delete mode 100644 test/test-cases/regression/issue-1565.json delete mode 100644 test/test-cases/regression/issue-1576.json delete mode 100644 test/test-cases/regression/issue-1591.json delete mode 100644 test/test-cases/regression/issue-394.json delete mode 100644 test/test-cases/regression/issue-960.json delete mode 100644 test/test-cases/regression/misc-variable-under-quotes.json delete mode 100644 test/test-cases/regression/misc.json delete mode 100644 test/test-cases/regression/offset-variable.json delete mode 100644 test/test-cases/regression/operator-UnconditionalMatch.json delete mode 100644 test/test-cases/regression/operator-detectsqli.json delete mode 100644 test/test-cases/regression/operator-detectxss.json delete mode 100644 test/test-cases/regression/operator-fuzzyhash.json delete mode 100644 test/test-cases/regression/operator-inpectFile.json delete mode 100644 test/test-cases/regression/operator-ipMatchFromFile.json delete mode 100644 test/test-cases/regression/operator-rx.json delete mode 100644 test/test-cases/regression/operator-validate-byte-range.json delete mode 100644 test/test-cases/regression/operator-verifycc.json delete mode 100644 test/test-cases/regression/operator-verifycpf.json delete mode 100644 test/test-cases/regression/operator-verifyssn.json delete mode 100644 test/test-cases/regression/request-body-parser-json.json delete mode 100644 test/test-cases/regression/request-body-parser-multipart-crlf.json delete mode 100644 test/test-cases/regression/request-body-parser-multipart.json delete mode 100644 test/test-cases/regression/request-body-parser-xml-validade-dtd.json delete mode 100644 test/test-cases/regression/request-body-parser-xml.json delete mode 100644 test/test-cases/regression/sec_component_signature.json delete mode 100644 test/test-cases/regression/secaction.json delete mode 100644 test/test-cases/regression/secmarker.json delete mode 100644 test/test-cases/regression/secruleengine.json delete mode 100644 test/test-cases/regression/transformation-none.json delete mode 100644 test/test-cases/regression/transformations.json delete mode 100644 test/test-cases/regression/variable-ARGS.json delete mode 100644 test/test-cases/regression/variable-ARGS_COMBINED_SIZE.json delete mode 100644 test/test-cases/regression/variable-ARGS_GET.json delete mode 100644 test/test-cases/regression/variable-ARGS_GET_NAMES.json delete mode 100644 test/test-cases/regression/variable-ARGS_NAMES.json delete mode 100644 test/test-cases/regression/variable-ARGS_POST.json delete mode 100644 test/test-cases/regression/variable-ARGS_POST_NAMES.json delete mode 100644 test/test-cases/regression/variable-AUTH_TYPE.json delete mode 100644 test/test-cases/regression/variable-DURATION.json delete mode 100644 test/test-cases/regression/variable-ENV.json delete mode 100644 test/test-cases/regression/variable-FILES.json delete mode 100644 test/test-cases/regression/variable-FILES_COMBINED_SIZE.json delete mode 100644 test/test-cases/regression/variable-FILES_NAMES.json delete mode 100644 test/test-cases/regression/variable-FILES_SIZES.json delete mode 100644 test/test-cases/regression/variable-FULL_REQUEST.json delete mode 100644 test/test-cases/regression/variable-FULL_REQUEST_LENGTH.json delete mode 100644 test/test-cases/regression/variable-GEO.json delete mode 100644 test/test-cases/regression/variable-HIGHEST_SEVERITY.json delete mode 100644 test/test-cases/regression/variable-INBOUND_DATA_ERROR.json delete mode 100644 test/test-cases/regression/variable-MATCHED_VAR.json delete mode 100644 test/test-cases/regression/variable-MATCHED_VARS.json delete mode 100644 test/test-cases/regression/variable-MATCHED_VARS_NAMES.json delete mode 100644 test/test-cases/regression/variable-MATCHED_VAR_NAME.json delete mode 100644 test/test-cases/regression/variable-MODSEC_BUILD.json delete mode 100644 test/test-cases/regression/variable-MULTIPART_CRLF_LF_LINES.json delete mode 100644 test/test-cases/regression/variable-MULTIPART_FILENAME.json delete mode 100644 test/test-cases/regression/variable-MULTIPART_INVALID_HEADER_FOLDING.json delete mode 100644 test/test-cases/regression/variable-MULTIPART_NAME.json delete mode 100644 test/test-cases/regression/variable-MULTIPART_STRICT_ERROR.json delete mode 100644 test/test-cases/regression/variable-MULTIPART_UNMATCHED_BOUNDARY.json delete mode 100644 test/test-cases/regression/variable-OUTBOUND_DATA_ERROR.json delete mode 100644 test/test-cases/regression/variable-PATH_INFO.json delete mode 100644 test/test-cases/regression/variable-QUERY_STRING.json delete mode 100644 test/test-cases/regression/variable-REMOTE_ADDR.json delete mode 100644 test/test-cases/regression/variable-REMOTE_HOST.json delete mode 100644 test/test-cases/regression/variable-REMOTE_PORT.json delete mode 100644 test/test-cases/regression/variable-REMOTE_USER.json delete mode 100644 test/test-cases/regression/variable-REQBODY_PROCESSOR.json delete mode 100644 test/test-cases/regression/variable-REQBODY_PROCESSOR_ERROR.json delete mode 100644 test/test-cases/regression/variable-REQUEST_BASENAME.json delete mode 100644 test/test-cases/regression/variable-REQUEST_BODY.json delete mode 100644 test/test-cases/regression/variable-REQUEST_BODY_LENGTH.json delete mode 100644 test/test-cases/regression/variable-REQUEST_COOKIES.json delete mode 100644 test/test-cases/regression/variable-REQUEST_COOKIES_NAMES.json delete mode 100644 test/test-cases/regression/variable-REQUEST_FILENAME.json delete mode 100644 test/test-cases/regression/variable-REQUEST_HEADERS.json delete mode 100644 test/test-cases/regression/variable-REQUEST_HEADERS_NAMES.json delete mode 100644 test/test-cases/regression/variable-REQUEST_LINE.json delete mode 100644 test/test-cases/regression/variable-REQUEST_METHOD.json delete mode 100644 test/test-cases/regression/variable-REQUEST_PROTOCOL.json delete mode 100644 test/test-cases/regression/variable-REQUEST_URI.json delete mode 100644 test/test-cases/regression/variable-REQUEST_URI_RAW.json delete mode 100644 test/test-cases/regression/variable-RESPONSE_BODY.json delete mode 100644 test/test-cases/regression/variable-RESPONSE_CONTENT_LENGTH.json delete mode 100644 test/test-cases/regression/variable-RESPONSE_CONTENT_TYPE.json delete mode 100644 test/test-cases/regression/variable-RESPONSE_HEADERS.json delete mode 100644 test/test-cases/regression/variable-RESPONSE_HEADERS_NAMES.json delete mode 100644 test/test-cases/regression/variable-RESPONSE_PROTOCOL.json delete mode 100644 test/test-cases/regression/variable-RULE.json delete mode 100644 test/test-cases/regression/variable-SERVER_ADDR.json delete mode 100644 test/test-cases/regression/variable-SERVER_NAME.json delete mode 100644 test/test-cases/regression/variable-SERVER_PORT.json delete mode 100644 test/test-cases/regression/variable-SESSIONID.json delete mode 100644 test/test-cases/regression/variable-STATUS.json delete mode 100644 test/test-cases/regression/variable-TIME.json delete mode 100644 test/test-cases/regression/variable-TIME_DAY.json delete mode 100644 test/test-cases/regression/variable-TIME_EPOCH.json delete mode 100644 test/test-cases/regression/variable-TIME_HOUR.json delete mode 100644 test/test-cases/regression/variable-TIME_MIN.json delete mode 100644 test/test-cases/regression/variable-TIME_MON.json delete mode 100644 test/test-cases/regression/variable-TIME_SEC.json delete mode 100644 test/test-cases/regression/variable-TIME_WDAY.json delete mode 100644 test/test-cases/regression/variable-TIME_YEAR.json delete mode 100644 test/test-cases/regression/variable-TX.json delete mode 100644 test/test-cases/regression/variable-UNIQUE_ID.json delete mode 100644 test/test-cases/regression/variable-URLENCODED_ERROR.json delete mode 100644 test/test-cases/regression/variable-USERID.json delete mode 100644 test/test-cases/regression/variable-WEBAPPID.json delete mode 100644 test/test-cases/regression/variable-WEBSERVER_ERROR_LOG.json delete mode 100644 test/test-cases/regression/variable-variation-count.json delete mode 100644 test/test-cases/regression/variable-variation-exclusion.json delete mode 160000 test/test-cases/secrules-language-tests delete mode 100755 test/test-suite.sh delete mode 100755 test/unit-tests-valgrind.sh delete mode 100644 test/unit/unit.cc delete mode 100644 test/unit/unit_test.cc delete mode 100644 test/unit/unit_test.h delete mode 100644 test/valgrind_suppressions.txt delete mode 100644 tools/Makefile.am delete mode 100644 tools/rules-check/Makefile.am delete mode 100644 tools/rules-check/rules-check.cc diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 390c0e60..00000000 --- a/.gitignore +++ /dev/null @@ -1,50 +0,0 @@ -*.o -*.lo -*.la -**/Makefile -**/Makefile.in -aclocal.m4 -ar-lib -autom4te.cache/ -build/libtool.m4 -build/ltoptions.m4 -build/ltsugar.m4 -build/ltversion.m4 -build/lt~obsolete.m4 -compile -config.guess -config.log -config.status -config.sub -configure -depcomp -.deps -.libs -.dirstamp -src/config.h -src/config.h.in -src/location.hh -src/position.hh -src/stack.hh -src/stamp-h1 -/test/rules_optimization -/test/regression_tests -/test/unit_tests -/test-driver -/test/massif.out.* -/test/benchmark/benchmark -/test/benchmark/owasp-v3/ -/test/test-cases/regression/*.trs -/test/test-cases/regression/*.log -/test-suite.log -ylwrap -missing -install-sh -libtool -ltmain.sh -examples/simple_example_using_c/test -/tools/rules-check/modsec-rules-check -examples/multiprocess_c/multi -examples/reading_logs_via_rule_message/simple_request -examples/reading_logs_with_offset/read -examples/using_bodies_in_chunks/simple_request diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index acee72d1..00000000 --- a/.gitmodules +++ /dev/null @@ -1,9 +0,0 @@ -[submodule "test/test-cases/secrules-language-tests"] - path = test/test-cases/secrules-language-tests - url = https://github.com/SpiderLabs/secrules-language-tests -[submodule "others/libinjection"] - path = others/libinjection - url = https://github.com/client9/libinjection.git -[submodule "bindings/python"] - path = bindings/python - url = https://github.com/SpiderLabs/ModSecurity-Python-bindings.git diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index b0c9d7b0..00000000 --- a/.travis.yml +++ /dev/null @@ -1,52 +0,0 @@ -dist: trusty -sudo: true - -addons: - apt: - packages: - - libfuzzy-dev - - libyajl-dev - - libgeoip-dev - - liblua5.2-dev - - liblmdb-dev - - cppcheck - -language: cpp - -compiler: - - clang - - gcc - -os: - - linux - - osx - -env: - - OPTS="--enable-parser-generation $OPTS" - - OPTS="--without-curl $OPTS" - - OPTS="--without-yajl $OPTS" - - OPTS="--without-geoip $OPTS" - - OPTS="--without-lmdb $OPTS" - - OPTS="--without-ssdeep $OPTS" - - OPTS="--without-lua $OPTS" - - OPTS="--without-maxmind $OPTS" - -before_script: - - echo $TRAVIS_OS_NAME - - '[ "$TRAVIS_OS_NAME" != osx ] || brew update' - - '[ "$TRAVIS_OS_NAME" != osx ] || brew install cppcheck' - - '[ "$TRAVIS_OS_NAME" != osx ] || brew install libmaxminddb' - - '[ "$TRAVIS_OS_NAME" != linux ] || sudo add-apt-repository --yes ppa:maxmind/ppa' - - '[ "$TRAVIS_OS_NAME" != linux ] || sudo apt-get update' - - '[ "$TRAVIS_OS_NAME" != linux ] || sudo apt-cache search maxmind' - - '[ "$TRAVIS_OS_NAME" != linux ] || sudo apt-get install -y libmaxminddb-dev' - -script: - - ./build.sh - - ./configure $OPTS - - make - - make check - - make check-static - - - diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index 05809e4a..00000000 --- a/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -zimmerle = Felipe Zimmerle -rbarnett = Ryan C. Barnett -csanders-git = Chaim Sanders diff --git a/CHANGES b/CHANGES deleted file mode 100644 index f4827a72..00000000 --- a/CHANGES +++ /dev/null @@ -1,167 +0,0 @@ -v3.0.3 - YYYY-MMM-DD (to be released) -------------------------------------- - - - Fix memory leak in Collections - [Issue #1729, #1730 - @@defanator] - - -v3.0.2 - 2018-Apr-03 --------------------- - - - Fix lib version information while generating the .so file - [@gl1f1v21, @zimmerle] - -v3.0.1 - 2018-Apr-02 --------------------- - - - Adds support for ctl:ruleRemoveByTag - [@zimmerle, @weliu] - - Fix SecUploadDir configuration merge - [Issue #1720 - @zimmerle, @gjvanetten] - - Include all prerequisites for "make check" into dist archive - [Issue #1716 - @defanator] - - Fix: Reverse logic of checking output in @inspectFile - [Issue #1715 - @defanator] - - Adds support to libMaxMind - [Issue #1307 - @zimmerle, @defanator] - - Adds capture action to detectXSS - [Issue #1698 - @victorhora] - - Temporarily accept invalid MULTIPART_SEMICOLON_MISSING operator - [Issue #1701 - @victorhora] - - Adds capture action to detectSQLi - [Issue #1698 - @zimmerle] - - Adds capture action to rbl - [Issue #1698 - @zimmerle] - - Adds capture action to verifyCC - [Issue #1698 - @michaelgranzow-avi, @zimmerle] - - Adds capture action to verifySSN - [Issue #1698 - @zimmerle] - - Adds capture action to verifyCPF - [Issue #1698 - @zimmerle] - - Prettier error messages for unsupported configurations (UX) - [@victorhora] - - Add missing verify*** transformation statements to parser - [Issue #1006 and #1007 - @victorhora] - - Fix a set of compilation warnings - [Issue #1650 - @zimmerle, @JayCase] - - Check for disruptive action on SecDefaultAction. - [Issue #1614 - @zimmerle, @michaelgranzow-avi] - - Fix block-block infinite loop. - [Issue #1614 - @zimmerle, @michaelgranzow-avi] - - Correction remove_by_tag and remove_by_msg logic. - [Issue #1636 - @Minasu] - - Fix LMDB compile error - [Issue #1691 - @airween] - - Fix msc_who_am_i() to return pointer to a valid C string - [Issue #1640 - @defanator] - - Added some cosmetics to autoconf related code - [Issue #1652 - @airween] - - Fix "make dist" target to include necessary headers for Lua - [Issue #1678 - @defanator] - - Fix "include /foo/*.conf" for single matched object in directory - [Issue #1677 - @defanator, @zimmerle] - - Add missing Base64 transformation statements to parser - [Issue #1632 - @victorhora, @zimmerle] - - Fixed resource load on ip match from file - [#1674 - @zimmerle, @StefaanSeys] - - Fixed examples compilation while using disable-shared - [#1670 - @zimmerle, @ivanbaldo] - - Fixed compilation issue while xml is disabled - [0x243028 - @zimmerle] - - Having LDADD and LDFLAGS organized on Makefile.am - [0xd0e85e - @zimmerle] - - Checking std::deque size before use it - [0x217cbf - @zimmerle, Yaron Dayagi] - - perf improvement: Added the concept of RunTimeString and removed - all run time parser. - [0x3eae51 0x0320e0 0xb5688f 0xfe47a9 0xfa9842 0x1affc3 0x079de4 - 0xc7c04f 0x5262ea 0x01974a 0xd5ee1e - @zimmerle] - - perf improvement: Checks debuglog level before format debug msg - [0x42ee9 - @zimmerle] - - perf. improvement/rx: Only compute dynamic regex in case of macro - [0x91ff3 - @zimmerle] - - Fix uri on the benchmark utility - [0x63bec - @zimmerle] - - disable Lua on systems with liblua5.1 - [Issue #1639 - @victorhora, @defanator] - -v3.0.0 - 2017-Dec-13 --------------------- - - - Improvements on LUA build scripts and support for LUA 5.2. - [Issue #1617 and #1622 - @victorhora, @zimmerle] - - Fix compilation error with disable_debug_log flag - [0xfd84e - Izik Abramov] - - Improvements on the benchmark tool. - [Issue #1615 - @zimmerle] - - Fix lua headers on the build scripts - [Issue #1621 - @Minasu] - - Refactoring on the JSON parser. - [Issue #1576, #1577 - Tobias Gutknecht, @zimmerle, @victorhora, @marcstern] - - Adds support to WEBAPPID variable. - [Issue #1027 - @zimmerle, @victorhora] - - Adds support for SecWebAppId. - [Issue #1442 - @zimmerle, @victorhora] - - Adds support for SecRuleRemoveByTag. - [Issue #1476 - @zimmerle, @victorhora] - - Adds support for update target by message. - [Issue #1474 - @zimmerle, @victorhora] - - Adds support to SecRuleScript directive. - [Issue #994 - @zimmerle] - - Adds support for the exec action. - [Issue #1050 - @zimmerle] - - Adds support for transformations inside Lua engine - [Issue #994 - @zimmerle] - - Adds initial support for Lua engine. - [Issue #994 - @zimmerle] - - Adds support for @inspectFile operator. - [Issue #999 - @zimmerle, @victorhora] - - Adds support for RESOURCE variable collection. - [Issue #1014 - @zimmerle, @victorhora] - - Adds support for @fuzzyHash operator. - [Issue #997 - @zimmerle] - - Fix build on non x86 arch build - [Issue #1598 - @athmane] - - Fix memory issue while changing rule target dynamic - [Issue #1590 - @zimmerle, @slabber] - - Fix log while displaying the name of a dict selection by regex. - [@zimmerle] - - Setting http response code on the auditlog. - [Issue #1592 - @zimmerle] - - Refactoring on RuleMessage class, now accepting http code as parameter. - [@zimmerle] - - Having disruptive msgs as disruptive [instead of warnings] on audit log - [Issue #1592 - @zimmerle, @nobodysz] - - Parser: Pipes are no longer welcomed inside regex dict element selection. - [Issue #1591 - @zimmerle, @slabber] - - Avoids unicode initialization on every rules object - [Issue #1563 - @zimmerle, @Tiki-God, @sethinsd, @Cloaked9000, @AnoopAlias, - @intelbg] - - Makes clear to the user whenever the audit log is empty due to missing - JSON support. - [Issue #1585 - @zimmerle] - - Makes auditlog more verbose on debug logs - [Issue: #1559 - @zimmerle] - - Enable support for AuditLogFormat - Issue: #1583, #1493 and #1453 - @victorhora] - - Adds macro expansion for @rx operator - [Issue: #1528, #1536 - @asterite3, @zimmerle] - - Consideres under quoted variable while loading the rules. - [Felipe Zimmerle/@zimmerle, Victor Hora/@victorhora] - - Store the connection and url parameters in std::string - [Issue: #1571 - @majordaw] - - Eliminate some reorder and sign warnings - [Issue: #1572 - Dávid Major/@majordaw] - - Makes parallel logging to work when SELinux is enabled. - [Issue: #1562 - David Buckle/@met3or] - - Adds possibility to run the pm operator inside a mutex to avoid concurrent - access while working on a thread environment. This option is a compilation - flag. - [Felipe Zimmerle/@zimmerle] - - -v3.0.0-rc1 - 2017-Aug-28 ------------------------- - - Very first public version. - diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 261eeb9e..00000000 --- a/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - 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 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index a2efb2cf..00000000 --- a/Makefile.am +++ /dev/null @@ -1,304 +0,0 @@ - -if TEST_UTILITIES -export MAYBE_TEST = test -endif - -if EXAMPLES -export MAYBE_EXAMPLES = examples -endif - - -SUBDIRS = \ - others \ - src \ - doc \ - tools \ - $(MAYBE_EXAMPLES) \ - $(MAYBE_TEST) - - - -# make clean -CLEANFILES = - -ACLOCAL_AMFLAGS = -I build - -# make maintainer-clean -MAINTAINERCLEANFILES = \ - aclocal.m4 \ - ar-lib \ - build/libtool.m4 \ - build/lt~obsolete.m4 \ - build/ltoptions.m4 \ - build/ltsugar.m4 \ - build/ltversion.m4 \ - coding-style.txt \ - compile \ - config.guess \ - config.sub \ - configure \ - cppcheck.txt \ - depcomp \ - install-sh \ - ltmain.sh \ - Makefile.in \ - missing \ - test/modsec-shared-collections \ - test/modsec-shared-collections-lock \ - test-suite-drd.log \ - test-suite-helgrind.log \ - test-suite-memcheck.log \ - ylwrap - -parser: - cat src/parser/seclang-parser.hh | sed "s/return \*new (yyas_ ()) T (t)/return *new (yyas_ ()) T (std::move((T\&)t))/g" > src/parser/seclang-parser.hh.fix && mv src/parser/seclang-parser.hh.fix src/parser/seclang-parser.hh - - - -cppcheck: - @cppcheck \ - --suppressions-list=./test/cppcheck_suppressions.txt \ - --enable=all \ - --inconclusive \ - --template="warning: {file},{line},{severity},{id},{message}" \ - --std=posix . 2> cppcheck.txt - cat cppcheck.txt | grep -v "/ lalr1.cc" - -check-static: cppcheck - -check-style: check-coding-style - -check-coding-style: - @cpplint.py \ - $$(find . -name "*.h" -o -name "*.cc" | xargs) 2>&1 \ - | egrep -v $$(echo -n "catchall" ; \ - for i in $$(cat test/coding_style_suppressions.txt); do echo -n "|"$$i; done) \ - | sed 's/^\./warning: ./g' > coding-style.txt - -cat coding-style.txt - - -@VALGRIND_CHECK_RULES@ -VALGRIND_SUPPRESSIONS_FILES = valgrind_suppressions.txt - -LOG_DRIVER = env $(SHELL) $(top_srcdir)/test/custom-test-driver -AM_TESTS_ENVIRONMENT=AUTOMAKE_TESTS=true; export AUTOMAKE_TESTS; -LOG_COMPILER=test/test-suite.sh - -# for i in `find test/test-cases -iname *.json`; do echo TESTS+=$i; done -TESTS= -TESTS+=test/test-cases/regression/action-allow.json -TESTS+=test/test-cases/regression/action-ctl_request_body_access.json -TESTS+=test/test-cases/regression/action-ctl_request_body_processor.json -TESTS+=test/test-cases/regression/action-ctl_rule_engine.json -TESTS+=test/test-cases/regression/action-ctl_rule_remove_by_id.json -TESTS+=test/test-cases/regression/action-ctl_rule_remove_by_tag.json -TESTS+=test/test-cases/regression/action-ctl_rule_remove_target_by_id.json -TESTS+=test/test-cases/regression/action-ctl_rule_remove_target_by_tag.json -TESTS+=test/test-cases/regression/action-disruptive.json -TESTS+=test/test-cases/regression/action-exec.json -TESTS+=test/test-cases/regression/action-id.json -TESTS+=test/test-cases/regression/action-initcol.json -TESTS+=test/test-cases/regression/action-msg.json -TESTS+=test/test-cases/regression/action-setrsc.json -TESTS+=test/test-cases/regression/action-setsid.json -TESTS+=test/test-cases/regression/action-setuid.json -TESTS+=test/test-cases/regression/actions.json -TESTS+=test/test-cases/regression/action-skip.json -TESTS+=test/test-cases/regression/action-tag.json -TESTS+=test/test-cases/regression/action-tnf-base64.json -TESTS+=test/test-cases/regression/action-xmlns.json -TESTS+=test/test-cases/regression/auditlog.json -TESTS+=test/test-cases/regression/collection-case-insensitive.json -TESTS+=test/test-cases/regression/collection-regular_expression_selection.json -TESTS+=test/test-cases/regression/collection-resource.json -TESTS+=test/test-cases/regression/collection-tx.json -TESTS+=test/test-cases/regression/collection-tx-with-macro.json -TESTS+=test/test-cases/regression/config-body_limits.json -TESTS+=test/test-cases/regression/config-calling_phases_by_name.json -TESTS+=test/test-cases/regression/config-include-bad.json -TESTS+=test/test-cases/regression/config-include.json -TESTS+=test/test-cases/regression/config-remove_by_id.json -TESTS+=test/test-cases/regression/config-remove_by_msg.json -TESTS+=test/test-cases/regression/config-remove_by_tag.json -TESTS+=test/test-cases/regression/config-response_type.json -TESTS+=test/test-cases/regression/config-secdefaultaction.json -TESTS+=test/test-cases/regression/config-secremoterules.json -TESTS+=test/test-cases/regression/config-update-target-by-id.json -TESTS+=test/test-cases/regression/config-update-target-by-msg.json -TESTS+=test/test-cases/regression/config-update-target-by-tag.json -TESTS+=test/test-cases/regression/config-xml_external_entity.json -TESTS+=test/test-cases/regression/debug_log.json -TESTS+=test/test-cases/regression/directive-sec_rule_script.json -TESTS+=test/test-cases/regression/issue-1152.json -TESTS+=test/test-cases/regression/issue-1528.json -TESTS+=test/test-cases/regression/issue-1565.json -TESTS+=test/test-cases/regression/issue-1576.json -TESTS+=test/test-cases/regression/issue-1591.json -TESTS+=test/test-cases/regression/issue-394.json -TESTS+=test/test-cases/regression/issue-960.json -TESTS+=test/test-cases/regression/misc.json -TESTS+=test/test-cases/regression/misc-variable-under-quotes.json -TESTS+=test/test-cases/regression/offset-variable.json -TESTS+=test/test-cases/regression/operator-detectsqli.json -TESTS+=test/test-cases/regression/operator-fuzzyhash.json -TESTS+=test/test-cases/regression/operator-inpectFile.json -TESTS+=test/test-cases/regression/operator-ipMatchFromFile.json -TESTS+=test/test-cases/regression/operator-rx.json -TESTS+=test/test-cases/regression/operator-UnconditionalMatch.json -TESTS+=test/test-cases/regression/operator-validate-byte-range.json -TESTS+=test/test-cases/regression/operator-verifycc.json -TESTS+=test/test-cases/regression/operator-verifycpf.json -TESTS+=test/test-cases/regression/operator-verifyssn.json -TESTS+=test/test-cases/regression/request-body-parser-json.json -TESTS+=test/test-cases/regression/request-body-parser-multipart-crlf.json -TESTS+=test/test-cases/regression/request-body-parser-multipart.json -TESTS+=test/test-cases/regression/request-body-parser-xml.json -TESTS+=test/test-cases/regression/request-body-parser-xml-validade-dtd.json -TESTS+=test/test-cases/regression/secaction.json -TESTS+=test/test-cases/regression/sec_component_signature.json -TESTS+=test/test-cases/regression/secmarker.json -TESTS+=test/test-cases/regression/secruleengine.json -TESTS+=test/test-cases/regression/transformation-none.json -TESTS+=test/test-cases/regression/transformations.json -TESTS+=test/test-cases/regression/variable-ARGS_COMBINED_SIZE.json -TESTS+=test/test-cases/regression/variable-ARGS_GET.json -TESTS+=test/test-cases/regression/variable-ARGS_GET_NAMES.json -TESTS+=test/test-cases/regression/variable-ARGS.json -TESTS+=test/test-cases/regression/variable-ARGS_NAMES.json -TESTS+=test/test-cases/regression/variable-ARGS_POST.json -TESTS+=test/test-cases/regression/variable-ARGS_POST_NAMES.json -TESTS+=test/test-cases/regression/variable-AUTH_TYPE.json -TESTS+=test/test-cases/regression/variable-DURATION.json -TESTS+=test/test-cases/regression/variable-ENV.json -TESTS+=test/test-cases/regression/variable-FILES_COMBINED_SIZE.json -TESTS+=test/test-cases/regression/variable-FILES.json -TESTS+=test/test-cases/regression/variable-FILES_NAMES.json -TESTS+=test/test-cases/regression/variable-FILES_SIZES.json -TESTS+=test/test-cases/regression/variable-FULL_REQUEST.json -TESTS+=test/test-cases/regression/variable-FULL_REQUEST_LENGTH.json -TESTS+=test/test-cases/regression/variable-GEO.json -TESTS+=test/test-cases/regression/variable-HIGHEST_SEVERITY.json -TESTS+=test/test-cases/regression/variable-INBOUND_DATA_ERROR.json -TESTS+=test/test-cases/regression/variable-MATCHED_VAR.json -TESTS+=test/test-cases/regression/variable-MATCHED_VAR_NAME.json -TESTS+=test/test-cases/regression/variable-MATCHED_VARS.json -TESTS+=test/test-cases/regression/variable-MATCHED_VARS_NAMES.json -TESTS+=test/test-cases/regression/variable-MODSEC_BUILD.json -TESTS+=test/test-cases/regression/variable-MULTIPART_CRLF_LF_LINES.json -TESTS+=test/test-cases/regression/variable-MULTIPART_FILENAME.json -TESTS+=test/test-cases/regression/variable-MULTIPART_INVALID_HEADER_FOLDING.json -TESTS+=test/test-cases/regression/variable-MULTIPART_NAME.json -TESTS+=test/test-cases/regression/variable-MULTIPART_STRICT_ERROR.json -TESTS+=test/test-cases/regression/variable-MULTIPART_UNMATCHED_BOUNDARY.json -TESTS+=test/test-cases/regression/variable-OUTBOUND_DATA_ERROR.json -TESTS+=test/test-cases/regression/variable-PATH_INFO.json -TESTS+=test/test-cases/regression/variable-QUERY_STRING.json -TESTS+=test/test-cases/regression/variable-REMOTE_ADDR.json -TESTS+=test/test-cases/regression/variable-REMOTE_HOST.json -TESTS+=test/test-cases/regression/variable-REMOTE_PORT.json -TESTS+=test/test-cases/regression/variable-REMOTE_USER.json -TESTS+=test/test-cases/regression/variable-REQBODY_PROCESSOR_ERROR.json -TESTS+=test/test-cases/regression/variable-REQBODY_PROCESSOR.json -TESTS+=test/test-cases/regression/variable-REQUEST_BASENAME.json -TESTS+=test/test-cases/regression/variable-REQUEST_BODY.json -TESTS+=test/test-cases/regression/variable-REQUEST_BODY_LENGTH.json -TESTS+=test/test-cases/regression/variable-REQUEST_COOKIES.json -TESTS+=test/test-cases/regression/variable-REQUEST_COOKIES_NAMES.json -TESTS+=test/test-cases/regression/variable-REQUEST_FILENAME.json -TESTS+=test/test-cases/regression/variable-REQUEST_HEADERS.json -TESTS+=test/test-cases/regression/variable-REQUEST_HEADERS_NAMES.json -TESTS+=test/test-cases/regression/variable-REQUEST_LINE.json -TESTS+=test/test-cases/regression/variable-REQUEST_METHOD.json -TESTS+=test/test-cases/regression/variable-REQUEST_PROTOCOL.json -TESTS+=test/test-cases/regression/variable-REQUEST_URI.json -TESTS+=test/test-cases/regression/variable-REQUEST_URI_RAW.json -TESTS+=test/test-cases/regression/variable-RESPONSE_BODY.json -TESTS+=test/test-cases/regression/variable-RESPONSE_CONTENT_LENGTH.json -TESTS+=test/test-cases/regression/variable-RESPONSE_CONTENT_TYPE.json -TESTS+=test/test-cases/regression/variable-RESPONSE_HEADERS.json -TESTS+=test/test-cases/regression/variable-RESPONSE_HEADERS_NAMES.json -TESTS+=test/test-cases/regression/variable-RESPONSE_PROTOCOL.json -TESTS+=test/test-cases/regression/variable-RULE.json -TESTS+=test/test-cases/regression/variable-SERVER_ADDR.json -TESTS+=test/test-cases/regression/variable-SERVER_NAME.json -TESTS+=test/test-cases/regression/variable-SERVER_PORT.json -TESTS+=test/test-cases/regression/variable-SESSIONID.json -TESTS+=test/test-cases/regression/variable-STATUS.json -TESTS+=test/test-cases/regression/variable-TIME_DAY.json -TESTS+=test/test-cases/regression/variable-TIME_EPOCH.json -TESTS+=test/test-cases/regression/variable-TIME_HOUR.json -TESTS+=test/test-cases/regression/variable-TIME.json -TESTS+=test/test-cases/regression/variable-TIME_MIN.json -TESTS+=test/test-cases/regression/variable-TIME_MON.json -TESTS+=test/test-cases/regression/variable-TIME_SEC.json -TESTS+=test/test-cases/regression/variable-TIME_WDAY.json -TESTS+=test/test-cases/regression/variable-TIME_YEAR.json -TESTS+=test/test-cases/regression/variable-TX.json -TESTS+=test/test-cases/regression/variable-UNIQUE_ID.json -TESTS+=test/test-cases/regression/variable-URLENCODED_ERROR.json -TESTS+=test/test-cases/regression/variable-USERID.json -TESTS+=test/test-cases/regression/variable-variation-count.json -TESTS+=test/test-cases/regression/variable-variation-exclusion.json -TESTS+=test/test-cases/regression/variable-WEBAPPID.json -TESTS+=test/test-cases/regression/variable-WEBSERVER_ERROR_LOG.json -TESTS+=test/test-cases/secrules-language-tests/operators/beginsWith.json -TESTS+=test/test-cases/secrules-language-tests/operators/contains.json -TESTS+=test/test-cases/secrules-language-tests/operators/containsWord.json -TESTS+=test/test-cases/secrules-language-tests/operators/detectSQLi.json -TESTS+=test/test-cases/secrules-language-tests/operators/detectXSS.json -TESTS+=test/test-cases/secrules-language-tests/operators/endsWith.json -TESTS+=test/test-cases/secrules-language-tests/operators/eq.json -TESTS+=test/test-cases/secrules-language-tests/operators/ge.json -TESTS+=test/test-cases/secrules-language-tests/operators/geoLookup.json -TESTS+=test/test-cases/secrules-language-tests/operators/gt.json -TESTS+=test/test-cases/secrules-language-tests/operators/ipMatch.json -TESTS+=test/test-cases/secrules-language-tests/operators/le.json -TESTS+=test/test-cases/secrules-language-tests/operators/lt.json -TESTS+=test/test-cases/secrules-language-tests/operators/noMatch.json -TESTS+=test/test-cases/secrules-language-tests/operators/pmFromFile.json -TESTS+=test/test-cases/secrules-language-tests/operators/pm.json -TESTS+=test/test-cases/secrules-language-tests/operators/rx.json -TESTS+=test/test-cases/secrules-language-tests/operators/streq.json -TESTS+=test/test-cases/secrules-language-tests/operators/strmatch.json -TESTS+=test/test-cases/secrules-language-tests/operators/unconditionalMatch.json -TESTS+=test/test-cases/secrules-language-tests/operators/validateByteRange.json -TESTS+=test/test-cases/secrules-language-tests/operators/validateUrlEncoding.json -TESTS+=test/test-cases/secrules-language-tests/operators/validateUtf8Encoding.json -TESTS+=test/test-cases/secrules-language-tests/operators/verifyCC.json -TESTS+=test/test-cases/secrules-language-tests/operators/verifycpf.json -TESTS+=test/test-cases/secrules-language-tests/operators/verifyssn.json -TESTS+=test/test-cases/secrules-language-tests/operators/within.json -TESTS+=test/test-cases/secrules-language-tests/transformations/base64DecodeExt.json -TESTS+=test/test-cases/secrules-language-tests/transformations/base64Decode.json -TESTS+=test/test-cases/secrules-language-tests/transformations/base64Encode.json -TESTS+=test/test-cases/secrules-language-tests/transformations/cmdLine.json -TESTS+=test/test-cases/secrules-language-tests/transformations/compressWhitespace.json -TESTS+=test/test-cases/secrules-language-tests/transformations/cssDecode.json -TESTS+=test/test-cases/secrules-language-tests/transformations/escapeSeqDecode.json -TESTS+=test/test-cases/secrules-language-tests/transformations/hexDecode.json -TESTS+=test/test-cases/secrules-language-tests/transformations/hexEncode.json -TESTS+=test/test-cases/secrules-language-tests/transformations/htmlEntityDecode.json -TESTS+=test/test-cases/secrules-language-tests/transformations/jsDecode.json -TESTS+=test/test-cases/secrules-language-tests/transformations/length.json -TESTS+=test/test-cases/secrules-language-tests/transformations/lowercase.json -TESTS+=test/test-cases/secrules-language-tests/transformations/md5.json -TESTS+=test/test-cases/secrules-language-tests/transformations/normalisePath.json -TESTS+=test/test-cases/secrules-language-tests/transformations/normalisePathWin.json -TESTS+=test/test-cases/secrules-language-tests/transformations/parityEven7bit.json -TESTS+=test/test-cases/secrules-language-tests/transformations/parityOdd7bit.json -TESTS+=test/test-cases/secrules-language-tests/transformations/parityZero7bit.json -TESTS+=test/test-cases/secrules-language-tests/transformations/removeCommentsChar.json -TESTS+=test/test-cases/secrules-language-tests/transformations/removeComments.json -TESTS+=test/test-cases/secrules-language-tests/transformations/removeNulls.json -TESTS+=test/test-cases/secrules-language-tests/transformations/removeWhitespace.json -TESTS+=test/test-cases/secrules-language-tests/transformations/replaceComments.json -TESTS+=test/test-cases/secrules-language-tests/transformations/replaceNulls.json -TESTS+=test/test-cases/secrules-language-tests/transformations/sha1.json -TESTS+=test/test-cases/secrules-language-tests/transformations/sqlHexDecode.json -TESTS+=test/test-cases/secrules-language-tests/transformations/trim.json -TESTS+=test/test-cases/secrules-language-tests/transformations/trimLeft.json -TESTS+=test/test-cases/secrules-language-tests/transformations/trimRight.json -TESTS+=test/test-cases/secrules-language-tests/transformations/urlDecode.json -TESTS+=test/test-cases/secrules-language-tests/transformations/urlDecodeUni.json -TESTS+=test/test-cases/secrules-language-tests/transformations/urlEncode.json -TESTS+=test/test-cases/secrules-language-tests/transformations/utf8toUnicode.json diff --git a/README.md b/README.md deleted file mode 100644 index afbabfe2..00000000 --- a/README.md +++ /dev/null @@ -1,261 +0,0 @@ - - - -[![Build Status](https://travis-ci.org/SpiderLabs/ModSecurity.svg?branch=v3/master)](https://travis-ci.org/SpiderLabs/ModSecurity) -[![](https://raw.githubusercontent.com/ZenHubIO/support/master/zenhub-badge.png)](https://zenhub.com) - -Libmodsecurity is one component of the ModSecurity v3 project. The library -codebase serves as an interface to ModSecurity Connectors taking in web traffic -and applying traditional ModSecurity processing. In general, it provides the -capability to load/interpret rules written in the ModSecurity SecRules format -and apply them to HTTP content provided by your application via Connectors. - -Currently, libmodsecurity is known to be compatible with the following -Connectors: ModSecurity Nginx Connector (ModSecurity-nginx). - - -### What is the difference between this project and the old ModSecurity (v2.x.x)? - -* All Apache dependences have been removed -* Higher performance -* New features -* New architecture - -Libmodsecurity is a complete rewrite of the ModSecurity platform. When it was first devised the ModSecurity project started as just an Apache module. Over time the project has been extended, due to popular demand, to support other platforms including (but not limited to) Nginx and IIS. In order to provide for the growing demand for additional platform support, it has became necessary to remove the Apache dependencies underlying this project, making it more platform independent. - -As a result of this goal we have rearchitechted Libmodsecurity such that it is no longer dependent on the Apache web server (both at compilation and during runtime). One side effect of this is that across all platforms users can expect increased performance. Additionally, we have taken this opprotunity to lay the groundwork for some new features that users have been long seeking. For example we are looking to nativly support auditlogs in the JSON format, along with a host of other functionality in future versions. - - -### It is no longer just a module. - -The 'ModSecurity' branch no longer contains the traditional module logic (for Nginx, Apache, and IIS) that has traditionally been packaged all togerher. Instead, this branch only contains the library portion (libmodsecurity) for this project. This library is consumed by what we have termed 'Connectors' these connectors will interface with your webserver and provide the library with a common format that it undersands. Each of these connectors is maintained as a seperate GitHub project. For instance, the Nginx connector is supplied by the ModSecurity-nginx project (https://github.com/SpiderLabs/ModSecurity-nginx). - -Keeping these connectors seperated allows each project to be have different release cycles, issues and development trees. Addtionally, it means that when you install ModSecurity v3 you only get exactly what you need, no extras you won't be using. - -# Compilation - -Before starting the compilation process, make sure that you have all the -dependencies in place. Read the subsection “Dependencies” for further -information. - -After the compilation make sure that there are no issues on your -build/platform. We strongly recommend the utilization of the unit tests and -regression tests. These test utilities are located under the subfolder ‘tests’. - -As a dynamic library, don’t forget that libmodsecurity must be installed to a location (folder) where you OS will be looking for dynamic libraries. - - - -### Unix (Linux, MacOS, FreeBSD, …) - -On unix the project uses autotools to help the compilation process. - -```shell -$ ./build.sh -$ ./configure -$ make -$ sudo make install -``` - -Details on distribution specific builds can be found in our Wiki: -[Compilation Recipes](https://github.com/SpiderLabs/ModSecurity/wiki/Compilation-recipes) - -### Windows - -Windows build is not ready yet. - - -## Dependencies - -This library is written in C++ using the C++11 standards. It also uses Flex -and Yacc to produce the “Sec Rules Language” parser. Other, manditory dependencies include YAJL, as ModSecurity uses JSON for producing logs and its testing framework, libpcre (not yet manditory) for processing regular expressions in SecRules, and libXML2 (not yet manditory) which is used for parsing XML requests. - -All others dependencies are related to operators specified within SecRules or configuration directives and may not be required for compilation. A short list of such dependencies is as follows: - -* libinjection is needed for the operator @detectXSS and @detectSQL -* curl is needed for the directive SecRemoteRules. - -If those libraries are missing ModSecurity will be compiled without the support for the operator @detectXSS and the configuration directive SecRemoteRules. - -# Library documentation - -The library documentation is written within the code in Doxygen format. To generate this documentation, please use the doxygen utility with the provided configuration file, “doxygen.cfg”, located with the "doc/" subfolder. This will generate HTML formatted documentation including usage examples. - -# Library utilization - -The library provides a C++ and C interface. Some resources are currently only -available via the C++ interface, for instance, the capability to create custom logging -mechanism (see the regression test to check for how those logging mechanism works). -The objective is to have both APIs (C, C++) providing the same functionality, -if you find an aspect of the API that is missing via a perticular interface, please open an issue. - -Inside the subfolder examples, there are simple examples on how to use the API. -Below some are illustrated: - -### Simple example using C++ - -```c++ -using ModSecurity::ModSecurity; -using ModSecurity::Rules; -using ModSecurity::Transaction; - -ModSecurity *modsec; -ModSecurity::Rules *rules; - -modsec = new ModSecurity(); - -rules = new Rules(); - -rules->loadFromUri(rules_file); - -Transaction *modsecTransaction = new Transaction(modsec, rules); - -modsecTransaction->processConnection("127.0.0.1"); -if (modsecTransaction->intervention()) { - std::cout << "There is an intervention" << std::endl; -} -``` - -### Simple example using C - -```c -#include "modsecurity/modsecurity.h" -#include "modsecurity/transaction.h" - - -char main_rule_uri[] = "basic_rules.conf"; - -int main (int argc, char **argv) -{ - ModSecurity *modsec = NULL; - Transaction *transaction = NULL; - Rules *rules = NULL; - - modsec = msc_init(); - - rules = msc_create_rules_set(); - msc_rules_add_file(rules, main_rule_uri); - - transaction = msc_new_transaction(modsec, rules); - - msc_process_connection(transaction, "127.0.0.1"); - msc_process_uri(transaction, "http://www.modsecurity.org/test?key1=value1&key2=value2&key3=value3&test=args&test=test"); - msc_process_request_headers(transaction); - msc_process_request_body(transaction); - msc_process_response_headers(transaction); - msc_process_response_body(transaction); - - return 0; -} - -``` - -# Contributing - -You are more than welcome to contribute to this project and look forward to growing the community around this new version of ModSecurity. Areas of interest include: New -functionalities, fixes, bug report, support for beginning users, or anything that you -are willing to help with. - -## Providing patches - -We prefer to have your patch within the GtiHub infrastructure to facilitate our -review work, and our Q.A. integration. GitHub provides excellent -documentation on how to perform “Pull Requests”, more information available -here: https://help.github.com/articles/using-pull-requests/ - -Please respect the coding style. Pull requests can include various commits, so -provide one fix or one piece of functionality per commit. Please do not change anything outside -the scope of your target work (e.g. coding style in a function that you have -passed by). For further information about the coding style used in this -project, please check: https://www.chromium.org/blink/coding-style - -Provides explanative commit messages. Your first line should give the highlights of your -patch, 3rd and on give a more detailed explanation/technical details about your -patch. Patch explanation is valuable during the review process. - -### Don’t know where to start? - -Within our code there are various items marked as TODO or FIXME that may need -your attention. Check the list of items by performing a grep: - -``` -$ cd /path/to/modsecurity-nginx -$ egrep -Rin "TODO|FIXME" -R * -``` - -A TODO list is also available as part of the Doxygen documentation. - -### Testing your patch - -Along with the manual testing, we strongly recommend you to use the our -regression tests and unit tests. If you have implemented an operator, don’t -forget to create unit tests for it. If you impliment anything else, it is encouraged that you develop complimentary regression tests for it. - -The regression test and unit test utilities are native and do not demand any -external tool or script, although you need to fetch the test cases from other -repositories, as they are shared with other versions of ModSecurity, those -others repositories git submodules. To fetch the submodules repository and run -the utilities, follow the commands listed below: - -```shell -$ cd /path/to/your/ModSecurity -$ git submodule foreach git pull -$ cd tests -$ ./regression-tests -$ ./unit-tests - ``` - -### Debugging - - -Before start the debugging process, make sure of where your bug is. The problem -could be on your connector or in libmodsecurity. In order to identify where the -bug is, it is recommended that you develop a regression test that mimics the -scenario where the bug is happening. If the bug is reproducible with the -regression-test utility, then it will be far simpliar to debug and ensure that it never occurs again. On Linux it is -recommended that anyone undertaking debugging utilize gdb and/or valgrind as needed. - -During the configuration/compilation time, you may want to disable the compiler -optimization making your “back traces” populated with readable data. Use the -CFLAGS to disable the compilation optimization parameters: - -```shell -$ export CFLAGS="-g -O0" -$ ./build.sh -$ ./configure -$ make -$ sudo make install -``` - - -## Reporting Issues - -If you are facing a configuration issue or something is not working as you -expected to be, please use the ModSecurity user’s mailing list. Issues on GitHub -are also welcomed, but we prefer to have user ask questions on the mailing list first so that you can reach an entire community. Also don’t forget to look for existing issues before open a new one. - -If you are going to open a new issue on GitHub, don’t forget to tell us the -version of your libmodsecurity and the version of a specific connector if there -is one. - - -### Security issue - -Please do not make public any security issue. Contact us at: -security@modsecurity.org reporting the issue. Once the problem is fixed your -credit will be given. - -## Feature request - -We are open to discussing any new feature request with the community via the mailing lists. You can alternativly, -feel free to open GitHub issues requesting new features. Before opening a -new issue, please check if there is one already opened on the same topic. - -## Packing - -Having our packages in distros on time is a desire that we have, so let us know -if there is anything we can do to facilitate your work as a packager. - - - - diff --git a/bindings/python b/bindings/python deleted file mode 160000 index bc625d5b..00000000 --- a/bindings/python +++ /dev/null @@ -1 +0,0 @@ -Subproject commit bc625d5bb0bac6a64bcce8dc9902208612399348 diff --git a/build.sh b/build.sh deleted file mode 100755 index 63f8a60f..00000000 --- a/build.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -rm -rf autom4te.cache -rm -f aclocal.m4 -case `uname` in Darwin*) glibtoolize --force --copy ;; - *) libtoolize --force --copy ;; esac -autoreconf --install -autoheader -automake --add-missing --foreign --copy --force-missing -autoconf --force -rm -rf autom4te.cache - - diff --git a/build/.empty b/build/.empty deleted file mode 100644 index e69de29b..00000000 diff --git a/build/ax_cxx_compile_stdcxx_11.m4 b/build/ax_cxx_compile_stdcxx_11.m4 deleted file mode 100644 index e76fd605..00000000 --- a/build/ax_cxx_compile_stdcxx_11.m4 +++ /dev/null @@ -1,171 +0,0 @@ -# ============================================================================ -# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html -# ============================================================================ -# -# SYNOPSIS -# -# AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional]) -# -# DESCRIPTION -# -# Check for baseline language coverage in the compiler for the C++11 -# standard; if necessary, add switches to CXXFLAGS to enable support. -# -# The first argument, if specified, indicates whether you insist on an -# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. -# -std=c++11). If neither is specified, you get whatever works, with -# preference for an extended mode. -# -# The second argument, if specified 'mandatory' or if left unspecified, -# indicates that baseline C++11 support is required and that the macro -# should error out if no mode with that support is found. If specified -# 'optional', then configuration proceeds regardless, after defining -# HAVE_CXX11 if and only if a supporting mode is found. -# -# LICENSE -# -# Copyright (c) 2008 Benjamin Kosnik -# Copyright (c) 2012 Zack Weinberg -# Copyright (c) 2013 Roy Stogner -# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov -# Copyright (c) 2015 Paul Norman -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 12 - -m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody], [[ - template - struct check - { - static_assert(sizeof(int) <= sizeof(T), "not big enough"); - }; - - struct Base { - virtual void f() {} - }; - struct Child : public Base { - virtual void f() override {} - }; - - typedef check> right_angle_brackets; - - int a; - decltype(a) b; - - typedef check check_type; - check_type c; - check_type&& cr = static_cast(c); - - auto d = a; - auto l = [](){}; - // Prevent Clang error: unused variable 'l' [-Werror,-Wunused-variable] - struct use_l { use_l() { l(); } }; - - // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae - // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function because of this - namespace test_template_alias_sfinae { - struct foo {}; - - template - using member = typename T::member_type; - - template - void func(...) {} - - template - void func(member*) {} - - void test(); - - void test() { - func(0); - } - } - - // Check for C++11 attribute support - void noret [[noreturn]] () { throw 0; } -]]) - -AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [dnl - m4_if([$1], [], [], - [$1], [ext], [], - [$1], [noext], [], - [m4_fatal([invalid argument `$1' to AX_CXX_COMPILE_STDCXX_11])])dnl - m4_if([$2], [], [ax_cxx_compile_cxx11_required=true], - [$2], [mandatory], [ax_cxx_compile_cxx11_required=true], - [$2], [optional], [ax_cxx_compile_cxx11_required=false], - [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX_11])]) - AC_LANG_PUSH([C++])dnl - ac_success=no - AC_CACHE_CHECK(whether $CXX supports C++11 features by default, - ax_cv_cxx_compile_cxx11, - [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])], - [ax_cv_cxx_compile_cxx11=yes], - [ax_cv_cxx_compile_cxx11=no])]) - if test x$ax_cv_cxx_compile_cxx11 = xyes; then - ac_success=yes - fi - - m4_if([$1], [noext], [], [dnl - if test x$ac_success = xno; then - for switch in -std=gnu++11 -std=gnu++0x; do - cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch]) - AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch, - $cachevar, - [ac_save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS $switch" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])], - [eval $cachevar=yes], - [eval $cachevar=no]) - CXXFLAGS="$ac_save_CXXFLAGS"]) - if eval test x\$$cachevar = xyes; then - CXXFLAGS="$CXXFLAGS $switch" - ac_success=yes - break - fi - done - fi]) - - m4_if([$1], [ext], [], [dnl - if test x$ac_success = xno; then - dnl HP's aCC needs +std=c++11 according to: - dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf - for switch in -std=c++11 -std=c++0x +std=c++11; do - cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch]) - AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch, - $cachevar, - [ac_save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS $switch" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])], - [eval $cachevar=yes], - [eval $cachevar=no]) - CXXFLAGS="$ac_save_CXXFLAGS"]) - if eval test x\$$cachevar = xyes; then - CXXFLAGS="$CXXFLAGS $switch" - ac_success=yes - break - fi - done - fi]) - AC_LANG_POP([C++]) - if test x$ax_cxx_compile_cxx11_required = xtrue; then - if test x$ac_success = xno; then - AC_MSG_ERROR([*** A compiler with support for C++11 language features is required.]) - fi - else - if test x$ac_success = xno; then - HAVE_CXX11=0 - AC_MSG_NOTICE([No compiler with C++11 support was found]) - else - HAVE_CXX11=1 - AC_DEFINE(HAVE_CXX11,1, - [define if the compiler supports basic C++11 syntax]) - fi - - AC_SUBST(HAVE_CXX11) - fi -]) diff --git a/build/ax_prog_doxygen.m4 b/build/ax_prog_doxygen.m4 deleted file mode 100644 index fd145991..00000000 --- a/build/ax_prog_doxygen.m4 +++ /dev/null @@ -1,533 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_prog_doxygen.html -# =========================================================================== -# -# SYNOPSIS -# -# DX_INIT_DOXYGEN(PROJECT-NAME, DOXYFILE-PATH, [OUTPUT-DIR]) -# DX_DOXYGEN_FEATURE(ON|OFF) -# DX_DOT_FEATURE(ON|OFF) -# DX_HTML_FEATURE(ON|OFF) -# DX_CHM_FEATURE(ON|OFF) -# DX_CHI_FEATURE(ON|OFF) -# DX_MAN_FEATURE(ON|OFF) -# DX_RTF_FEATURE(ON|OFF) -# DX_XML_FEATURE(ON|OFF) -# DX_PDF_FEATURE(ON|OFF) -# DX_PS_FEATURE(ON|OFF) -# -# DESCRIPTION -# -# The DX_*_FEATURE macros control the default setting for the given -# Doxygen feature. Supported features are 'DOXYGEN' itself, 'DOT' for -# generating graphics, 'HTML' for plain HTML, 'CHM' for compressed HTML -# help (for MS users), 'CHI' for generating a seperate .chi file by the -# .chm file, and 'MAN', 'RTF', 'XML', 'PDF' and 'PS' for the appropriate -# output formats. The environment variable DOXYGEN_PAPER_SIZE may be -# specified to override the default 'a4wide' paper size. -# -# By default, HTML, PDF and PS documentation is generated as this seems to -# be the most popular and portable combination. MAN pages created by -# Doxygen are usually problematic, though by picking an appropriate subset -# and doing some massaging they might be better than nothing. CHM and RTF -# are specific for MS (note that you can't generate both HTML and CHM at -# the same time). The XML is rather useless unless you apply specialized -# post-processing to it. -# -# The macros mainly control the default state of the feature. The use can -# override the default by specifying --enable or --disable. The macros -# ensure that contradictory flags are not given (e.g., -# --enable-doxygen-html and --enable-doxygen-chm, -# --enable-doxygen-anything with --disable-doxygen, etc.) Finally, each -# feature will be automatically disabled (with a warning) if the required -# programs are missing. -# -# Once all the feature defaults have been specified, call DX_INIT_DOXYGEN -# with the following parameters: a one-word name for the project for use -# as a filename base etc., an optional configuration file name (the -# default is 'Doxyfile', the same as Doxygen's default), and an optional -# output directory name (the default is 'doxygen-doc'). -# -# Automake Support -# -# The following is a template aminclude.am file for use with Automake. -# Make targets and variables values are controlled by the various -# DX_COND_* conditionals set by autoconf. -# -# The provided targets are: -# -# doxygen-doc: Generate all doxygen documentation. -# -# doxygen-run: Run doxygen, which will generate some of the -# documentation (HTML, CHM, CHI, MAN, RTF, XML) -# but will not do the post processing required -# for the rest of it (PS, PDF, and some MAN). -# -# doxygen-man: Rename some doxygen generated man pages. -# -# doxygen-ps: Generate doxygen PostScript documentation. -# -# doxygen-pdf: Generate doxygen PDF documentation. -# -# Note that by default these are not integrated into the automake targets. -# If doxygen is used to generate man pages, you can achieve this -# integration by setting man3_MANS to the list of man pages generated and -# then adding the dependency: -# -# $(man3_MANS): doxygen-doc -# -# This will cause make to run doxygen and generate all the documentation. -# -# The following variable is intended for use in Makefile.am: -# -# DX_CLEANFILES = everything to clean. -# -# Then add this variable to MOSTLYCLEANFILES. -# -# ----- begin aminclude.am ------------------------------------- -# -# ## --------------------------------- ## -# ## Format-independent Doxygen rules. ## -# ## --------------------------------- ## -# -# if DX_COND_doc -# -# ## ------------------------------- ## -# ## Rules specific for HTML output. ## -# ## ------------------------------- ## -# -# if DX_COND_html -# -# DX_CLEAN_HTML = @DX_DOCDIR@/html -# -# endif DX_COND_html -# -# ## ------------------------------ ## -# ## Rules specific for CHM output. ## -# ## ------------------------------ ## -# -# if DX_COND_chm -# -# DX_CLEAN_CHM = @DX_DOCDIR@/chm -# -# if DX_COND_chi -# -# DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi -# -# endif DX_COND_chi -# -# endif DX_COND_chm -# -# ## ------------------------------ ## -# ## Rules specific for MAN output. ## -# ## ------------------------------ ## -# -# if DX_COND_man -# -# DX_CLEAN_MAN = @DX_DOCDIR@/man -# -# endif DX_COND_man -# -# ## ------------------------------ ## -# ## Rules specific for RTF output. ## -# ## ------------------------------ ## -# -# if DX_COND_rtf -# -# DX_CLEAN_RTF = @DX_DOCDIR@/rtf -# -# endif DX_COND_rtf -# -# ## ------------------------------ ## -# ## Rules specific for XML output. ## -# ## ------------------------------ ## -# -# if DX_COND_xml -# -# DX_CLEAN_XML = @DX_DOCDIR@/xml -# -# endif DX_COND_xml -# -# ## ----------------------------- ## -# ## Rules specific for PS output. ## -# ## ----------------------------- ## -# -# if DX_COND_ps -# -# DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps -# -# DX_PS_GOAL = doxygen-ps -# -# doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps -# -# @DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag -# cd @DX_DOCDIR@/latex; \ -# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ -# $(DX_LATEX) refman.tex; \ -# $(MAKEINDEX_PATH) refman.idx; \ -# $(DX_LATEX) refman.tex; \ -# countdown=5; \ -# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ -# refman.log > /dev/null 2>&1 \ -# && test $$countdown -gt 0; do \ -# $(DX_LATEX) refman.tex; \ -# countdown=`expr $$countdown - 1`; \ -# done; \ -# $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi -# -# endif DX_COND_ps -# -# ## ------------------------------ ## -# ## Rules specific for PDF output. ## -# ## ------------------------------ ## -# -# if DX_COND_pdf -# -# DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf -# -# DX_PDF_GOAL = doxygen-pdf -# -# doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf -# -# @DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag -# cd @DX_DOCDIR@/latex; \ -# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ -# $(DX_PDFLATEX) refman.tex; \ -# $(DX_MAKEINDEX) refman.idx; \ -# $(DX_PDFLATEX) refman.tex; \ -# countdown=5; \ -# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ -# refman.log > /dev/null 2>&1 \ -# && test $$countdown -gt 0; do \ -# $(DX_PDFLATEX) refman.tex; \ -# countdown=`expr $$countdown - 1`; \ -# done; \ -# mv refman.pdf ../@PACKAGE@.pdf -# -# endif DX_COND_pdf -# -# ## ------------------------------------------------- ## -# ## Rules specific for LaTeX (shared for PS and PDF). ## -# ## ------------------------------------------------- ## -# -# if DX_COND_latex -# -# DX_CLEAN_LATEX = @DX_DOCDIR@/latex -# -# endif DX_COND_latex -# -# .PHONY: doxygen-run doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) -# -# .INTERMEDIATE: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL) -# -# doxygen-run: @DX_DOCDIR@/@PACKAGE@.tag -# -# doxygen-doc: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL) -# -# @DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) -# rm -rf @DX_DOCDIR@ -# $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) -# echo Timestamp >$@ -# -# DX_CLEANFILES = \ -# @DX_DOCDIR@/@PACKAGE@.tag \ -# -r \ -# $(DX_CLEAN_HTML) \ -# $(DX_CLEAN_CHM) \ -# $(DX_CLEAN_CHI) \ -# $(DX_CLEAN_MAN) \ -# $(DX_CLEAN_RTF) \ -# $(DX_CLEAN_XML) \ -# $(DX_CLEAN_PS) \ -# $(DX_CLEAN_PDF) \ -# $(DX_CLEAN_LATEX) -# -# endif DX_COND_doc -# -# ----- end aminclude.am --------------------------------------- -# -# LICENSE -# -# Copyright (c) 2009 Oren Ben-Kiki -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 13 - -## ----------## -## Defaults. ## -## ----------## - -DX_ENV="" -AC_DEFUN([DX_FEATURE_doc], ON) -AC_DEFUN([DX_FEATURE_dot], OFF) -AC_DEFUN([DX_FEATURE_man], OFF) -AC_DEFUN([DX_FEATURE_html], ON) -AC_DEFUN([DX_FEATURE_chm], OFF) -AC_DEFUN([DX_FEATURE_chi], OFF) -AC_DEFUN([DX_FEATURE_rtf], OFF) -AC_DEFUN([DX_FEATURE_xml], OFF) -AC_DEFUN([DX_FEATURE_pdf], ON) -AC_DEFUN([DX_FEATURE_ps], ON) - -## --------------- ## -## Private macros. ## -## --------------- ## - -# DX_ENV_APPEND(VARIABLE, VALUE) -# ------------------------------ -# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen. -AC_DEFUN([DX_ENV_APPEND], [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])]) - -# DX_DIRNAME_EXPR -# --------------- -# Expand into a shell expression prints the directory part of a path. -AC_DEFUN([DX_DIRNAME_EXPR], - [[expr ".$1" : '\(\.\)[^/]*$' \| "x$1" : 'x\(.*\)/[^/]*$']]) - -# DX_IF_FEATURE(FEATURE, IF-ON, IF-OFF) -# ------------------------------------- -# Expands according to the M4 (static) status of the feature. -AC_DEFUN([DX_IF_FEATURE], [ifelse(DX_FEATURE_$1, ON, [$2], [$3])]) - -# DX_REQUIRE_PROG(VARIABLE, PROGRAM) -# ---------------------------------- -# Require the specified program to be found for the DX_CURRENT_FEATURE to work. -AC_DEFUN([DX_REQUIRE_PROG], [ -AC_PATH_TOOL([$1], [$2]) -if test "$DX_FLAG_[]DX_CURRENT_FEATURE$$1" = 1; then - AC_MSG_WARN([$2 not found - will not DX_CURRENT_DESCRIPTION]) - AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0) -fi -]) - -# DX_TEST_FEATURE(FEATURE) -# ------------------------ -# Expand to a shell expression testing whether the feature is active. -AC_DEFUN([DX_TEST_FEATURE], [test "$DX_FLAG_$1" = 1]) - -# DX_CHECK_DEPEND(REQUIRED_FEATURE, REQUIRED_STATE) -# ------------------------------------------------- -# Verify that a required features has the right state before trying to turn on -# the DX_CURRENT_FEATURE. -AC_DEFUN([DX_CHECK_DEPEND], [ -test "$DX_FLAG_$1" = "$2" \ -|| AC_MSG_ERROR([doxygen-DX_CURRENT_FEATURE ifelse([$2], 1, - requires, contradicts) doxygen-DX_CURRENT_FEATURE]) -]) - -# DX_CLEAR_DEPEND(FEATURE, REQUIRED_FEATURE, REQUIRED_STATE) -# ---------------------------------------------------------- -# Turn off the DX_CURRENT_FEATURE if the required feature is off. -AC_DEFUN([DX_CLEAR_DEPEND], [ -test "$DX_FLAG_$1" = "$2" || AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0) -]) - -# DX_FEATURE_ARG(FEATURE, DESCRIPTION, -# CHECK_DEPEND, CLEAR_DEPEND, -# REQUIRE, DO-IF-ON, DO-IF-OFF) -# -------------------------------------------- -# Parse the command-line option controlling a feature. CHECK_DEPEND is called -# if the user explicitly turns the feature on (and invokes DX_CHECK_DEPEND), -# otherwise CLEAR_DEPEND is called to turn off the default state if a required -# feature is disabled (using DX_CLEAR_DEPEND). REQUIRE performs additional -# requirement tests (DX_REQUIRE_PROG). Finally, an automake flag is set and -# DO-IF-ON or DO-IF-OFF are called according to the final state of the feature. -AC_DEFUN([DX_ARG_ABLE], [ - AC_DEFUN([DX_CURRENT_FEATURE], [$1]) - AC_DEFUN([DX_CURRENT_DESCRIPTION], [$2]) - AC_ARG_ENABLE(doxygen-$1, - [AS_HELP_STRING(DX_IF_FEATURE([$1], [--disable-doxygen-$1], - [--enable-doxygen-$1]), - DX_IF_FEATURE([$1], [don't $2], [$2]))], - [ -case "$enableval" in -#( -y|Y|yes|Yes|YES) - AC_SUBST([DX_FLAG_$1], 1) - $3 -;; #( -n|N|no|No|NO) - AC_SUBST([DX_FLAG_$1], 0) -;; #( -*) - AC_MSG_ERROR([invalid value '$enableval' given to doxygen-$1]) -;; -esac -], [ -AC_SUBST([DX_FLAG_$1], [DX_IF_FEATURE([$1], 1, 0)]) -$4 -]) -if DX_TEST_FEATURE([$1]); then - $5 - : -fi -AM_CONDITIONAL(DX_COND_$1, DX_TEST_FEATURE([$1])) -if DX_TEST_FEATURE([$1]); then - $6 - : -else - $7 - : -fi -]) - -## -------------- ## -## Public macros. ## -## -------------- ## - -# DX_XXX_FEATURE(DEFAULT_STATE) -# ----------------------------- -AC_DEFUN([DX_DOXYGEN_FEATURE], [AC_DEFUN([DX_FEATURE_doc], [$1])]) -AC_DEFUN([DX_DOT_FEATURE], [AC_DEFUN([DX_FEATURE_dot], [$1])]) -AC_DEFUN([DX_MAN_FEATURE], [AC_DEFUN([DX_FEATURE_man], [$1])]) -AC_DEFUN([DX_HTML_FEATURE], [AC_DEFUN([DX_FEATURE_html], [$1])]) -AC_DEFUN([DX_CHM_FEATURE], [AC_DEFUN([DX_FEATURE_chm], [$1])]) -AC_DEFUN([DX_CHI_FEATURE], [AC_DEFUN([DX_FEATURE_chi], [$1])]) -AC_DEFUN([DX_RTF_FEATURE], [AC_DEFUN([DX_FEATURE_rtf], [$1])]) -AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) -AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) -AC_DEFUN([DX_PDF_FEATURE], [AC_DEFUN([DX_FEATURE_pdf], [$1])]) -AC_DEFUN([DX_PS_FEATURE], [AC_DEFUN([DX_FEATURE_ps], [$1])]) - -# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR]) -# --------------------------------------------------------- -# PROJECT also serves as the base name for the documentation files. -# The default CONFIG-FILE is "Doxyfile" and OUTPUT-DOC-DIR is "doxygen-doc". -AC_DEFUN([DX_INIT_DOXYGEN], [ - -# Files: -AC_SUBST([DX_PROJECT], [$1]) -AC_SUBST([DX_CONFIG], [ifelse([$2], [], Doxyfile, [$2])]) -AC_SUBST([DX_DOCDIR], [ifelse([$3], [], doxygen-doc, [$3])]) - -# Environment variables used inside doxygen.cfg: -DX_ENV_APPEND(SRCDIR, $srcdir) -DX_ENV_APPEND(PROJECT, $DX_PROJECT) -DX_ENV_APPEND(DOCDIR, $DX_DOCDIR) -DX_ENV_APPEND(VERSION, $PACKAGE_VERSION) - -# Doxygen itself: -DX_ARG_ABLE(doc, [generate any doxygen documentation], - [], - [], - [DX_REQUIRE_PROG([DX_DOXYGEN], doxygen) - DX_REQUIRE_PROG([DX_PERL], perl)], - [DX_ENV_APPEND(PERL_PATH, $DX_PERL)]) - -# Dot for graphics: -DX_ARG_ABLE(dot, [generate graphics for doxygen documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [DX_REQUIRE_PROG([DX_DOT], dot)], - [DX_ENV_APPEND(HAVE_DOT, YES) - DX_ENV_APPEND(DOT_PATH, [`DX_DIRNAME_EXPR($DX_DOT)`])], - [DX_ENV_APPEND(HAVE_DOT, NO)]) - -# Man pages generation: -DX_ARG_ABLE(man, [generate doxygen manual pages], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [], - [DX_ENV_APPEND(GENERATE_MAN, YES)], - [DX_ENV_APPEND(GENERATE_MAN, NO)]) - -# RTF file generation: -DX_ARG_ABLE(rtf, [generate doxygen RTF documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [], - [DX_ENV_APPEND(GENERATE_RTF, YES)], - [DX_ENV_APPEND(GENERATE_RTF, NO)]) - -# XML file generation: -DX_ARG_ABLE(xml, [generate doxygen XML documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [], - [DX_ENV_APPEND(GENERATE_XML, YES)], - [DX_ENV_APPEND(GENERATE_XML, NO)]) - -# (Compressed) HTML help generation: -DX_ARG_ABLE(chm, [generate doxygen compressed HTML help documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [DX_REQUIRE_PROG([DX_HHC], hhc)], - [DX_ENV_APPEND(HHC_PATH, $DX_HHC) - DX_ENV_APPEND(GENERATE_HTML, YES) - DX_ENV_APPEND(GENERATE_HTMLHELP, YES)], - [DX_ENV_APPEND(GENERATE_HTMLHELP, NO)]) - -# Seperate CHI file generation. -DX_ARG_ABLE(chi, [generate doxygen seperate compressed HTML help index file], - [DX_CHECK_DEPEND(chm, 1)], - [DX_CLEAR_DEPEND(chm, 1)], - [], - [DX_ENV_APPEND(GENERATE_CHI, YES)], - [DX_ENV_APPEND(GENERATE_CHI, NO)]) - -# Plain HTML pages generation: -DX_ARG_ABLE(html, [generate doxygen plain HTML documentation], - [DX_CHECK_DEPEND(doc, 1) DX_CHECK_DEPEND(chm, 0)], - [DX_CLEAR_DEPEND(doc, 1) DX_CLEAR_DEPEND(chm, 0)], - [], - [DX_ENV_APPEND(GENERATE_HTML, YES)], - [DX_TEST_FEATURE(chm) || DX_ENV_APPEND(GENERATE_HTML, NO)]) - -# PostScript file generation: -DX_ARG_ABLE(ps, [generate doxygen PostScript documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [DX_REQUIRE_PROG([DX_LATEX], latex) - DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) - DX_REQUIRE_PROG([DX_DVIPS], dvips) - DX_REQUIRE_PROG([DX_EGREP], egrep)]) - -# PDF file generation: -DX_ARG_ABLE(pdf, [generate doxygen PDF documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [DX_REQUIRE_PROG([DX_PDFLATEX], pdflatex) - DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) - DX_REQUIRE_PROG([DX_EGREP], egrep)]) - -# LaTeX generation for PS and/or PDF: -AM_CONDITIONAL(DX_COND_latex, DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf)) -if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then - DX_ENV_APPEND(GENERATE_LATEX, YES) -else - DX_ENV_APPEND(GENERATE_LATEX, NO) -fi - -# Paper size for PS and/or PDF: -AC_ARG_VAR(DOXYGEN_PAPER_SIZE, - [a4wide (default), a4, letter, legal or executive]) -case "$DOXYGEN_PAPER_SIZE" in -#( -"") - AC_SUBST(DOXYGEN_PAPER_SIZE, "") -;; #( -a4wide|a4|letter|legal|executive) - DX_ENV_APPEND(PAPER_SIZE, $DOXYGEN_PAPER_SIZE) -;; #( -*) - AC_MSG_ERROR([unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE']) -;; -esac - -#For debugging: -#echo DX_FLAG_doc=$DX_FLAG_doc -#echo DX_FLAG_dot=$DX_FLAG_dot -#echo DX_FLAG_man=$DX_FLAG_man -#echo DX_FLAG_html=$DX_FLAG_html -#echo DX_FLAG_chm=$DX_FLAG_chm -#echo DX_FLAG_chi=$DX_FLAG_chi -#echo DX_FLAG_rtf=$DX_FLAG_rtf -#echo DX_FLAG_xml=$DX_FLAG_xml -#echo DX_FLAG_pdf=$DX_FLAG_pdf -#echo DX_FLAG_ps=$DX_FLAG_ps -#echo DX_ENV=$DX_ENV -]) diff --git a/build/ax_valgrind_check.m4 b/build/ax_valgrind_check.m4 deleted file mode 100644 index cb3890ec..00000000 --- a/build/ax_valgrind_check.m4 +++ /dev/null @@ -1,236 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_VALGRIND_DFLT(memcheck|helgrind|drd|sgcheck, on|off) -# AX_VALGRIND_CHECK() -# -# DESCRIPTION -# -# AX_VALGRIND_CHECK checks whether Valgrind is present and, if so, allows -# running `make check` under a variety of Valgrind tools to check for -# memory and threading errors. -# -# Defines VALGRIND_CHECK_RULES which should be substituted in your -# Makefile; and $enable_valgrind which can be used in subsequent configure -# output. VALGRIND_ENABLED is defined and substituted, and corresponds to -# the value of the --enable-valgrind option, which defaults to being -# enabled if Valgrind is installed and disabled otherwise. Individual -# Valgrind tools can be disabled via --disable-valgrind-, the -# default is configurable via the AX_VALGRIND_DFLT command or is to use -# all commands not disabled via AX_VALGRIND_DFLT. All AX_VALGRIND_DFLT -# calls must be made before the call to AX_VALGRIND_CHECK. -# -# If unit tests are written using a shell script and automake's -# LOG_COMPILER system, the $(VALGRIND) variable can be used within the -# shell scripts to enable Valgrind, as described here: -# -# https://www.gnu.org/software/gnulib/manual/html_node/Running-self_002dtests-under-valgrind.html -# -# Usage example: -# -# configure.ac: -# -# AX_VALGRIND_DFLT([sgcheck], [off]) -# AX_VALGRIND_CHECK -# -# Makefile.am: -# -# @VALGRIND_CHECK_RULES@ -# VALGRIND_SUPPRESSIONS_FILES = my-project.supp -# EXTRA_DIST = my-project.supp -# -# This results in a "check-valgrind" rule being added to any Makefile.am -# which includes "@VALGRIND_CHECK_RULES@" (assuming the module has been -# configured with --enable-valgrind). Running `make check-valgrind` in -# that directory will run the module's test suite (`make check`) once for -# each of the available Valgrind tools (out of memcheck, helgrind and drd) -# while the sgcheck will be skipped unless enabled again on the -# commandline with --enable-valgrind-sgcheck. The results for each check -# will be output to test-suite-$toolname.log. The target will succeed if -# there are zero errors and fail otherwise. -# -# Alternatively, a "check-valgrind-$TOOL" rule will be added, for $TOOL in -# memcheck, helgrind, drd and sgcheck. These are useful because often only -# some of those tools can be ran cleanly on a codebase. -# -# The macro supports running with and without libtool. -# -# LICENSE -# -# Copyright (c) 2014, 2015, 2016 Philip Withnall -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 13 - -dnl Configured tools -m4_define([valgrind_tool_list], [[memcheck], [helgrind], [drd], [sgcheck]]) -m4_set_add_all([valgrind_exp_tool_set], [sgcheck]) -m4_foreach([vgtool], [valgrind_tool_list], - [m4_define([en_dflt_valgrind_]vgtool, [on])]) - -AC_DEFUN([AX_VALGRIND_DFLT],[ - m4_define([en_dflt_valgrind_$1], [$2]) -])dnl - -AC_DEFUN([AX_VALGRIND_CHECK],[ - dnl Check for --enable-valgrind - AC_ARG_ENABLE([valgrind], - [AS_HELP_STRING([--enable-valgrind], [Whether to enable Valgrind on the unit tests])], - [enable_valgrind=$enableval],[enable_valgrind=]) - - AS_IF([test "$enable_valgrind" != "no"],[ - # Check for Valgrind. - AC_CHECK_PROG([VALGRIND],[valgrind],[valgrind]) - AS_IF([test "$VALGRIND" = ""],[ - AS_IF([test "$enable_valgrind" = "yes"],[ - AC_MSG_ERROR([Could not find valgrind; either install it or reconfigure with --disable-valgrind]) - ],[ - enable_valgrind=no - ]) - ],[ - enable_valgrind=yes - ]) - ]) - - AM_CONDITIONAL([VALGRIND_ENABLED],[test "$enable_valgrind" = "yes"]) - AC_SUBST([VALGRIND_ENABLED],[$enable_valgrind]) - - # Check for Valgrind tools we care about. - [valgrind_enabled_tools=] - m4_foreach([vgtool],[valgrind_tool_list],[ - AC_ARG_ENABLE([valgrind-]vgtool, - m4_if(m4_defn([en_dflt_valgrind_]vgtool),[off],dnl -[AS_HELP_STRING([--enable-valgrind-]vgtool, [Whether to use ]vgtool[ during the Valgrind tests])],dnl -[AS_HELP_STRING([--disable-valgrind-]vgtool, [Whether to skip ]vgtool[ during the Valgrind tests])]), - [enable_valgrind_]vgtool[=$enableval], - [enable_valgrind_]vgtool[=]) - AS_IF([test "$enable_valgrind" = "no"],[ - enable_valgrind_]vgtool[=no], - [test "$enable_valgrind_]vgtool[" ]dnl -m4_if(m4_defn([en_dflt_valgrind_]vgtool), [off], [= "yes"], [!= "no"]),[ - AC_CACHE_CHECK([for Valgrind tool ]vgtool, - [ax_cv_valgrind_tool_]vgtool,[ - ax_cv_valgrind_tool_]vgtool[=no - m4_set_contains([valgrind_exp_tool_set],vgtool, - [m4_define([vgtoolx],[exp-]vgtool)], - [m4_define([vgtoolx],vgtool)]) - AS_IF([`$VALGRIND --tool=]vgtoolx[ --help >/dev/null 2>&1`],[ - ax_cv_valgrind_tool_]vgtool[=yes - ]) - ]) - AS_IF([test "$ax_cv_valgrind_tool_]vgtool[" = "no"],[ - AS_IF([test "$enable_valgrind_]vgtool[" = "yes"],[ - AC_MSG_ERROR([Valgrind does not support ]vgtool[; reconfigure with --disable-valgrind-]vgtool) - ],[ - enable_valgrind_]vgtool[=no - ]) - ],[ - enable_valgrind_]vgtool[=yes - ]) - ]) - AS_IF([test "$enable_valgrind_]vgtool[" = "yes"],[ - valgrind_enabled_tools="$valgrind_enabled_tools ]m4_bpatsubst(vgtool,[^exp-])[" - ]) - AC_SUBST([ENABLE_VALGRIND_]vgtool,[$enable_valgrind_]vgtool) - ]) - AC_SUBST([valgrind_tools],["]m4_join([ ], valgrind_tool_list)["]) - AC_SUBST([valgrind_enabled_tools],[$valgrind_enabled_tools]) - -[VALGRIND_CHECK_RULES=' -# Valgrind check -# -# Optional: -# - VALGRIND_SUPPRESSIONS_FILES: Space-separated list of Valgrind suppressions -# files to load. (Default: empty) -# - VALGRIND_FLAGS: General flags to pass to all Valgrind tools. -# (Default: --num-callers=30) -# - VALGRIND_$toolname_FLAGS: Flags to pass to Valgrind $toolname (one of: -# memcheck, helgrind, drd, sgcheck). (Default: various) - -# Optional variables -VALGRIND_SUPPRESSIONS ?= $(addprefix --suppressions=,$(VALGRIND_SUPPRESSIONS_FILES)) -VALGRIND_FLAGS ?= --num-callers=30 -VALGRIND_memcheck_FLAGS ?= --leak-check=full --show-reachable=no -VALGRIND_helgrind_FLAGS ?= --history-level=approx -VALGRIND_drd_FLAGS ?= -VALGRIND_sgcheck_FLAGS ?= - -# Internal use -valgrind_log_files = $(addprefix test-suite-,$(addsuffix .log,$(valgrind_tools))) - -valgrind_memcheck_flags = --tool=memcheck $(VALGRIND_memcheck_FLAGS) -valgrind_helgrind_flags = --tool=helgrind $(VALGRIND_helgrind_FLAGS) -valgrind_drd_flags = --tool=drd $(VALGRIND_drd_FLAGS) -valgrind_sgcheck_flags = --tool=exp-sgcheck $(VALGRIND_sgcheck_FLAGS) - -valgrind_quiet = $(valgrind_quiet_$(V)) -valgrind_quiet_ = $(valgrind_quiet_$(AM_DEFAULT_VERBOSITY)) -valgrind_quiet_0 = --quiet -valgrind_v_use = $(valgrind_v_use_$(V)) -valgrind_v_use_ = $(valgrind_v_use_$(AM_DEFAULT_VERBOSITY)) -valgrind_v_use_0 = @echo " USE " $(patsubst check-valgrind-%,%,$''@):; - -# Support running with and without libtool. -ifneq ($(LIBTOOL),) -valgrind_lt = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=execute -else -valgrind_lt = -endif - -# Use recursive makes in order to ignore errors during check -check-valgrind: -ifeq ($(VALGRIND_ENABLED),yes) - -$(A''M_V_at)$(foreach tool,$(valgrind_enabled_tools), \ - $(MAKE) $(AM_MAKEFLAGS) -k check-valgrind-$(tool); \ - ) -else - @echo "Need to reconfigure with --enable-valgrind" -endif - -# Valgrind running -VALGRIND_TESTS_ENVIRONMENT = \ - $(TESTS_ENVIRONMENT) \ - env VALGRIND=$(VALGRIND) \ - G_SLICE=always-malloc,debug-blocks \ - G_DEBUG=fatal-warnings,fatal-criticals,gc-friendly - -VALGRIND_LOG_COMPILER = test/test-suite.sh $(VALGRIND_SUPPRESSIONS) $(VALGRIND_FLAGS) -# $(valgrind_lt) \ -# $(VALGRIND) $(VALGRIND_SUPPRESSIONS) --error-exitcode=1 $(VALGRIND_FLAGS) - -define valgrind_tool_rule = -check-valgrind-$(1): -ifeq ($$(VALGRIND_ENABLED)-$$(ENABLE_VALGRIND_$(1)),yes-yes) - $$(valgrind_v_use)$$(MAKE) check-TESTS \ - TESTS_ENVIRONMENT="$$(VALGRIND_TESTS_ENVIRONMENT)" \ - LOG_COMPILER="$$(VALGRIND_LOG_COMPILER)" \ - LOG_FLAGS="$$(valgrind_$(1)_flags)" \ - TEST_SUITE_LOG=test-suite-$(1).log -else ifeq ($$(VALGRIND_ENABLED),yes) - @echo "Need to reconfigure with --enable-valgrind-$(1)" -else - @echo "Need to reconfigure with --enable-valgrind" -endif -endef - -$(foreach tool,$(valgrind_tools),$(eval $(call valgrind_tool_rule,$(tool)))) - -A''M_DISTCHECK_CONFIGURE_FLAGS ?= -A''M_DISTCHECK_CONFIGURE_FLAGS += --disable-valgrind - -MOSTLYCLEANFILES ?= -MOSTLYCLEANFILES += $(valgrind_log_files) - -.PHONY: check-valgrind $(add-prefix check-valgrind-,$(valgrind_tools)) -'] - - AC_SUBST([VALGRIND_CHECK_RULES]) - m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([VALGRIND_CHECK_RULES])]) -]) diff --git a/build/curl.m4 b/build/curl.m4 deleted file mode 100644 index 7397a221..00000000 --- a/build/curl.m4 +++ /dev/null @@ -1,131 +0,0 @@ -dnl Check for CURL Libraries -dnl CHECK_CURL(ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) -dnl Sets: -dnl CURL_CFLAGS -dnl CURL_LIBS - -CURL_CONFIG="" -CURL_VERSION="" -CURL_CPPFLAGS="" -CURL_CFLAGS="" -CURL_LDFLAGS="" -CURL_LDADD="" -CURL_MIN_VERSION="7.15.1" - -AC_DEFUN([CHECK_CURL], [ - - -AC_ARG_WITH( - curl, - [AC_HELP_STRING([--with-curl=PATH],[Path to curl prefix or config script])], - [test_paths="${with_curl}"], - [test_paths="/usr/local/libcurl /usr/local/curl /usr/local /opt/libcurl /opt/curl /opt /usr"]) - -AC_MSG_CHECKING([for libcurl config script]) - -for x in ${test_paths}; do - dnl # Determine if the script was specified and use it directly - if test ! -d "$x" -a -e "$x"; then - CURL_CONFIG=$x - curl_path="no" - break - fi - - dnl # Try known config script names/locations - for CURL_CONFIG in curl-config; do - if test -e "${x}/bin/${CURL_CONFIG}"; then - curl_path="${x}/bin" - break - elif test -e "${x}/${CURL_CONFIG}"; then - curl_path="${x}" - break - else - curl_path="" - fi - done - if test -n "$curl_path"; then - break - fi -done - -if test -n "${curl_path}"; then - if test "${curl_path}" != "no"; then - CURL_CONFIG="${curl_path}/${CURL_CONFIG}" - fi - AC_MSG_RESULT([${CURL_CONFIG}]) - CURL_VERSION=`${CURL_CONFIG} --version | sed 's/^[[^0-9]][[^[:space:]]][[^[:space:]]]*[[[:space:]]]*//'` - if test ! -z "${CURL_VERSION}"; then AC_MSG_NOTICE(curl VERSION: $CURL_VERSION); fi - CURL_CFLAGS="`${CURL_CONFIG} --cflags`" - if test ! -z "${CURL_CFLAGS}"; then AC_MSG_NOTICE(curl CFLAGS: $CURL_CFLAGS); fi - CURL_LDADD="`${CURL_CONFIG} --libs`" - if test ! -z "${CURL_CONFIG}"; then AC_MSG_NOTICE(curl LDADD: $CURL_LIBS); fi - - dnl # Check version is ok - AC_MSG_CHECKING([if libcurl is at least v${CURL_MIN_VERSION}]) - curl_min_ver=`echo ${CURL_MIN_VERSION} | awk -F. '{print (\$ 1 * 1000000) + (\$ 2 * 1000) + \$ 3}'` - curl_ver=`echo ${CURL_VERSION} | awk -F. '{print (\$ 1 * 1000000) + (\$ 2 * 1000) + \$ 3}'` - if test "$curl_min_ver" -le "$curl_ver"; then - AC_MSG_RESULT([yes, $CURL_VERSION]) - curl_tlsv2_ver=`echo 7.34.0 | awk -F. '{print (\$ 1 * 1000000) + (\$ 2 * 1000) + \$ 3}'` - if test "$curl_tlsv2_ver" -le "$curl_ver"; then - CURL_CFLAGS="${CURL_CFLAGS} -DWITH_CURL_SSLVERSION_TLSv1_2" - fi - CURL_CFLAGS="${CURL_CFLAGS} -DWITH_CURL" - else - AC_MSG_RESULT([no, $CURL_VERSION]) - AC_MSG_NOTICE([NOTE: curl library may be too old]) - fi - - dnl # Check/warn if GnuTLS is used - AC_MSG_CHECKING([if libcurl is linked with gnutls]) - curl_uses_gnutls=`echo ${CURL_LIBS} | grep gnutls | wc -l` - if test "$curl_uses_gnutls" -ne 0; then - AC_MSG_RESULT([yes]) - AC_MSG_NOTICE([NOTE: curl linked with gnutls may be buggy, openssl recommended]) - CURL_USES_GNUTLS=yes - else - AC_MSG_RESULT([no]) - CURL_USES_GNUTLS=no - fi - -else - AC_MSG_RESULT([no]) -fi - -AC_SUBST(CURL_CONFIG) -AC_SUBST(CURL_VERSION) -AC_SUBST(CURL_CPPFLAGS) -AC_SUBST(CURL_CFLAGS) -AC_SUBST(CURL_LDFLAGS) -AC_SUBST(CURL_LDADD) -AC_SUBST(CURL_USES_GNUTLS) - -if test "x${with_curl}" == "xno"; then - CURL_DISABLED=yes -else - if test "x${with_curl}" != "x"; then - CURL_MANDATORY=yes - fi -fi - -if test -z "${CURL_VERSION}"; then - AC_MSG_NOTICE([*** curl library not found.]) - if test -z "${CURL_MANDATORY}"; then - if test -z "${CURL_DISABLED}"; then - CURL_FOUND=0 - else - CURL_FOUND=2 - fi - else - AC_MSG_ERROR([Curl was explicitly referenced but it was not found]) - CURL_FOUND=-1 - fi -else - CURL_FOUND=1 - AC_MSG_NOTICE([using curl v${CURL_VERSION}]) - CURL_DISPLAY="${CURL_LDADD}, ${CURL_CFLAGS}" -fi - -AC_SUBST(CURL_FOUND) -AC_SUBST(CURL_DISPLAY) -]) diff --git a/build/libgeoip.m4 b/build/libgeoip.m4 deleted file mode 100644 index 74fb076d..00000000 --- a/build/libgeoip.m4 +++ /dev/null @@ -1,191 +0,0 @@ -dnl Check for GEOIP Libraries -dnl CHECK_GEOIP(ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) -dnl Sets: -dnl GEOIP_CFLAGS -dnl GEOIP_LDADD -dnl GEOIP_LDFLAGS -dnl GEOIP_LIBS -dnl GEOIP_VERSION - -AC_DEFUN([PROG_GEOIP], [ - - -# Needed if pkg-config will be used. -AC_REQUIRE([PKG_PROG_PKG_CONFIG]) - - -# Possible names for the geoip library/package (pkg-config) -GEOIP_POSSIBLE_LIB_NAMES="geoip2 geoip GeoIP" - -# Possible extensions for the library -GEOIP_POSSIBLE_EXTENSIONS="so la sl dll dylib" - -# Possible paths (if pkg-config was not found, proceed with the file lookup) -GEOIP_POSSIBLE_PATHS="/usr/local/libgeoip /usr/local/geoip /usr/local /opt/libgeoip /opt/geoip /opt /usr /opt/local/include /opt/local /usr/lib /usr/local/lib /usr/lib64 /usr" - -# Variables to be set by this very own script. -GEOIP_VERSION="" -GEOIP_CFLAGS="" -GEOIP_CPPFLAGS="" -GEOIP_LDADD="" -GEOIP_LDFLAGS="" - -AC_ARG_WITH( - geoip, - AS_HELP_STRING( - [--with-geoip=PATH], - [Path to GeoIP (including headers). Use 'no' to disable GeoIP support.] - ) -) - -# AS_HELP_STRING( -# [--without-geoip], -# [Complete dsiables GeoIP support] -# ) - - -if test "x${with_geoip}" == "xno"; then - AC_DEFINE(HAVE_GEOIP, 0, [Support for GeoIP was disabled by the utilization of --without-geoip or --with-geoip=no]) - AC_MSG_NOTICE([Support for GeoIP was disabled by the utilization of --without-geoip or --with-geoip=no]) - GEOIP_DISABLED=yes -else - if test "x${with_geoip}" == "xyes"; then - GEOIP_MANDATORY=yes - AC_MSG_NOTICE([GeoIP support was marked as mandatory by the utilization of --with-geoip=yes]) - fi -# for x in ${GEOIP_POSSIBLE_LIB_NAMES}; do -# CHECK_FOR_GEOIP_AT(${x}) -# if test -n "${GEOIP_VERSION}"; then -# break -# fi -# done - -# if test "x${with_geoip}" != "xyes" or test "x${with_geoip}" == "xyes"; then - if test "x${with_geoip}" == "x" || test "x${with_geoip}" == "xyes"; then - # Nothing about GeoIP was informed, using the pkg-config to figure things out. - if test -n "${PKG_CONFIG}"; then - GEOIP_PKG_NAME="" - for x in ${GEOIP_POSSIBLE_LIB_NAMES}; do - if ${PKG_CONFIG} --exists ${x}; then - GEOIP_PKG_NAME="$x" - break - fi - done - fi - AC_MSG_NOTICE([Nothing about GeoIP was informed during the configure phase. Trying to detect it on the platform...]) - if test -n "${GEOIP_PKG_NAME}"; then - # Package was found using the pkg-config scripts - GEOIP_VERSION="`${PKG_CONFIG} ${GEOIP_PKG_NAME} --modversion`" - GEOIP_CFLAGS="`${PKG_CONFIG} ${GEOIP_PKG_NAME} --cflags`" - GEOIP_LDADD="`${PKG_CONFIG} ${GEOIP_PKG_NAME} --libs-only-l`" - GEOIP_LDFLAGS="`${PKG_CONFIG} ${GEOIP_PKG_NAME} --libs-only-L --libs-only-other`" - GEOIP_DISPLAY="${GEOIP_LDADD}, ${GEOIP_CFLAGS}" - else - # If pkg-config did not find anything useful, go over file lookup. - for x in ${GEOIP_POSSIBLE_PATHS}; do - CHECK_FOR_GEOIP_AT(${x}) - if test -n "${GEOIP_VERSION}"; then - break - fi - done - fi - fi - if test "x${with_geoip}" != "x"; then - # An specific path was informed, lets check. - GEOIP_MANDATORY=yes - CHECK_FOR_GEOIP_AT(${with_geoip}) - fi -# fi -fi - -if test -z "${GEOIP_CFLAGS}"; then - if test -z "${GEOIP_MANDATORY}"; then - if test -z "${GEOIP_DISABLED}"; then - AC_MSG_NOTICE([GeoIP library was not found]) - GEOIP_FOUND=0 - else - GEOIP_FOUND=2 - fi - else - AC_MSG_ERROR([GeoIP was explicit requested but it was not found]) - GEOIP_FOUND=-1 - fi -else - GEOIP_FOUND=1 - AC_MSG_NOTICE([using GeoIP v${GEOIP_VERSION}]) - GEOIP_CFLAGS="-DWITH_GEOIP ${GEOIP_CFLAGS}" - AC_SUBST(GEOIP_VERSION) - AC_SUBST(GEOIP_LDADD) - AC_SUBST(GEOIP_LIBS) - AC_SUBST(GEOIP_LDFLAGS) - AC_SUBST(GEOIP_CFLAGS) - AC_SUBST(GEOIP_DISPLAY) -fi - - - -AC_SUBST(GEOIP_FOUND) - -]) # AC_DEFUN [PROG_GEOIP] - - -AC_DEFUN([CHECK_FOR_GEOIP_AT], [ - path=$1 - for y in ${GEOIP_POSSIBLE_EXTENSIONS}; do - for z in ${GEOIP_POSSIBLE_LIB_NAMES}; do - if test -e "${path}/${z}.${y}"; then - geoip_lib_path="${path}/" - geoip_lib_name="${z}" - geoip_lib_file="${geoip_lib_path}/${z}.${y}" - break - fi - if test -e "${path}/lib${z}.${y}"; then - geoip_lib_path="${path}/" - geoip_lib_name="${z}" - geoip_lib_file="${geoip_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/lib${z}.${y}"; then - geoip_lib_path="${path}/lib/" - geoip_lib_name="${z}" - geoip_lib_file="${geoip_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib64/lib${z}.${y}"; then - geoip_lib_path="${path}/lib64/" - geoip_lib_name="${z}" - geoip_lib_file="${geoip_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/x86_64-linux-gnu/lib${z}.${y}"; then - geoip_lib_path="${path}/lib/x86_64-linux-gnu/" - geoip_lib_name="${z}" - geoip_lib_file="${geoip_lib_path}/lib${z}.${y}" - break - fi - done - if test -n "$geoip_lib_path"; then - break - fi - done - if test -e "${path}/include/GeoIPCity.h"; then - geoip_inc_path="${path}/include" - elif test -e "${path}/GeoIPCity.h"; then - geoip_inc_path="${path}" - fi - - - if test -n "${geoip_inc_path}" -a -n "${geoip_lib_path}"; then - - AC_MSG_NOTICE([GeoIP headers found at: ${geoip_inc_path}]) - AC_MSG_NOTICE([GeoIP library found at: ${geoip_lib_file}]) - fi - - if test -n "${geoip_lib_path}" -a -n "${geoip_inc_path}"; then - # TODO: Compile a piece of code to check the version. - GEOIP_CFLAGS="-I${geoip_inc_path}" - GEOIP_LDADD="-l${geoip_lib_name}" - GEOIP_LDFLAGS="-L${geoip_lib_path}" - GEOIP_DISPLAY="${geoip_lib_file}, ${geoip_inc_path}" - fi -]) # AC_DEFUN [CHECK_FOR_GEOIP_AT] diff --git a/build/libmaxmind.m4 b/build/libmaxmind.m4 deleted file mode 100644 index 49dc7a5d..00000000 --- a/build/libmaxmind.m4 +++ /dev/null @@ -1,194 +0,0 @@ -dnl Check for MAXMIND Libraries -dnl CHECK_MAXMIND(ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) -dnl Sets: -dnl MAXMIND_CFLAGS -dnl MAXMIND_LDADD -dnl MAXMIND_LDFLAGS -dnl MAXMIND_LIBS -dnl MAXMIND_VERSION - -AC_DEFUN([PROG_MAXMIND], [ - - -# Needed if pkg-config will be used. -AC_REQUIRE([PKG_PROG_PKG_CONFIG]) - - -# Possible names for the maxmind library/package (pkg-config) -MAXMIND_POSSIBLE_LIB_NAMES="libmaxminddb maxminddb maxmind" - -# Possible extensions for the library -MAXMIND_POSSIBLE_EXTENSIONS="so la sl dll dylib" - -# Possible paths (if pkg-config was not found, proceed with the file lookup) -MAXMIND_POSSIBLE_PATHS="/usr/local/libmaxmind /usr/local/maxmind /usr/local /opt/libmaxmind /opt/maxmind /opt /usr /opt/local/include /opt/local /usr/lib /usr/local/lib /usr/lib64 /usr" - -# Variables to be set by this very own script. -MAXMIND_VERSION="" -MAXMIND_CFLAGS="" -MAXMIND_CPPFLAGS="" -MAXMIND_LDADD="" -MAXMIND_LDFLAGS="" - -AC_ARG_WITH( - maxmind, - AS_HELP_STRING( - [--with-maxmind=PATH], - [Path to MaxMind (including headers). Use 'no' to disable MaxMind support.] - ) -) - -# AS_HELP_STRING( -# [--without-maxmind], -# [Complete dsiables MaxMind support] -# ) - - -if test "x${with_maxmind}" == "xno"; then - AC_DEFINE(HAVE_MAXMIND, 0, [Support for MaxMind was disabled by the utilization of --without-maxmind or --with-maxmind=no]) - AC_MSG_NOTICE([Support for MaxMind was disabled by the utilization of --without-maxmind or --with-maxmind=no]) - MAXMIND_DISABLED=yes -else - if test "x${with_maxmind}" == "xyes"; then - MAXMIND_MANDATORY=yes - AC_MSG_NOTICE([MaxMind support was marked as mandatory by the utilization of --with-maxmind=yes]) - fi -# for x in ${MAXMIND_POSSIBLE_LIB_NAMES}; do -# CHECK_FOR_MAXMIND_AT(${x}) -# if test -n "${MAXMIND_VERSION}"; then -# break -# fi -# done - -# if test "x${with_maxmind}" != "xyes" or test "x${with_maxmind}" == "xyes"; then - if test "x${with_maxmind}" == "x" || test "x${with_maxmind}" == "xyes"; then - # Nothing about MaxMind was informed, using the pkg-config to figure things out. - if test -n "${PKG_CONFIG}"; then - MAXMIND_PKG_NAME="" - for x in ${MAXMIND_POSSIBLE_LIB_NAMES}; do - if ${PKG_CONFIG} --exists ${x}; then - MAXMIND_PKG_NAME="$x" - break - fi - done - fi - AC_MSG_NOTICE([Nothing about MaxMind was informed during the configure phase. Trying to detect it on the platform...]) - if test -n "${MAXMIND_PKG_NAME}"; then - # Package was found using the pkg-config scripts - MAXMIND_VERSION="`${PKG_CONFIG} ${MAXMIND_PKG_NAME} --modversion`" - MAXMIND_CFLAGS="`${PKG_CONFIG} ${MAXMIND_PKG_NAME} --cflags`" - MAXMIND_LDADD="`${PKG_CONFIG} ${MAXMIND_PKG_NAME} --libs-only-l`" - MAXMIND_LDFLAGS="`${PKG_CONFIG} ${MAXMIND_PKG_NAME} --libs-only-L --libs-only-other`" - MAXMIND_DISPLAY="${MAXMIND_LDADD}" - else - # If pkg-config did not find anything useful, go over file lookup. - for x in ${MAXMIND_POSSIBLE_PATHS}; do - CHECK_FOR_MAXMIND_AT(${x}) - if test -n "${MAXMIND_VERSION}"; then - break - fi - done - fi - fi - if test "x${with_maxmind}" != "x"; then - # An specific path was informed, lets check. - MAXMIND_MANDATORY=yes - CHECK_FOR_MAXMIND_AT(${with_maxmind}) - fi -# fi -fi - -if test -z "${MAXMIND_DISPLAY}"; then - if test -z "${MAXMIND_MANDATORY}"; then - if test -z "${MAXMIND_DISABLED}"; then - AC_MSG_NOTICE([MaxMind library was not found]) - MAXMIND_FOUND=0 - else - MAXMIND_FOUND=2 - fi - else - AC_MSG_ERROR([MaxMind was explicit requested but it was not found]) - MAXMIND_FOUND=-1 - fi -else - MAXMIND_FOUND=1 - AC_MSG_NOTICE([using MaxMind v${MAXMIND_VERSION}]) - MAXMIND_CFLAGS="-DWITH_MAXMIND ${MAXMIND_CFLAGS}" - if ! test "x$MAXMIND_CFLAGS" = "x"; then - MAXMIND_DISPLAY="${MAXMIND_DISPLAY}, ${MAXMIND_CFLAGS}" - fi - AC_SUBST(MAXMIND_VERSION) - AC_SUBST(MAXMIND_LDADD) - AC_SUBST(MAXMIND_LIBS) - AC_SUBST(MAXMIND_LDFLAGS) - AC_SUBST(MAXMIND_CFLAGS) - AC_SUBST(MAXMIND_DISPLAY) -fi - - - -AC_SUBST(MAXMIND_FOUND) - -]) # AC_DEFUN [PROG_MAXMIND] - - -AC_DEFUN([CHECK_FOR_MAXMIND_AT], [ - path=$1 - for y in ${MAXMIND_POSSIBLE_EXTENSIONS}; do - for z in ${MAXMIND_POSSIBLE_LIB_NAMES}; do - if test -e "${path}/${z}.${y}"; then - maxmind_lib_path="${path}/" - maxmind_lib_name="${z}" - maxmind_lib_file="${maxmind_lib_path}/${z}.${y}" - break - fi - if test -e "${path}/lib${z}.${y}"; then - maxmind_lib_path="${path}/" - maxmind_lib_name="${z}" - maxmind_lib_file="${maxmind_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/lib${z}.${y}"; then - maxmind_lib_path="${path}/lib/" - maxmind_lib_name="${z}" - maxmind_lib_file="${maxmind_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib64/lib${z}.${y}"; then - maxmind_lib_path="${path}/lib64/" - maxmind_lib_name="${z}" - maxmind_lib_file="${maxmind_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/x86_64-linux-gnu/lib${z}.${y}"; then - maxmind_lib_path="${path}/lib/x86_64-linux-gnu/" - maxmind_lib_name="${z}" - maxmind_lib_file="${maxmind_lib_path}/lib${z}.${y}" - break - fi - done - if test -n "$maxmind_lib_path"; then - break - fi - done - if test -e "${path}/include/maxminddb.h"; then - maxmind_inc_path="${path}/include" - elif test -e "${path}/maxminddb.h"; then - maxmind_inc_path="${path}" - fi - - - if test -n "${maxmind_inc_path}" -a -n "${maxmind_lib_path}"; then - - AC_MSG_NOTICE([MaxMind headers found at: ${maxmind_inc_path}]) - AC_MSG_NOTICE([MaxMind library found at: ${maxmind_lib_file}]) - fi - - if test -n "${maxmind_lib_path}" -a -n "${maxmind_inc_path}"; then - # TODO: Compile a piece of code to check the version. - MAXMIND_CFLAGS="-I${maxmind_inc_path}" - MAXMIND_LDADD="-l${maxmind_lib_name}" - MAXMIND_LDFLAGS="-L${maxmind_lib_path}" - MAXMIND_DISPLAY="${maxmind_lib_file}, ${maxmind_inc_path}" - fi -]) # AC_DEFUN [CHECK_FOR_MAXMIND_AT] diff --git a/build/libxml.m4 b/build/libxml.m4 deleted file mode 100644 index ba8c50ac..00000000 --- a/build/libxml.m4 +++ /dev/null @@ -1,111 +0,0 @@ -dnl Check for LIBXML2 Libraries -dnl CHECK_LIBXML2(ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) -dnl Sets: -dnl LIBXML2_CFLAGS -dnl LIBXML2_LIBS - -LIBXML2_CONFIG="" -LIBXML2_VERSION="" -LIBXML2_CFLAGS="" -LIBXML2_CPPFLAGS="" -LIBXML2_LDADD="" -LIBXML2_LDFLAGS="" - -AC_DEFUN([CHECK_LIBXML2], [ - -AC_ARG_WITH( - libxml, - [AC_HELP_STRING([--with-libxml=PATH],[Path to libxml2 prefix or config script])], - [test_paths="${with_libxml}"], - [test_paths="/usr/local/libxml2 /usr/local/xml2 /usr/local/xml /usr/local /opt/libxml2 /opt/libxml /opt/xml2 /opt/xml /opt /usr"]) - -AC_MSG_CHECKING([for libxml2 config script]) - -for x in ${test_paths}; do - dnl # Determine if the script was specified and use it directly - if test ! -d "$x" -a -e "$x"; then - LIBXML2_CONFIG=$x - libxml2_path="no" - break - fi - - dnl # Try known config script names/locations - for LIBXML2_CONFIG in xml2-config xml-2-config xml-config; do - if test -e "${x}/bin/${LIBXML2_CONFIG}"; then - libxml2_path="${x}/bin" - break - elif test -e "${x}/${LIBXML2_CONFIG}"; then - libxml2_path="${x}" - break - else - libxml2_path="" - fi - done - if test -n "$libxml2_path"; then - break - fi -done - -if test -n "${libxml2_path}"; then - if test "${libxml2_path}" != "no"; then - LIBXML2_CONFIG="${libxml2_path}/${LIBXML2_CONFIG}" - fi - AC_MSG_RESULT([${LIBXML2_CONFIG}]) - LIBXML2_VERSION=`${LIBXML2_CONFIG} --version | sed 's/^[[^0-9]][[^[:space:]]][[^[:space:]]]*[[[:space:]]]*//'` - if test ! -z "${LIBXML2_VERSION}"; then AC_MSG_NOTICE(xml VERSION: $LIBXML2_VERSION); fi - LIBXML2_CFLAGS="`${LIBXML2_CONFIG} --cflags` -DWITH_LIBXML2" - if test ! -z "${LIBXML2_CFLAGS}"; then AC_MSG_NOTICE(xml CFLAGS: $LIBXML2_CFLAGS); fi - LIBXML2_LDADD="`${LIBXML2_CONFIG} --libs`" - if test ! -z "${LIBXML2_LDADD}"; then AC_MSG_NOTICE(xml LDADD: $LIBXML2_LDADD); fi - - AC_MSG_CHECKING([if libxml2 is at least v2.6.29]) - libxml2_min_ver=`echo 2.6.29 | awk -F. '{print (\$ 1 * 1000000) + (\$ 2 * 1000) + \$ 3}'` - libxml2_ver=`echo ${LIBXML2_VERSION} | awk -F. '{print (\$ 1 * 1000000) + (\$ 2 * 1000) + \$ 3}'` - if test "$libxml2_ver" -ge "$libxml2_min_ver"; then - AC_MSG_RESULT([yes, $LIBXML2_VERSION]) - else - AC_MSG_RESULT([no, $LIBXML2_VERSION]) - AC_MSG_ERROR([NOTE: libxml2 library must be at least 2.6.29]) - fi - -else - AC_MSG_RESULT([no]) -fi - -AC_SUBST(LIBXML2_CONFIG) -AC_SUBST(LIBXML2_VERSION) -AC_SUBST(LIBXML2_CFLAGS) -AC_SUBST(LIBXML2_CPPFLAGS) -AC_SUBST(LIBXML2_LDADD) -AC_SUBST(LIBXML2_LDFLAGS) - - -if test "x${with_libxml}" == "xno"; then - LIBXML2_DISABLED=yes -else - if test "x${with_libxml}" != "x"; then - LIBXML2_MANDATORY=yes - fi -fi - -if test -z "${LIBXML2_VERSION}"; then - AC_MSG_NOTICE([*** libxml2 library not found.]) - if test -z "${LIBXML2_MANDATORY}"; then - if test -z "${LIBXML2_DISABLED}"; then - LIBXML2_FOUND=0 - else - LIBXML2_FOUND=2 - fi - else - AC_MSG_ERROR([Libxml2 was explicitly referenced but it was not found]) - LIBXML2_FOUND=-1 - fi -else - LIBXML2_FOUND=1 - AC_MSG_NOTICE([using libxml2 v${LIBXML2_VERSION}]) - LIBXML2_DISPLAY="${LIBXML2_LDADD}, ${LIBXML2_CFLAGS}" -fi - -AC_SUBST(LIBXML2_FOUND) -AC_SUBST(LIBXML2_DISPLAY) -]) diff --git a/build/lmdb.m4 b/build/lmdb.m4 deleted file mode 100644 index f413226c..00000000 --- a/build/lmdb.m4 +++ /dev/null @@ -1,187 +0,0 @@ -dnl Check for LMDB Libraries -dnl CHECK_LMDB(ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) - -AC_DEFUN([PROG_LMDB], [ - -# Needed if pkg-config will be used.LMDB -AC_REQUIRE([PKG_PROG_PKG_CONFIG]) - - -# Possible names for the lmdb library/package (pkg-config) -LMDB_POSSIBLE_LIB_NAMES="lmdb" - -# Possible extensions for the library -LMDB_POSSIBLE_EXTENSIONS="so so0 la sl dll dylib so.0.0.0" - -# Possible paths (if pkg-config was not found, proceed with the file lookup) -LMDB_POSSIBLE_PATHS="/usr/lib /usr/local/lib /usr/local/liblmdb /usr/local/lmdb /usr/local /opt/liblmdb /opt/lmdb /opt /usr /usr/lib64 /opt/local" - -# Variables to be set by this very own script. -LMDB_VERSION="" -LMDB_CFLAGS="" -LMDB_CPPFLAGS="" -LMDB_LDADD="" -LMDB_LDFLAGS="" - -AC_ARG_WITH( - lmdb, - AC_HELP_STRING( - [--with-lmdb=PATH], - [Path to lmdb prefix or config script] - ) -) - -if test "x${with_lmdb}" == "xno"; then - AC_DEFINE(HAVE_LMDB, 0, [Support for LMDB was disabled by the utilization of --without-lmdb or --with-lmdb=no]) - AC_MSG_NOTICE([Support for LMDB was disabled by the utilization of --without-lmdb or --with-lmdb=no]) - LMDB_DISABLED=yes -else - if test "x${with_lmdb}" == "xyes"; then - LMDB_MANDATORY=yes - AC_MSG_NOTICE([LMDB support was marked as mandatory by the utilization of --with-lmdb=yes]) - fi -# for x in ${LMDB_POSSIBLE_LIB_NAMES}; do -# CHECK_FOR_LMDB_AT(${x}) -# if test -n "${LMDB_VERSION}"; then -# break -# fi -# done - -# if test "x${with_lmdb}" != "xyes" or test "x${with_lmdb}" == "xyes"; then - if test "x${with_lmdb}" == "x" || test "x${with_lmdb}" == "xyes"; then - # Nothing about LMDB was informed, using the pkg-config to figure things out. - if test -n "${PKG_CONFIG}"; then - LMDB_PKG_NAME="" - for x in ${LMDB_POSSIBLE_LIB_NAMES}; do - if ${PKG_CONFIG} --exists ${x}; then - LMDB_PKG_NAME="$x" - break - fi - done - fi - AC_MSG_NOTICE([Nothing about LMDB was informed during the configure phase. Trying to detect it on the platform...]) - if test -n "${LMDB_PKG_NAME}"; then - # Package was found using the pkg-config scripts - LMDB_VERSION="`${PKG_CONFIG} ${LMDB_PKG_NAME} --modversion`" - LMDB_CFLAGS="`${PKG_CONFIG} ${LMDB_PKG_NAME} --cflags`" - LMDB_LDADD="`${PKG_CONFIG} ${LMDB_PKG_NAME} --libs-only-l`" - LMDB_LDFLAGS="`${PKG_CONFIG} ${LMDB_PKG_NAME} --libs-only-L --libs-only-other`" - LMDB_DISPLAY="${LMDB_LDADD}, ${LMDB_CFLAGS}" - else - # If pkg-config did not find anything useful, go over file lookup. - for x in ${LMDB_POSSIBLE_PATHS}; do - CHECK_FOR_LMDB_AT(${x}) - if test -n "${LMDB_VERSION}"; then - break - fi - done - fi - fi - if test "x${with_lmdb}" != "x"; then - # An specific path was informed, lets check. - LMDB_MANDATORY=yes - CHECK_FOR_LMDB_AT(${with_lmdb}) - fi -# fi -fi - -if test -z "${LMDB_LDADD}"; then - if test -z "${LMDB_MANDATORY}"; then - if test -z "${LMDB_DISABLED}"; then - AC_MSG_NOTICE([LMDB library was not found]) - LMDB_FOUND=0 - else - LMDB_FOUND=2 - fi - else - AC_MSG_ERROR([LMDB was explicitly referenced but it was not found]) - LMDB_FOUND=-1 - fi -else - if test -z "${LMDB_MANDATORY}"; then - LMDB_FOUND=2 - AC_MSG_NOTICE([LMDB is disabled by default.]) - else - LMDB_FOUND=1 - AC_MSG_NOTICE([using LMDB v${LMDB_VERSION}]) - LMDB_CFLAGS="-DWITH_LMDB ${LMDB_CFLAGS}" - LMDB_DISPLAY="${LMDB_LDADD}, ${LMDB_CFLAGS}" - AC_SUBST(LMDB_VERSION) - AC_SUBST(LMDB_LDADD) - AC_SUBST(LMDB_LIBS) - AC_SUBST(LMDB_LDFLAGS) - AC_SUBST(LMDB_CFLAGS) - AC_SUBST(LMDB_DISPLAY) - fi -fi - - -AC_SUBST(LMDB_FOUND) - -]) # AC_DEFUN [PROG_LMDB] - - -AC_DEFUN([CHECK_FOR_LMDB_AT], [ - path=$1 - echo "*** LOOKING AT PATH: " ${path} - for y in ${LMDB_POSSIBLE_EXTENSIONS}; do - for z in ${LMDB_POSSIBLE_LIB_NAMES}; do - if test -e "${path}/${z}.${y}"; then - lmdb_lib_path="${path}/" - lmdb_lib_name="${z}" - lmdb_lib_file="${lmdb_lib_path}/${z}.${y}" - break - fi - if test -e "${path}/lib${z}.${y}"; then - lmdb_lib_path="${path}/" - lmdb_lib_name="${z}" - lmdb_lib_file="${lmdb_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/lib${z}.${y}"; then - lmdb_lib_path="${path}/lib/" - lmdb_lib_name="${z}" - lmdb_lib_file="${lmdb_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/x86_64-linux-gnu/lib${z}.${y}"; then - lmdb_lib_path="${path}/lib/x86_64-linux-gnu/" - lmdb_lib_name="${z}" - lmdb_lib_file="${lmdb_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/i386-linux-gnu/lib${z}.${y}"; then - lmdb_lib_path="${path}/lib/i386-linux-gnu/" - lmdb_lib_name="${z}" - lmdb_lib_file="${lmdb_lib_path}/lib${z}.${y}" - break - fi - done - if test -n "$lmdb_lib_path"; then - break - fi - done - if test -e "${path}/include/lmdb.h"; then - lmdb_inc_path="${path}/include" - elif test -e "${path}/lmdb.h"; then - lmdb_inc_path="${path}" - elif test -e "${path}/include/lmdb/lmdb.h"; then - lmdb_inc_path="${path}/include" - fi - - if test -n "${lmdb_lib_path}"; then - AC_MSG_NOTICE([LMDB library found at: ${lmdb_lib_file}]) - fi - - if test -n "${lmdb_inc_path}"; then - AC_MSG_NOTICE([LMDB headers found at: ${lmdb_inc_path}]) - fi - - if test -n "${lmdb_lib_path}" -a -n "${lmdb_inc_path}"; then - # TODO: Compile a piece of code to check the version. - LMDB_CFLAGS="-I${lmdb_inc_path}" - LMDB_LDADD="-l${lmdb_lib_name}" - LMDB_LDFLAGS="-L${lmdb_lib_path}" - LMDB_DISPLAY="${lmdb_lib_file}, ${lmdb_inc_path}" - fi -]) # AC_DEFUN [CHECK_FOR_LMDB_AT] diff --git a/build/lua.m4 b/build/lua.m4 deleted file mode 100644 index b6b22dcf..00000000 --- a/build/lua.m4 +++ /dev/null @@ -1,240 +0,0 @@ -dnl Check for LUA Libraries -dnl CHECK_LUA(ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) - - -AC_DEFUN([CHECK_LUA], -[dnl - -# Possible names for the lua library/package (pkg-config) -LUA_POSSIBLE_LIB_NAMES="lua lua53 lua5.3 lua52 lua5.2" - -# Possible extensions for the library -LUA_POSSIBLE_EXTENSIONS="so so0 la sl dll dylib so.0.0.0" - -# Possible paths (if pkg-config was not found, proceed with the file lookup) -LUA_POSSIBLE_PATHS="/usr/lib /usr/local/lib /usr/local/lib64 /usr/local/lua /usr/local/liblua /usr/local /opt /usr /usr/lib64 /opt/local" - -# Variables to be set by this very own script. -LUA_CFLAGS="" -LUA_LDFLAGS="" -LUA_LDADD="" -LUA_DISPLAY="" - -AC_ARG_WITH( - lua, - AC_HELP_STRING( - [--with-lua=PATH], - [Path to lua prefix] - ) -) - - -if test "x${with_lua}" == "xno"; then - AC_DEFINE(HAVE_LUA, 0, [Support for LUA was disabled by the utilization of --without-lua or --with-lua=no]) - AC_MSG_NOTICE([Support for LUA was disabled by the utilization of --without-lua or --with-lua=no]) - LUA_DISABLED=yes -else - if test "x${with_lua}" == "xyes"; then - LUA_MANDATORY=yes - AC_MSG_NOTICE([LUA support was marked as mandatory by the utilization of --with-lua=yes]) - else - LUA_MANDATORY=no - fi - for x in ${LUA_POSSIBLE_PATHS}; do - CHECK_FOR_LUA_AT(${x}) - if test -n "${LUA_CFLAGS}"; then - break - fi - done - if test -z "${LUA_CFLAGS}"; then - #Trying to figure out the version using pkg-config... - if test -n "${PKG_CONFIG}"; then - LUA_PKG_NAME="" - for x in ${LUA_POSSIBLE_LIB_NAMES}; do - if ${PKG_CONFIG} --exists ${x}; then - LUA_PKG_NAME="$x" - LUA_PKG_VERSION="`${PKG_CONFIG} ${LUA_PKG_NAME} --modversion`" - break - fi - done - fi - if test -n "${LUA_PKG_NAME}"; then - # Package was found using the pkg-config scripts - LUA_PKG_VERSION="`${PKG_CONFIG} ${LUA_PKG_NAME} --modversion`" - LUA_CFLAGS="`${PKG_CONFIG} ${LUA_PKG_NAME} --cflags`" - LUA_LDADD="`${PKG_CONFIG} ${LUA_PKG_NAME} --libs-only-l`" - LUA_LDFLAGS="`${PKG_CONFIG} ${LUA_PKG_NAME} --libs-only-L --libs-only-other`" - LUA_DISPLAY="${LUA_LDADD}, ${LUA_CFLAGS}" - case $LUA_PKG_VERSION in - (5.1*) LUA_CFLAGS="-DWITH_LUA_5_1 ${LUA_CFLAGS}" ; lua_5_1=1 ;; - (5.2*) LUA_CFLAGS="-DWITH_LUA_5_2 ${LUA_CFLAGS}" ; lua_5_2=1 ;; - esac - AC_MSG_NOTICE([LUA pkg-config version: ${LUA_PKG_VERSION}]) - fi - fi -fi - - -if test -z "${LUA_CFLAGS}"; then - if test -z "${LUA_MANDATORY}" || test "x${LUA_MANDATORY}" == "xno"; then - if test -z "${LUA_DISABLED}"; then - AC_MSG_NOTICE([LUA library was not found]) - LUA_FOUND=0 - else - LUA_FOUND=2 - fi - else - AC_MSG_ERROR([LUA was explicitly referenced but it was not found]) - LUA_FOUND=-1 - fi -else - if test "${lua_5_1}" = 1 && test "x${LUA_MANDATORY}" == "xyes" ; then - AC_MSG_ERROR([LUA was explicitly referenced but LUA v5.1 was found and it is not currently supported on libModSecurity. LUA_VERSION: ${LUA_VERSION}]) - LUA_FOUND=-1 - fi - if test -z "${LUA_MANDATORY}" || test "x${LUA_MANDATORY}" == "xno"; then - LUA_FOUND=1 - AC_MSG_NOTICE([using LUA ${LUA_LDADD}]) - LUA_CFLAGS="-DWITH_LUA ${LUA_CFLAGS}" - LUA_DISPLAY="${LUA_LDADD} ${LUA_LDFLAGS}, ${LUA_CFLAGS}" - AC_SUBST(LUA_LDFLAGS) - AC_SUBST(LUA_LDADD) - AC_SUBST(LUA_CFLAGS) - AC_SUBST(LUA_DISPLAY) - else - LUA_FOUND=1 - AC_MSG_NOTICE([using LUA ${LUA_LDADD}]) - LUA_CFLAGS="-DWITH_LUA ${LUA_CFLAGS}" - LUA_DISPLAY="${LUA_LDADD} ${LUA_LDFLAGS}, ${LUA_CFLAGS}" - AC_SUBST(LUA_LDFLAGS) - AC_SUBST(LUA_LDADD) - AC_SUBST(LUA_CFLAGS) - AC_SUBST(LUA_DISPLAY) - fi -fi - -if test "${lua_5_1}" = 1 ; then - AC_MSG_NOTICE([LUA 5.1 was found and it is not currently supported on libModSecurity. LUA_VERSION: ${LUA_VERSION}. LUA build disabled.]) - LUA_FOUND=2 - LUA_CFLAGS= - LUA_DISPLAY= - LUA_LDADD= - LUA_LDFLAGS= -fi - -AC_SUBST(LUA_FOUND) - -]) # AC_DEFUN [CHECK_LUA] - - -AC_DEFUN([CHECK_FOR_LUA_AT], [ - path=$1 - echo "*** LOOKING AT PATH: " ${path} - for y in ${LUA_POSSIBLE_EXTENSIONS}; do - for z in ${LUA_POSSIBLE_LIB_NAMES}; do - if test -e "${path}/${z}.${y}"; then - lua_lib_path="${path}/" - lua_lib_name="${z}" - lua_lib_file="${lua_lib_path}/${z}.${y}" - break - fi - if test -e "${path}/lib${z}.${y}"; then - lua_lib_path="${path}/" - lua_lib_name="${z}" - lua_lib_file="${lua_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/lib${z}.${y}"; then - lua_lib_path="${path}/lib/" - lua_lib_name="${z}" - lua_lib_file="${lua_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/x86_64-linux-gnu/lib${z}.${y}"; then - lua_lib_path="${path}/lib/x86_64-linux-gnu/" - lua_lib_name="${z}" - lua_lib_file="${lua_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/i386-linux-gnu/lib${z}.${y}"; then - lua_lib_path="${path}/lib/i386-linux-gnu/" - lua_lib_name="${z}" - lua_lib_file="${lua_lib_path}/lib${z}.${y}" - break - fi - done - if test -n "$lua_lib_path"; then - break - fi - done - if test -e "${path}/include/lua.h"; then - lua_inc_path="${path}/include" - elif test -e "${path}/lua.h"; then - lua_inc_path="${path}" - elif test -e "${path}/include/lua/lua.h"; then - lua_inc_path="${path}/include/lua" - elif test -e "${path}/include/lua5.3/lua.h"; then - lua_inc_path="${path}/include/lua5.3" - LUA_VERSION=503 - elif test -e "${path}/include/lua5.2/lua.h"; then - lua_inc_path="${path}/include/lua5.2" - LUA_VERSION=502 - fi - - if test -n "${lua_lib_path}"; then - AC_MSG_NOTICE([LUA library found at: ${lua_lib_file}]) - fi - - if test -n "${lua_inc_path}"; then - AC_MSG_NOTICE([LUA headers found at: ${lua_inc_path}]) - fi - if test -n "${lua_lib_path}" -a -n "${lua_inc_path}"; then - LUA_CFLAGS="-I${lua_inc_path}" - LUA_LDADD="-l${lua_lib_name}" - LUA_LDFLAGS="-L${lua_lib_path}" - LUA_DISPLAY="${lua_lib_file}, ${lua_inc_path}" - - # Double checking version from lua.h... - AC_TRY_COMPILE([ #include > ], - [ #if (LUA_VERSION_NUM < 502) - return 0; - #else - #error Lua 5.1 not detected - #endif ], - [ LUA_VERSION=501 ], [ lua_5_1=0 ] - ) - - AC_TRY_COMPILE([ #include ], - [ #if (LUA_VERSION_NUM == 502) - return 0; - #else - #error Lua 5.2 not detected - #endif ], - [ LUA_VERSION=502 ], [ lua_5_2=0 ] - ) - - if test -z "${LUA_VERSION}" ; then - # As a last resort, try to find LUA version from $lua_inc_path - while read -r line - do - case "$line" in - (\#define\ LUA_VERSION_NUM*501*) LUA_VERSION=501 ;; - (\#define\ LUA_VERSION_NUM*502*) LUA_VERSION=501 ;; - (\#define\ LUA_VERSION_NUM*503*) LUA_VERSION=503 - esac - done <"${lua_inc_path}/lua.h" - AC_MSG_NOTICE([LUA_VERSION is ${LUA_VERSION} found at: ${lua_inc_path}]) - else - AC_MSG_NOTICE([LUA version from includes: ${LUA_VERSION}]) - fi - - case $LUA_VERSION in - (501) LUA_CFLAGS="-DWITH_LUA_5_1 ${LUA_CFLAGS}" ; lua_5_1=1 ;; - (502) LUA_CFLAGS="-DWITH_LUA_5_2 ${LUA_CFLAGS}" ; lua_5_2=1 ;; - esac - fi - -]) # AC_DEFUN [CHECK_FOR_LUA_AT] - - - diff --git a/build/pcre.m4 b/build/pcre.m4 deleted file mode 100644 index 0de3c9c9..00000000 --- a/build/pcre.m4 +++ /dev/null @@ -1,109 +0,0 @@ -dnl Check for PCRE Libraries -dnl CHECK_PCRE(ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) -dnl Sets: -dnl PCRE_CFLAGS -dnl PCRE_LIBS - -PCRE_CONFIG="" -PCRE_VERSION="" -PCRE_CPPFLAGS="" -PCRE_CFLAGS="" -PCRE_LDFLAGS="" -PCRE_LDADD="" -PCRE_LD_PATH="" - -AC_DEFUN([CHECK_PCRE], -[dnl - -AC_ARG_WITH( - pcre, - [AC_HELP_STRING([--with-pcre=PATH],[Path to pcre prefix or config script])], - [test_paths="${with_pcre}"], - [test_paths="/usr/local/libpcre /usr/local/pcre /usr/local /opt/libpcre /opt/pcre /opt /usr /opt/local"]) - -AC_MSG_CHECKING([for libpcre config script]) - -for x in ${test_paths}; do - dnl # Determine if the script was specified and use it directly - if test ! -d "$x" -a -e "$x"; then - PCRE_CONFIG=$x - pcre_path="no" - break - fi - - dnl # Try known config script names/locations - for PCRE_CONFIG in pcre-config; do - if test -e "${x}/bin/${PCRE_CONFIG}"; then - pcre_path="${x}/bin" - break - elif test -e "${x}/${PCRE_CONFIG}"; then - pcre_path="${x}" - break - else - pcre_path="" - fi - done - if test -n "$pcre_path"; then - break - fi -done - -if test -n "${pcre_path}"; then - if test "${pcre_path}" != "no"; then - PCRE_CONFIG="${pcre_path}/${PCRE_CONFIG}" - fi - AC_MSG_RESULT([${PCRE_CONFIG}]) - PCRE_VERSION="`${PCRE_CONFIG} --version`" - if test ! -z "${PCRE_VERSION}"; then AC_MSG_NOTICE(pcre VERSION: $PCRE_VERSION); fi - PCRE_CFLAGS="`${PCRE_CONFIG} --cflags`" - if test ! -z "${PCRE_CFLAGS}"; then AC_MSG_NOTICE(pcre CFLAGS: $PCRE_CFLAGS); fi - PCRE_LDADD="`${PCRE_CONFIG} --libs`" - if test ! -z "${PCRE_LDADD}"; then AC_MSG_NOTICE(pcre LDADD: $PCRE_LDADD); fi - PCRE_LD_PATH="/`${PCRE_CONFIG} --libs | cut -d'/' -f2,3,4,5,6 | cut -d ' ' -f1`" - if test ! -z "${PCRE_LD_PATH}"; then AC_MSG_NOTICE(pcre PCRE_LD_PATH: $PCRE_LD_PATH); fi -else - AC_MSG_RESULT([no]) -fi - -if test -n "${PCRE_VERSION}"; then - AC_MSG_CHECKING(for PCRE JIT) - save_CFLAGS=$CFLAGS - save_LDFLAGS=$LDFLAGS - CFLAGS="${PCRE_CFLAGS} ${CFLAGS}" - LDFLAGS="${LDFLAGS} ${PCRE_LDADD}" - AC_TRY_COMPILE([ #include - #include ], - [ int jit = 0; - pcre_free_study(NULL); - pcre_config(PCRE_CONFIG_JIT, &jit); - if (jit != 1) return 1; ], - [ pcre_jit_available=yes ], [:] - ) - - if test "x$pcre_jit_available" = "xyes"; then - AC_MSG_RESULT(yes) - PCRE_CFLAGS="${PCRE_CFLAGS} -DPCRE_HAVE_JIT" - else - AC_MSG_RESULT(no) - fi - CFLAGS=$save_CFLAGS - LDFLAGS=$save_$LDFLAGS -fi - -AC_SUBST(PCRE_CONFIG) -AC_SUBST(PCRE_VERSION) -AC_SUBST(PCRE_CPPFLAGS) -AC_SUBST(PCRE_CFLAGS) -AC_SUBST(PCRE_LDFLAGS) -AC_SUBST(PCRE_LDADD) -AC_SUBST(PCRE_LD_PATH) - -if test -z "${PCRE_VERSION}"; then - AC_MSG_NOTICE([*** pcre library not found.]) - ifelse([$2], , AC_MSG_ERROR([pcre library is required]), $2) -else - AC_MSG_NOTICE([using pcre v${PCRE_VERSION}]) - ifelse([$1], , , $1) - PCRE_LDADD="${PCRE_LDADD} -lpcre" -fi -]) diff --git a/build/release.sh b/build/release.sh deleted file mode 100755 index a182067b..00000000 --- a/build/release.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -git clean -xfdi -git submodule foreach --recursive git clean -xfdi - -VERSION=`git describe --tags` -DIR_NAME="modsecurity-$VERSION" -TAR_NAME="modsecurity-$VERSION.tar.gz" - -MY_DIR=${PWD##*/} -./build.sh - -cd .. -tar --transform "s/^$MY_DIR/$DIR_NAME/" -cvzf $TAR_NAME --exclude .git $MY_DIR - -sha256sum $TAR_NAME > $TAR_NAME.sha256 -gpg --detach-sign -a $TAR_NAME - -cd - -echo $TAR_NAME ": done." - diff --git a/build/ssdeep.m4 b/build/ssdeep.m4 deleted file mode 100644 index ec9747fb..00000000 --- a/build/ssdeep.m4 +++ /dev/null @@ -1,147 +0,0 @@ -dnl Check for SSDEEP Libraries -dnl CHECK_SSDEEP(ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) - - -AC_DEFUN([CHECK_SSDEEP], -[dnl - -# Possible names for the ssdeep library/package (pkg-config) -SSDEEP_POSSIBLE_LIB_NAMES="fuzzy" - -# Possible extensions for the library -SSDEEP_POSSIBLE_EXTENSIONS="so so0 la sl dll dylib so.0.0.0" - -# Possible paths (if pkg-config was not found, proceed with the file lookup) -SSDEEP_POSSIBLE_PATHS="/usr/lib /usr/local/lib /usr/local/fuzzy /usr/local/libfuzzy /usr/local /opt /usr /usr/lib64 /opt/local" - -# Variables to be set by this very own script. -SSDEEP_CFLAGS="" -SSDEEP_LDFLAGS="" -SSDEEP_LDADD="" -SSDEEP_DISPLAY="" - -AC_ARG_WITH( - ssdeep, - AC_HELP_STRING( - [--with-ssdeep=PATH], - [Path to ssdeep prefix] - ) -) - - -if test "x${with_ssdeep}" == "xno"; then - AC_DEFINE(HAVE_SSDEEP, 0, [Support for SSDEEP was disabled by the utilization of --without-ssdeep or --with-ssdeep=no]) - AC_MSG_NOTICE([Support for SSDEEP was disabled by the utilization of --without-ssdeep or --with-ssdeep=no]) - SSDEEP_DISABLED=yes -else - if test "x${with_ssdeep}" == "xyes"; then - SSDEEP_MANDATORY=yes - AC_MSG_NOTICE([SSDEEP support was marked as mandatory by the utilization of --with-ssdeep=yes]) - else - SSDEEP_MANDATORY=no - fi - for x in ${SSDEEP_POSSIBLE_PATHS}; do - CHECK_FOR_SSDEEP_AT(${x}) - if test -n "${SSDEEP_CFLAGS}"; then - break - fi - done -fi - - -if test -z "${SSDEEP_CFLAGS}"; then - if test -z "${SSDEEP_MANDATORY}" || test "x${SSDEEP_MANDATORY}" == "xno"; then - if test -z "${SSDEEP_DISABLED}"; then - AC_MSG_NOTICE([SSDEEP library was not found]) - SSDEEP_FOUND=0 - else - SSDEEP_FOUND=2 - fi - else - AC_MSG_ERROR([SSDEEP was explicitly referenced but it was not found]) - SSDEEP_FOUND=-1 - fi -else - SSDEEP_FOUND=1 - AC_MSG_NOTICE([using SSDEEP v${SSDEEP_VERSION}]) - SSDEEP_CFLAGS="-DWITH_SSDEEP ${SSDEEP_CFLAGS}" - SSDEEP_DISPLAY="${SSDEEP_LDADD} ${SSDEEP_LDFLAGS}, ${SSDEEP_CFLAGS}" - AC_SUBST(SSDEEP_LDFLAGS) - AC_SUBST(SSDEEP_LDADD) - AC_SUBST(SSDEEP_CFLAGS) - AC_SUBST(SSDEEP_DISPLAY) -fi - - -AC_SUBST(SSDEEP_FOUND) - -]) # AC_DEFUN [CHECK_SSDEEP] - - -AC_DEFUN([CHECK_FOR_SSDEEP_AT], [ - path=$1 - echo "*** LOOKING AT PATH: " ${path} - for y in ${SSDEEP_POSSIBLE_EXTENSIONS}; do - for z in ${SSDEEP_POSSIBLE_LIB_NAMES}; do - if test -e "${path}/${z}.${y}"; then - ssdeep_lib_path="${path}/" - ssdeep_lib_name="${z}" - ssdeep_lib_file="${ssdeep_lib_path}/${z}.${y}" - break - fi - if test -e "${path}/lib${z}.${y}"; then - ssdeep_lib_path="${path}/" - ssdeep_lib_name="${z}" - ssdeep_lib_file="${ssdeep_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/lib${z}.${y}"; then - ssdeep_lib_path="${path}/lib/" - ssdeep_lib_name="${z}" - ssdeep_lib_file="${ssdeep_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/x86_64-linux-gnu/lib${z}.${y}"; then - ssdeep_lib_path="${path}/lib/x86_64-linux-gnu/" - ssdeep_lib_name="${z}" - ssdeep_lib_file="${ssdeep_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/i386-linux-gnu/lib${z}.${y}"; then - ssdeep_lib_path="${path}/lib/i386-linux-gnu/" - ssdeep_lib_name="${z}" - ssdeep_lib_file="${ssdeep_lib_path}/lib${z}.${y}" - break - fi - done - if test -n "$ssdeep_lib_path"; then - break - fi - done - if test -e "${path}/include/fuzzy.h"; then - ssdeep_inc_path="${path}/include" - elif test -e "${path}/fuzzy.h"; then - ssdeep_inc_path="${path}" - elif test -e "${path}/include/fuzzy/fuzzy.h"; then - ssdeep_inc_path="${path}/include" - fi - - if test -n "${ssdeep_lib_path}"; then - AC_MSG_NOTICE([SSDEEP library found at: ${ssdeep_lib_file}]) - fi - - if test -n "${ssdeep_inc_path}"; then - AC_MSG_NOTICE([SSDEEP headers found at: ${ssdeep_inc_path}]) - fi - - if test -n "${ssdeep_lib_path}" -a -n "${ssdeep_inc_path}"; then - # TODO: Compile a piece of code to check the version. - SSDEEP_CFLAGS="-I${ssdeep_inc_path}" - SSDEEP_LDADD="-l${ssdeep_lib_name}" - SSDEEP_LDFLAGS="-L${ssdeep_lib_path}" - SSDEEP_DISPLAY="${ssdeep_lib_file}, ${ssdeep_inc_path}" - fi -]) # AC_DEFUN [CHECK_FOR_SSDEEP_AT] - - - diff --git a/build/yajl.m4 b/build/yajl.m4 deleted file mode 100644 index 7bd9a0be..00000000 --- a/build/yajl.m4 +++ /dev/null @@ -1,176 +0,0 @@ -dnl Check for YAJL Libraries -dnl CHECK_YAJL(ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) - -AC_DEFUN([PROG_YAJL], [ - -# Needed if pkg-config will be used. -AC_REQUIRE([PKG_PROG_PKG_CONFIG]) - - -# Possible names for the yajl library/package (pkg-config) -YAJL_POSSIBLE_LIB_NAMES="yajl2 yajl" - -# Possible extensions for the library -YAJL_POSSIBLE_EXTENSIONS="so la sl dll dylib" - -# Possible paths (if pkg-config was not found, proceed with the file lookup) -YAJL_POSSIBLE_PATHS="/usr/lib /usr/local/lib /usr/local/libyajl /usr/local/yajl /usr/local /opt/libyajl /opt/yajl /opt /usr /usr/lib64" - -# Variables to be set by this very own script. -YAJL_VERSION="" -YAJL_CFLAGS="" -YAJL_CPPFLAGS="" -YAJL_LDADD="" -YAJL_LDFLAGS="" - -AC_ARG_WITH( - yajl, - AC_HELP_STRING( - [--with-yajl=PATH], - [Path to yajl prefix or config script] - ) -) - -if test "x${with_yajl}" == "xno"; then - AC_DEFINE(HAVE_GEOIP, 0, [Support for GeoIP was disabled by the utilization of --without-yajl or --with-yajl=no]) - AC_MSG_NOTICE([Support for GeoIP was disabled by the utilization of --without-yajl or --with-yajl=no]) - YAJL_DISABLED=yes -else - if test "x${with_yajl}" == "xyes"; then - YAJL_MANDATORY=yes - AC_MSG_NOTICE([GeoIP support was marked as mandatory by the utilization of --with-yajl=yes]) - fi -# for x in ${YAJL_POSSIBLE_LIB_NAMES}; do -# CHECK_FOR_YAJL_AT(${x}) -# if test -n "${YAJL_VERSION}"; then -# break -# fi -# done - -# if test "x${with_yajl}" != "xyes" or test "x${with_yajl}" == "xyes"; then - if test "x${with_yajl}" == "x" || test "x${with_yajl}" == "xyes"; then - # Nothing about GeoIP was informed, using the pkg-config to figure things out. - if test -n "${PKG_CONFIG}"; then - YAJL_PKG_NAME="" - for x in ${YAJL_POSSIBLE_LIB_NAMES}; do - if ${PKG_CONFIG} --exists ${x}; then - YAJL_PKG_NAME="$x" - break - fi - done - fi - AC_MSG_NOTICE([Nothing about GeoIP was informed during the configure phase. Trying to detect it on the platform...]) - if test -n "${YAJL_PKG_NAME}"; then - # Package was found using the pkg-config scripts - YAJL_VERSION="`${PKG_CONFIG} ${YAJL_PKG_NAME} --modversion`" - YAJL_CFLAGS="`${PKG_CONFIG} ${YAJL_PKG_NAME} --cflags`" - YAJL_LDADD="`${PKG_CONFIG} ${YAJL_PKG_NAME} --libs-only-l`" - YAJL_LDFLAGS="`${PKG_CONFIG} ${YAJL_PKG_NAME} --libs-only-L --libs-only-other`" - YAJL_DISPLAY="${YAJL_LDADD}, ${YAJL_CFLAGS}" - else - # If pkg-config did not find anything useful, go over file lookup. - for x in ${YAJL_POSSIBLE_LIB_NAMES}; do - CHECK_FOR_YAJL_AT(${x}) - if test -n "${YAJL_VERSION}"; then - break - fi - done - fi - fi - if test "x${with_yajl}" != "x"; then - # An specific path was informed, lets check. - YAJL_MANDATORY=yes - CHECK_FOR_YAJL_AT(${with_yajl}) - fi -# fi -fi - -if test -z "${YAJL_LDADD}"; then - if test -z "${YAJL_MANDATORY}"; then - if test -z "${YAJL_DISABLED}"; then - AC_MSG_NOTICE([YAJL library was not found]) - YAJL_FOUND=0 - else - YAJL_FOUND=2 - fi - else - AC_MSG_ERROR([YAJL was explicitly referenced but it was not found]) - YAJL_FOUND=-1 - fi -else - YAJL_FOUND=1 - AC_MSG_NOTICE([using YAJL v${YAJL_VERSION}]) - YAJL_CFLAGS="-DWITH_YAJL ${YAJL_CFLAGS}" - YAJL_DISPLAY="${YAJL_LDADD}, ${YAJL_CFLAGS}" - AC_SUBST(YAJL_VERSION) - AC_SUBST(YAJL_LDADD) - AC_SUBST(YAJL_LIBS) - AC_SUBST(YAJL_LDFLAGS) - AC_SUBST(YAJL_CFLAGS) - AC_SUBST(YAJL_DISPLAY) -fi - - - -AC_SUBST(YAJL_FOUND) - -]) # AC_DEFUN [PROG_YAJL] - - -AC_DEFUN([CHECK_FOR_YAJL_AT], [ - path=$1 - for y in ${YAJL_POSSIBLE_EXTENSIONS}; do - for z in ${YAJL_POSSIBLE_LIB_NAMES}; do - if test -e "${path}/${z}.${y}"; then - yajl_lib_path="${path}/" - yajl_lib_name="${z}" - yajl_lib_file="${yajl_lib_path}/${z}.${y}" - break - fi - if test -e "${path}/lib${z}.${y}"; then - yajl_lib_path="${path}/" - yajl_lib_name="${z}" - yajl_lib_file="${yajl_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/lib${z}.${y}"; then - yajl_lib_path="${path}/lib/" - yajl_lib_name="${z}" - yajl_lib_file="${yajl_lib_path}/lib${z}.${y}" - break - fi - if test -e "${path}/lib/x86_64-linux-gnu/lib${z}.${y}"; then - yajl_lib_path="${path}/lib/x86_64-linux-gnu/" - yajl_lib_name="${z}" - yajl_lib_file="${yajl_lib_path}/lib${z}.${y}" - break - fi - done - if test -n "$yajl_lib_path"; then - break - fi - done - if test -e "${path}/include/yajl_parse.h"; then - yajl_inc_path="${path}/include" - elif test -e "${path}/yajl_parse.h"; then - yajl_inc_path="${path}" - elif test -e "${path}/include/yajl/yajl_parse.h"; then - yajl_inc_path="${path}/include" - fi - - if test -n "${yajl_lib_path}"; then - AC_MSG_NOTICE([YAJL library found at: ${yajl_lib_file}]) - fi - - if test -n "${yajl_inc_path}"; then - AC_MSG_NOTICE([YAJL headers found at: ${yajl_inc_path}]) - fi - - if test -n "${yajl_lib_path}" -a -n "${yajl_inc_path}"; then - # TODO: Compile a piece of code to check the version. - YAJL_CFLAGS="-I${yajl_inc_path}" - YAJL_LDADD="-l${yajl_lib_name}" - YAJL_LDFLAGS="-L${yajl_lib_path}" - YAJL_DISPLAY="${yajl_lib_file}, ${yajl_inc_path}" - fi -]) # AC_DEFUN [CHECK_FOR_YAJL_AT] diff --git a/configure.ac b/configure.ac deleted file mode 100644 index 6f19a2f0..00000000 --- a/configure.ac +++ /dev/null @@ -1,601 +0,0 @@ -# ModSecurity configure.ac - - -# Get the hash of the last commit, to be used if it is not an -# official release. -AC_DEFUN([MSC_GIT_HASH], m4_esyscmd_s(git log -1 --format="%h" --abbrev-commit)) -AC_DEFUN([MSC_MAJOR], m4_esyscmd_s(cat headers/modsecurity/modsecurity.h | grep "define MODSECURITY_MAJOR " | awk {'print $3'} | sed 's/\"//g')) -AC_DEFUN([MSC_MINOR], m4_esyscmd_s(cat headers/modsecurity/modsecurity.h | grep "define MODSECURITY_MINOR " | awk {'print $3'} | sed 's/\"//g')) -AC_DEFUN([MSC_PATCHLEVEL], m4_esyscmd_s(cat headers/modsecurity/modsecurity.h | grep "define MODSECURITY_PATCHLEVEL " | awk {'print $3'} | sed 's/\"//g')) -AC_DEFUN([MSC_TAG], m4_esyscmd_s(cat headers/modsecurity/modsecurity.h | grep "define MODSECURITY_TAG " | awk {'print $3'} | sed 's/\"//g')) - - -# Version definition to be further used by AC_INIT and -# .so file naming. -m4_define([msc_version_major], [MSC_MAJOR]) -m4_define([msc_version_minor], [MSC_MINOR]) -m4_define([msc_version_patchlevel], [MSC_PATCHLEVEL]) - -m4_define([msc_version_c_plus_a], [m4_eval(msc_version_major + msc_version_minor)]) - - -m4_define([msc_version], - [msc_version_major.msc_version_minor]) - -m4_define([msc_version_git], - [m4_esyscmd_s(git describe)]) - -m4_define([msc_version_info], - [msc_version_c_plus_a:msc_version_patchlevel:msc_version_minor]) - - -# Project Information -AC_INIT([modsecurity], [3.0], [security@modsecurity.org]) - - -# General definitions -AC_CONFIG_MACRO_DIR([build]) -AC_PREFIX_DEFAULT([/usr/local/modsecurity]) - - -# General automake options. -AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects]) - - -# Check for dependencies (C++, AR, Lex, Yacc and Make) -AC_PROG_CXX -AM_PROG_AR -AC_PROG_MAKE_SET - - -# Check if the compiler is c++11 compatible. -# AX_CXX_COMPILE_STDCXX_11(,mandatory) - -# Check for libinjection -AC_CHECK_FILE("others/libinjection/src/libinjection_html5.c", HAS_LIBINJECTION=1) -test "x$HAS_LIBINJECTION" = "x" && AC_MSG_ERROR([\ - - - libInjection was not found within ModSecurity source directory. - - libInjection code is available as part of ModSecurity source code in a format - of a git-submodule. git-submodule allow us to specify the correct version of - libInjection and still uses the libInjection repository to download it. - - You can download libInjection using git: - - $ git submodule init - $ git submodule update - - ]) -# Libinjection version -AC_DEFUN([LIBINJECTION_VERSION], m4_esyscmd_s(PWD="others/libinjection" git describe)) - -# SecLang test version -AC_DEFUN([SECLANG_TEST_VERSION], m4_esyscmd_s(PWD="test/test-cases/secrules-language-tests" git log -1 --format="%h" --abbrev-commit)) - - -# Check for yajl -PROG_YAJL - -AM_CONDITIONAL([YAJL_VERSION], [test "$YAJL_VERSION" != ""]) - -# Check for LibGeoIP -PROG_GEOIP -AM_CONDITIONAL([GEOIP_CFLAGS], [test "GEOIP_CFLAGS" != ""]) - -# Check for MaxMind -PROG_MAXMIND -AM_CONDITIONAL([MAXMIND_CFLAGS], [test "MAXMIND_CFLAGS" != ""]) - - -# Check for LMDB -PROG_LMDB -AM_CONDITIONAL([LMDB_CFLAGS], [test "LMDB_CFLAGS" != ""]) - -# Check for SSDEEP -CHECK_SSDEEP -AM_CONDITIONAL([SSDEEP_CFLAGS], [test "SSDEEP_CFLAGS" != ""]) - -# Check for LUA -CHECK_LUA -AM_CONDITIONAL([LUA_CFLAGS], [test "LUA_CFLAGS" != ""]) - - -# -# Check for curl -# -CHECK_CURL - -if ! test -z "${CURL_VERSION}"; then - AC_DEFINE([MSC_WITH_CURL], [1], [Define if libcurl is available]) -fi - - -# -# Check for LibXML -# -CHECK_LIBXML2 - - -# -# Check for libpcre -# -CHECK_PCRE - - -# Checks for header files. -AC_HEADER_STDC -AC_CHECK_HEADERS([string]) -AC_CHECK_HEADERS([iostream]) -AC_CHECK_HEADERS([sys/utsname.h]) - - -# ?? -LT_INIT([dlopen]) - -# Identify platform -AC_CANONICAL_HOST - -case $host in - *-*-aix*) - echo "Checking platform... Identified as AIX" - AC_DEFINE([AIX], [1], [Define if the operating system is AIX]) - PLATFORM="AIX" - ;; - *-*-hpux*) - echo "Checking platform... Identified as HPUX" - AC_DEFINE([HPUX], [1], [Define if the operating system is HPUX]) - PLATFORM="HPUX" - ;; - *-*-darwin*) - echo "Checking platform... Identified as Macintosh OS X" - AC_DEFINE([MACOSX], [1], [Define if the operating system is Macintosh OSX]) - PLATFORM="MacOSX" - ;; - *-*-linux*) - echo "Checking platform... Identified as Linux" - AC_DEFINE([LINUX], [1], [Define if the operating system is LINUX]) - PLATFORM="Linux" - ;; - *-*-solaris*) - echo "Checking platform... Identified as Solaris" - AC_DEFINE([SOLARIS], [1], [Define if the operating system is SOLARIS]) - PLATFORM="Solaris" - ;; - *-*-freebsd*) - echo "Checking platform... Identified as FreeBSD" - AC_DEFINE([FREEBSD], [1], [Define if the operating system is FREEBSD]) - PLATFORM="FreeBSD" - ;; - *-*-netbsd*) - echo "Checking platform... Identified as NetBSD" - AC_DEFINE([NETBSD], [1], [Define if the operating system is NETBSD]) - PLATFORM="NetBSD" - ;; - *-*-openbsd*) - echo "Checking platform... Identified as OpenBSD" - AC_DEFINE([OPENBSD], [1], [Define if the operating system is OPENBSD]) - PLATFORM="OpenBSD" - ;; - *-*-kfreebsd*) - echo "Checking platform... Identified as kFreeBSD, treating as linux" - AC_DEFINE([FREEBSD], [1], [Define if the operating system is FREEBSD]) - PLATFORM="kFreeBSD" - ;; - *-*-gnu*.*) - echo "Checking platform... Identified as HURD, treating as linux" - AC_DEFINE([LINUX], [1], [Define if the operating system is LINUX]) - PLATFORM="HURD" - ;; - *) - echo "Unknown CANONICAL_HOST $host" - exit - ;; -esac - -# Variables to be used inside the Makefile.am files. -MSC_BASE_DIR=`pwd` -AC_SUBST([MSC_BASE_DIR]) - -MSC_VERSION_INFO=msc_version_info -AC_SUBST([MSC_VERSION_INFO]) - -MSC_VERSION=msc_version -AC_SUBST([MSC_VERSION]) - -MSC_GIT_VERSION=msc_version_git -AC_SUBST([MSC_GIT_VERSION]) - - -AC_ARG_ENABLE(debug-logs, - [AC_HELP_STRING([--disable-debug-logs],[Turn off the SecDebugLog feature])], - - [case "${enableval}" in - yes) debugLogs=true ;; - no) debugLogs=false ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug-logs) ;; - esac], - - [debugLogs=true] - ) -if test "$debugLogs" != "true"; then - MODSEC_NO_LOGS="-DNO_LOGS=1" - AC_SUBST(MODSEC_NO_LOGS) -fi - - -# Fuzzer -AC_ARG_ENABLE(afl-fuzz, - [AC_HELP_STRING([--enable-afl-fuzz],[Turn on the afl fuzzer compilation utilities])], - - [case "${enableval}" in - yes) aflFuzzer=true ;; - no) aflFuzzer=false ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-afl-fuzz) ;; - esac], - - [aflFuzzer=false] - ) - -# Examples -AC_ARG_ENABLE(examples, - [AC_HELP_STRING([--enable-examples],[Turn on the examples compilation (default option)])], - - [case "${enableval}" in - yes) buildExamples=true ;; - no) buildExamples=false ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-examples) ;; - esac], - - [buildExamples=true] - ) - -# Parser -AC_ARG_ENABLE(parser-generation, - [AC_HELP_STRING([--enable-parser-generation],[Enables parser generation during the build])], - - [case "${enableval}" in - yes) buildParser=true ;; - no) buildParser=false ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-parser-generation) ;; - esac], - - [buildParser=false] - ) - -# Mutex -AC_ARG_ENABLE(mutex-on-pm, - [AC_HELP_STRING([--enable-mutex-on-pm],[Treats pm operations as a critical section])], - - [case "${enableval}" in - yes) mutexPm=true ;; - no) mutexPm=false ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-mutex-on-pm) ;; - esac], - - [mutexPm=false] - ) -if test "$mutexPm" == "true"; then - MODSEC_MUTEX_ON_PM="-DMUTEX_ON_PM=1" - AC_SUBST(MODSEC_MUTEX_ON_PM) -fi - - -if test $buildParser = true; then - AC_PROG_YACC - AC_PROG_LEX - AC_PATH_PROG([FLEX], [flex]) - test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build ModSecurity]) - - AC_PATH_PROG([BISON], [bison]) - test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build ModSecurity]) - - AC_PATH_PROG([YACC_INST], $YACC) - if test ! -f "$srcdir/gram.c"; then - if test -z "$YACC_INST"; then - AC_MSG_ERROR([yacc not found - unable to compile ModSecurity]) - fi - fi -fi - - -# Decide if we want to build the tests or not. -buildTestUtilities=false -if test "x$YAJL_FOUND" = "x1"; then - # Regression tests will not be able to run without the logging support. - # But we still have the unit tests. - # if test "$debugLogs" = "true"; then - buildTestUtilities=true - # fi -fi - - -AM_CONDITIONAL([TEST_UTILITIES], [test $buildTestUtilities = true]) -if test $buildTestUtilities = true; then - if test $debugLogs = true; then - if test -f ./test/test-list.sh; then - TEST_CASES=`./test/test-list.sh` - fi - fi -fi - -AM_CONDITIONAL([EXAMPLES], [test $buildExamples = true]) -AM_CONDITIONAL([BUILD_PARSER], [test $buildParser = true]) -AM_CONDITIONAL([USE_MUTEX_ON_PM], [test $mutexPm = true]) - - -# General link options -if test "$PLATFORM" != "MacOSX"; then - GLOBAL_LDADD="-lrt " -fi - -if test "$aflFuzzer" == "true"; then - FUZZ_CPPCFLAGS="-fsanitize=address -fsanitize-coverage=4 " - GLOBAL_LDADD="$GLOBAL_LDADD -fsanitize=address " - GLOBAL_CPPFLAGS="$GLOBAL_CPPFLAGS $FUZZ_CPPCFLAGS" - $buildExamples = false -fi -AC_SUBST(GLOBAL_LDADD) -AC_SUBST(GLOBAL_CPPFLAGS) - -AM_CONDITIONAL([AFL_FUZZER], [test $aflFuzzer = true]) - -GLOBAL_CFLAGS="" -AC_SUBST(GLOBAL_CFLAGS) - -# Files to be generated via autotools. -AC_CONFIG_FILES([\ - Makefile \ - doc/Makefile \ - src/Makefile \ - others/Makefile \ - tools/Makefile \ - tools/rules-check/Makefile - ]) - -AM_COND_IF([TEST_UTILITIES], - [AC_CONFIG_FILES([test/Makefile test/benchmark/Makefile])]) - -AM_COND_IF([EXAMPLES], - [AC_CONFIG_FILES([ \ - examples/Makefile \ - examples/simple_example_using_c/Makefile \ - examples/multiprocess_c/Makefile \ - examples/reading_logs_with_offset/Makefile \ - examples/reading_logs_via_rule_message/Makefile \ - examples/using_bodies_in_chunks/Makefile \ - ])]) - -AM_COND_IF([AFL_FUZZER], - [AC_CONFIG_FILES([test/fuzzer/Makefile])]) - -AM_COND_IF([BUILD_PARSER], - [AC_CONFIG_FILES([src/parser/Makefile])]) - - -AC_CONFIG_HEADERS([src/config.h]) - - -# Doxygen support -DX_HTML_FEATURE(ON) -DX_CHM_FEATURE(OFF) -DX_CHI_FEATURE(OFF) -DX_MAN_FEATURE(OFF) -DX_RTF_FEATURE(OFF) -DX_XML_FEATURE(OFF) -DX_PDF_FEATURE(OFF) -DX_PS_FEATURE(OFF) - -DX_INIT_DOXYGEN([ModSecurity],[doc/doxygen.cfg]) - -# make check-valgrind -AX_VALGRIND_DFLT([sgcheck], [off]) -AX_VALGRIND_CHECK - -# Generate the files. -AC_OUTPUT - - -# Print a fancy summary -echo " " -echo " " -echo "ModSecurity - ${MSC_GIT_VERSION} for $PLATFORM" -echo " " -echo " Mandatory dependencies" -echo -n " + libInjection ...." -echo LIBINJECTION_VERSION -echo -n " + SecLang tests ...." -echo SECLANG_TEST_VERSION - -echo " " -echo " Optional dependencies" - - - -## GeoIP - MaxMind -if test "x$GEOIP_FOUND" = "x0" && test "x$MAXMIND_FOUND" = "x0"; then - echo " + GeoIP/MaxMind ....not found" -fi -if test "x$GEOIP_FOUND" = "x1" || test "x$MAXMIND_FOUND" = "x1"; then - echo -n " + GeoIP/MaxMind ....found " - echo "" - if test "x$MAXMIND_FOUND" = "x1"; then - echo " * (MaxMind) v${MAXMIND_VERSION}" - echo " ${MAXMIND_DISPLAY}" - fi - if test "x$GEOIP_FOUND" = "x1"; then - echo " * (GeoIP) v${GEOIP_VERSION}" - echo " ${GEOIP_DISPLAY}" - fi -fi -if test "x$GEOIP_FOUND" = "x2" && test "x$MAXMIND_FOUND" = "x2"; then - echo " + GeoIP/MaxMind ....disabled" -fi - - -## LibCurl -if test "x$CURL_FOUND" = "x0"; then - echo " + LibCURL ....not found" -fi -if test "x$CURL_FOUND" = "x1"; then - echo -n " + LibCURL ....found " - if ! test "x$CURL_VERSION" = "x"; then - echo "v${CURL_VERSION}" - else - echo "" - fi - echo " ${CURL_DISPLAY}" -fi -if test "x$CURL_FOUND" = "x2"; then - echo " + LibCURL ....disabled" -fi - - -## YAJL -if test "x$YAJL_FOUND" = "x0"; then - echo " + YAJL ....not found" -fi -if test "x$YAJL_FOUND" = "x1"; then - echo -n " + YAJL ....found " - if ! test "x$YAJL_VERSION" = "x"; then - echo "v${YAJL_VERSION}" - else - echo "" - fi - echo " ${YAJL_DISPLAY}" -fi -if test "x$YAJL_FOUND" = "x2"; then - echo " + YAJL ....disabled" -fi - - -## LMDB -if test "x$LMDB_FOUND" = "x0"; then - echo " + LMDB ....not found" -fi -if test "x$LMDB_FOUND" = "x1"; then - echo -n " + LMDB ....found " - if ! test "x$LMDB_VERSION" = "x"; then - echo "v${LMDB_VERSION}" - else - echo "" - fi - echo " ${LMDB_DISPLAY}" -fi -if test "x$LMDB_FOUND" = "x2"; then - echo " + LMDB ....disabled" -fi - - -## libxml2 -if test "x$LIBXML2_FOUND" = "x0"; then - echo " + LibXML2 ....not found" -fi -if test "x$LIBXML2_FOUND" = "x1"; then - echo -n " + LibXML2 ....found " - if ! test "x$LIBXML2_VERSION" = "x"; then - echo "v${LIBXML2_VERSION}" - else - echo "" - fi - echo " ${LIBXML2_DISPLAY}" -fi -if test "x$LIBXML2_FOUND" = "x2"; then - echo " + LibXML2 ....disabled" -fi - - -## SSDEEP -if test "x$SSDEEP_FOUND" = "x0"; then - echo " + SSDEEP ....not found" -fi -if test "x$SSDEEP_FOUND" = "x1"; then - echo -n " + SSDEEP ....found " - if ! test "x$SSDEEP_VERSION" = "x"; then - echo "v${SSDEEP_VERSION}" - else - echo "" - fi - echo " ${SSDEEP_DISPLAY}" -fi -if test "x$SSDEEP_FOUND" = "x2"; then - echo " + SSDEEP ....disabled" -fi - -## LUA -if test "x$LUA_FOUND" = "x0"; then - echo " + LUA ....not found" -fi -if test "x$LUA_FOUND" = "x1"; then - echo -n " + LUA ....found " - if ! test "x$LUA_VERSION" = "x"; then - echo "v${LUA_VERSION}" - else - echo "" - fi - echo " ${LUA_DISPLAY}" -fi -if test "x$LUA_FOUND" = "x2"; then - echo " + LUA ....disabled" -fi - - -echo " " -echo " Other Options" -if test $buildTestUtilities = true; then - if test $debugLogs = true; then - echo " + Test Utilities ....enabled" - else - echo " + Test Utilities ....partially" - fi -else - echo " + Test Utilities ....disabled" -fi -if test $debugLogs = true; then - echo " + SecDebugLog ....enabled" -else - echo " + SecDebugLog ....disabled" -fi - -if test "$aflFuzzer" = "true"; then - echo " + afl fuzzer ....enabled" - echo " ($FUZZ_CPPCFLAGS)" -else - echo " + afl fuzzer ....disabled" -fi - -if test "$buildExamples" = "true"; then - echo " + library examples ....enabled" -else - echo " + library examples ....disabled" -fi - -if test "$buildParser" = "true"; then - echo " + Building parser ....enabled" -else - echo " + Building parser ....disabled" -fi - -if test "$mutexPm" = "true"; then - echo " + Treating pm operations as critical section ....enabled" -else - echo " + Treating pm operations as critical section ....disabled" -fi - - -echo " " - - -if test "$aflFuzzer" = "true"; then - echo "WARNING: afl fuzzer was enabled. Make sure you are using the" - echo " 'afl-clang-fast' as the compiler, otherwise the compilation" - echo " will fail." - echo " " - echo " You can set the compiler using:" - echo " " - echo " $ export CXX=afl-clang-fast++ " - echo " $ export CC=afl-clang-fast " - echo " " -fi - diff --git a/doc/.empty b/doc/.empty deleted file mode 100644 index e69de29b..00000000 diff --git a/doc/Makefile.am b/doc/Makefile.am deleted file mode 100644 index dfada090..00000000 --- a/doc/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ - -ACLOCAL_AMFLAGS = -I build - -# Doxygen support -# include $(top_srcdir)/build/ax_prog_doxygen.m4 - -# distribution of the Doxygen configuration file -EXTRA_DIST = \ - doxygen.cfg - - -MAINTAINERCLEANFILES = \ - Makefile.in \ - doxygen_sqlite3.db \ - html \ - latex - diff --git a/doc/doxygen.cfg b/doc/doxygen.cfg deleted file mode 100644 index 44326e01..00000000 --- a/doc/doxygen.cfg +++ /dev/null @@ -1,2403 +0,0 @@ -# Doxyfile 1.8.8 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = ModSecurty - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = 3.0.0 - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = "ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx that is developed by Trustwave's SpiderLabs. It has a robust event-based programming language which provides protection from a range of attacks against web applications and allows for HTTP traffic monitoring, logging and real-time analys…" - -# With the PROJECT_LOGO tag one can specify an logo or icon that is included in -# the documentation. The maximum height of the logo should not exceed 55 pixels -# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo -# to the output directory. - -PROJECT_LOGO = doc/ms-doxygen-logo.png - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = ../doc - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = NO - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a -# new page for each member. If set to NO, the documentation of a member will be -# part of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. -# -# Note For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by by putting a % sign in front of the word -# or globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO these classes will be included in the various overviews. This option has -# no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO these declarations will be -# included in the documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the -# todo list. This list is created by putting \todo commands in the -# documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the -# test list. This list is created by putting \test commands in the -# documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES the list -# will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO doxygen will only warn about wrong or incomplete parameter -# documentation, but not about the absence of documentation. -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. -# Note: If this tag is empty the current directory is searched. - -INPUT = ../headers/modsecurity/modsecurity.h ../src ../headers - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: http://www.gnu.org/software/libiconv) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank the -# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, -# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, -# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, -# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, -# *.qsf, *.as and *.js. - -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.idl \ - *.ddl \ - *.odl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.cs \ - *.d \ - *.php \ - *.php4 \ - *.php5 \ - *.phtml \ - *.inc \ - *.m \ - *.markdown \ - *.md \ - *.mm \ - *.dox \ - *.py \ - *.f90 \ - *.f \ - *.for \ - *.tcl \ - *.vhd \ - *.vhdl \ - *.ucf \ - *.qsf \ - *.as \ - *.js - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER ) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES, then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see http://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. -# Note: The availability of this option depends on whether or not doxygen was -# compiled with the --with-libclang option. -# The default value is: NO. - -CLANG_ASSISTED_PARSING = NO - -# If clang assisted parsing is enabled you can provide the compiler with command -# line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories -# specified with INPUT and INCLUDE_PATH. -# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. - -CLANG_OPTIONS = - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = YES - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefor more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra stylesheet files is of importance (e.g. the last -# stylesheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the stylesheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler ( hhc.exe). If non-empty -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated ( -# YES) or that it should be included in the master .chm file ( NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated ( -# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = YES - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using prerendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /