From cf3354b9682748c86977635a22cd136f0529d03b Mon Sep 17 00:00:00 2001 From: fumingwei Date: Fri, 2 Jun 2023 17:39:55 +0800 Subject: feature:TSG-15303:新增支持注册name中包含.的metric MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/fieldstat_dynamic.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/fieldstat_dynamic.cpp') diff --git a/src/fieldstat_dynamic.cpp b/src/fieldstat_dynamic.cpp index 597ee3b..dd583e6 100644 --- a/src/fieldstat_dynamic.cpp +++ b/src/fieldstat_dynamic.cpp @@ -16,7 +16,8 @@ struct fieldstat_dynamic_instance * fieldstat_dynamic_instance_new(const char *n instance = (struct fieldstat_dynamic_instance *)calloc(1, sizeof(struct fieldstat_dynamic_instance)); - strcpy(instance->name, name); + strncpy(instance->name, name, strlen(name)); + instance->running = 0; instance->output_interval_ms = 2000; instance->background_thread_disable = 0; @@ -242,8 +243,11 @@ static int build_dynamic_metric_key(int table_id, const char *field_name, const int i = 0; int used_len = 0; struct fieldstat_tag *tag = NULL; + char unescaped_field_name[256] = {0}; + strncpy(unescaped_field_name, field_name, sizeof(unescaped_field_name) - 1); + escaping_special_chars(unescaped_field_name); - used_len += snprintf(out_key + used_len, out_key_size - used_len, "%d%s", table_id, field_name); + used_len += snprintf(out_key + used_len, out_key_size - used_len, "%d%s", table_id, unescaped_field_name); for(i = 0; i < (int)n_tags; i++) { -- cgit v1.2.3