Skip to content

Commit 03f3803

Browse files
committed
config_format: add new function to add property variant
Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
1 parent 0923ad6 commit 03f3803

2 files changed

Lines changed: 43 additions & 0 deletions

File tree

include/fluent-bit/config_format/flb_cf.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,11 @@ struct cfl_variant *flb_cf_section_property_add(struct flb_cf *cf,
174174
char *k_buf, size_t k_len,
175175
char *v_buf, size_t v_len);
176176

177+
struct cfl_variant *flb_cf_section_property_add_variant(struct flb_cf *cf,
178+
struct cfl_kvlist *kv_list,
179+
char *k_buf, size_t k_len,
180+
struct cfl_variant *variant);
181+
177182
struct cfl_array *flb_cf_section_property_add_list(struct flb_cf *cf,
178183
struct cfl_kvlist *kv_list,
179184
char *k_buf, size_t k_len);

src/config_format/flb_config_format.c

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,44 @@ struct cfl_variant *flb_cf_section_property_add(struct flb_cf *cf,
325325
return NULL;
326326
}
327327

328+
struct cfl_variant *flb_cf_section_property_add_variant(struct flb_cf *cf,
329+
struct cfl_kvlist *kv_list,
330+
char *k_buf, size_t k_len,
331+
struct cfl_variant *variant)
332+
{
333+
int rc;
334+
flb_sds_t key;
335+
336+
if (variant == NULL) {
337+
return NULL;
338+
}
339+
340+
if (k_len == 0) {
341+
k_len = strlen(k_buf);
342+
}
343+
344+
key = flb_cf_key_translate(cf, k_buf, k_len);
345+
if (key == NULL) {
346+
return NULL;
347+
}
348+
349+
rc = flb_sds_trim(key);
350+
if (rc == -1) {
351+
flb_cf_error_set(cf, FLB_CF_ERROR_KV_INVALID_KEY);
352+
flb_sds_destroy(key);
353+
return NULL;
354+
}
355+
356+
rc = cfl_kvlist_insert(kv_list, key, variant);
357+
if (rc < 0) {
358+
flb_sds_destroy(key);
359+
return NULL;
360+
}
361+
362+
flb_sds_destroy(key);
363+
return variant;
364+
}
365+
328366
struct cfl_array *flb_cf_section_property_add_list(struct flb_cf *cf,
329367
struct cfl_kvlist *kv_list,
330368
char *k_buf, size_t k_len)

0 commit comments

Comments
 (0)