diff options
| author | root <[email protected]> | 2024-03-18 03:30:42 +0000 |
|---|---|---|
| committer | root <[email protected]> | 2024-03-18 03:30:42 +0000 |
| commit | 56fa98077b2f11d1398d7728a85be52a51026253 (patch) | |
| tree | 1f567b1cfe46e63ee29c20849e28515ef8fd7b61 | |
| parent | c188261d78362f3fef755b5136eaf1ff0dfdbf82 (diff) | |
将ragel库替换为6.10版本,7.0.0.10版本有bug会导致hyperscan加载utf-8规则失败
| -rw-r--r-- | src/pkt_seq_matcher_plugin.cpp | 12 | ||||
| -rw-r--r-- | vendor/CMakeLists.txt | 14 | ||||
| -rw-r--r-- | vendor/ragel-6.10.tar.gz | bin | 0 -> 1232993 bytes | |||
| -rw-r--r-- | vendor/ragel-7.0.0.10.tar.gz | bin | 595079 -> 0 bytes |
4 files changed, 16 insertions, 10 deletions
diff --git a/src/pkt_seq_matcher_plugin.cpp b/src/pkt_seq_matcher_plugin.cpp index 637a5d9..cde629d 100644 --- a/src/pkt_seq_matcher_plugin.cpp +++ b/src/pkt_seq_matcher_plugin.cpp @@ -72,12 +72,15 @@ static int pkt_seq_matcher_hyperscan_init(struct pkt_seq_matcher_plugin_info *ps err = hs_compile_multi(expression, flags, ids, 6, HS_MODE_STREAM, NULL, &db, &compile_err); if (err != HS_SUCCESS) { - printf("compile failed\n"); + MESA_handle_runtime_log(g_logger_handle, RLOG_LV_FATAL, "PKT_SEQ_MATCHER", "compile failed: %d:%s, pattern:%s", compile_err->expression, compile_err->message, expression[compile_err->expression]); + hs_free_compile_error(compile_err); return -1; } psm_plugin_info->hs_database = db; + MESA_handle_runtime_log(g_logger_handle, RLOG_LV_DEBUG, "PKT_SEQ_MATCHER", "hyperscan compile success"); + return 0; } @@ -181,6 +184,10 @@ extern "C" void *pkt_seq_matcher_plugin_init(struct stellar *st) goto ERROR; } + if (pkt_seq_matcher_hyperscan_init(psm_plugin_info) != 0) + { + goto ERROR; + } psm_plugin_info->plugin_id = stellar_plugin_register(st, (SESS_EV_TCP|SESS_EV_UDP|SESS_EV_OPENING|SESS_EV_PACKET|SESS_EV_CLOSING), pkt_seq_matcher_entry, psm_plugin_info); @@ -192,8 +199,7 @@ ERROR: free(psm_plugin_info); } - perror("pkt_seq_matcher init failed"); - exit(-1); + return NULL; } extern "C" void pkt_seq_matcher_plugin_exit(void *plugin_ctx) diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt index a99aaed..333d84e 100644 --- a/vendor/CMakeLists.txt +++ b/vendor/CMakeLists.txt @@ -16,14 +16,14 @@ ExternalProject_Add(colm PREFIX colm INSTALL_COMMAND make install BUILD_IN_SOURCE 1) -# ragel-7.0.0.10 +# ragel-6.10 ExternalProject_Add(ragel PREFIX ragel - URL ${CMAKE_CURRENT_SOURCE_DIR}/ragel-7.0.0.10.tar.gz - CONFIGURE_COMMAND ./autogen.sh && ./configure --prefix=${VENDOR_BUILD} --with-colm=${VENDOR_BUILD} - DEPENDS colm - BUILD_COMMAND make - INSTALL_COMMAND make install - BUILD_IN_SOURCE 1) + URL ${CMAKE_CURRENT_SOURCE_DIR}/ragel-6.10.tar.gz + CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=${VENDOR_BUILD} --with-colm=${VENDOR_BUILD} + BUILD_COMMAND $(MAKE) + INSTALL_COMMAND $(MAKE) install + BUILD_IN_SOURCE 1 +) # HyperScan 5.4.2 ExternalProject_Add(hyperscan PREFIX hyperscan diff --git a/vendor/ragel-6.10.tar.gz b/vendor/ragel-6.10.tar.gz Binary files differnew file mode 100644 index 0000000..9b7392e --- /dev/null +++ b/vendor/ragel-6.10.tar.gz diff --git a/vendor/ragel-7.0.0.10.tar.gz b/vendor/ragel-7.0.0.10.tar.gz Binary files differdeleted file mode 100644 index d35ea08..0000000 --- a/vendor/ragel-7.0.0.10.tar.gz +++ /dev/null |
