TSG-1818 insert和hijack增加注入流量控制
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
add_library(pangu-http src/pangu_logger.cpp src/pangu_http.cpp src/pattern_replace.cpp src/pangu_web_cache.cpp)
|
add_library(pangu-http src/pangu_logger.cpp src/pangu_http.cpp src/pattern_replace.cpp src/pangu_web_cache.cpp)
|
||||||
target_link_libraries(pangu-http PUBLIC common http tango-cache-client)
|
target_link_libraries(pangu-http PUBLIC common http tango-cache-client)
|
||||||
target_link_libraries(pangu-http PUBLIC librdkafka ctemplate-static cjson pcre2-static libdablooms pthread)
|
target_link_libraries(pangu-http PUBLIC librdkafka ctemplate-static cjson pcre2-static ratelimiter-static libdablooms pthread)
|
||||||
target_link_libraries(pangu-http PUBLIC maatframe)
|
target_link_libraries(pangu-http PUBLIC maatframe)
|
||||||
|
|
||||||
add_executable(test_pattern_replace src/test_pattern_replace.cpp src/pattern_replace.cpp)
|
add_executable(test_pattern_replace src/test_pattern_replace.cpp src/pattern_replace.cpp)
|
||||||
|
|||||||
@@ -987,7 +987,7 @@ error_out:
|
|||||||
|
|
||||||
Ratelimiter_handle_t ratelimit_handle_create(const char* profile_path, const char* static_section)
|
Ratelimiter_handle_t ratelimit_handle_create(const char* profile_path, const char* static_section)
|
||||||
{
|
{
|
||||||
int ret=0;
|
int ret=0, field_stat=0;
|
||||||
int redis_port = 0, interval_sec = 0;
|
int redis_port = 0, interval_sec = 0;
|
||||||
char redis_server[TFE_STRING_MAX] = {0};
|
char redis_server[TFE_STRING_MAX] = {0};
|
||||||
char token_name[TFE_STRING_MAX] = {0};
|
char token_name[TFE_STRING_MAX] = {0};
|
||||||
@@ -1000,13 +1000,27 @@ Ratelimiter_handle_t ratelimit_handle_create(const char* profile_path, const cha
|
|||||||
MESA_load_profile_string_def(profile_path, static_section, "token_name", token_name, sizeof(token_name), "");
|
MESA_load_profile_string_def(profile_path, static_section, "token_name", token_name, sizeof(token_name), "");
|
||||||
|
|
||||||
MESA_load_profile_int_def(profile_path, static_section, "interval_sec", &(interval_sec), 1);
|
MESA_load_profile_int_def(profile_path, static_section, "interval_sec", &(interval_sec), 1);
|
||||||
|
if (g_pangu_rt->enable_rate != 1)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
ratelimit=Ratelimiter_create(token_name, g_pangu_rt->local_logger);
|
ratelimit=Ratelimiter_create(token_name, g_pangu_rt->local_logger);
|
||||||
|
|
||||||
Ratelimiter_set_opt(ratelimit, RATELIMITER_OPT_INTERVAL_SEC, &interval_sec, sizeof(interval_sec));
|
Ratelimiter_set_opt(ratelimit, RATELIMITER_OPT_INTERVAL_SEC, &interval_sec, sizeof(interval_sec));
|
||||||
Ratelimiter_set_opt(ratelimit, RATELIMITER_OPT_REDIS_IP, redis_server, strlen(redis_server) + 1);
|
Ratelimiter_set_opt(ratelimit, RATELIMITER_OPT_REDIS_IP, redis_server, strlen(redis_server) + 1);
|
||||||
Ratelimiter_set_opt(ratelimit, RATELIMITER_OPT_REDIS_PORT, &redis_port, sizeof(redis_port));
|
Ratelimiter_set_opt(ratelimit, RATELIMITER_OPT_REDIS_PORT, &redis_port, sizeof(redis_port));
|
||||||
|
|
||||||
|
/*field stata for debug test**/
|
||||||
|
MESA_load_profile_int_def(profile_path, static_section, "field_stat", &(field_stat), 0);
|
||||||
|
if (field_stat == 1)
|
||||||
|
{
|
||||||
|
MESA_load_profile_int_def(profile_path, static_section, "stat_port", &(redis_port), 6379);
|
||||||
|
MESA_load_profile_string_def(profile_path, static_section, "stat_server", redis_server, sizeof(redis_server), "");
|
||||||
|
Ratelimiter_set_opt(ratelimit, RATELIMITER_OPT_FIELD_STAT, &field_stat, sizeof(field_stat));
|
||||||
|
Ratelimiter_set_opt(ratelimit, RATELIMITER_OPT_STAT_IP, redis_server, strlen(redis_server));
|
||||||
|
Ratelimiter_set_opt(ratelimit, RATELIMITER_OPT_STAT_PORT, &redis_port, sizeof(redis_port));
|
||||||
|
Ratelimiter_set_opt(ratelimit, RATELIMITER_OPT_STAT_PATH, token_name, sizeof(token_name));
|
||||||
|
Ratelimiter_stat_init(ratelimit);
|
||||||
|
}
|
||||||
ret = Ratelimiter_start(ratelimit);
|
ret = Ratelimiter_start(ratelimit);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
|
|||||||
2
vendor/CMakeLists.txt
vendored
2
vendor/CMakeLists.txt
vendored
@@ -97,7 +97,7 @@ set_property(TARGET nghttp2-static APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
|||||||
### ratelimiter
|
### ratelimiter
|
||||||
ExternalProject_Add(ratelimiter PREFIX ratelimiter
|
ExternalProject_Add(ratelimiter PREFIX ratelimiter
|
||||||
URL ${CMAKE_CURRENT_SOURCE_DIR}/ratelimiter-1.1.0-x86_64.tar.gz
|
URL ${CMAKE_CURRENT_SOURCE_DIR}/ratelimiter-1.1.0-x86_64.tar.gz
|
||||||
URL_MD5 54cc36713c2aaa8ff378ca342778e57d
|
URL_MD5 4e5d01586fef4165c4dfd1f1a3595e61
|
||||||
CONFIGURE_COMMAND ""
|
CONFIGURE_COMMAND ""
|
||||||
BUILD_COMMAND make
|
BUILD_COMMAND make
|
||||||
BUILD_IN_SOURCE 1)
|
BUILD_IN_SOURCE 1)
|
||||||
|
|||||||
BIN
vendor/ratelimiter-1.1.0-x86_64.tar.gz
vendored
BIN
vendor/ratelimiter-1.1.0-x86_64.tar.gz
vendored
Binary file not shown.
Reference in New Issue
Block a user