summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2024-02-02 23:29:48 +0100
committerAlejandro Colomar <alx@kernel.org>2024-02-05 18:37:21 +0100
commitecd573924f5dc31e279f12249fb44e8d00e144a2 (patch)
tree98739e2871611024adfb82677b918faa8a0d5e73
parent990fbe7010526bb97f2d414db866050ef5e8f244 (diff)
downloadunit-ecd573924f5dc31e279f12249fb44e8d00e144a2.tar.gz
unit-ecd573924f5dc31e279f12249fb44e8d00e144a2.tar.bz2
Configuration: Add nxt_conf_get_string_dup()
This function is like nxt_conf_get_string(), but creates a new copy, so that it can be modified without corrupting the configuration string. Reviewed-by: Andrew Clayton <a.clayton@nginx.com> Cc: Zhidao Hong <z.hong@f5.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--src/nxt_conf.c11
-rw-r--r--src/nxt_conf.h3
2 files changed, 14 insertions, 0 deletions
diff --git a/src/nxt_conf.c b/src/nxt_conf.c
index 664b5468..008cb968 100644
--- a/src/nxt_conf.c
+++ b/src/nxt_conf.c
@@ -3,6 +3,7 @@
* Copyright (C) Igor Sysoev
* Copyright (C) Valentin V. Bartenev
* Copyright (C) NGINX, Inc.
+ * Copyright 2024, Alejandro Colomar <alx@kernel.org>
*/
#include <nxt_main.h>
@@ -174,6 +175,16 @@ nxt_conf_get_string(nxt_conf_value_t *value, nxt_str_t *str)
}
+nxt_str_t *
+nxt_conf_get_string_dup(nxt_conf_value_t *value, nxt_mp_t *mp, nxt_str_t *str)
+{
+ nxt_str_t s;
+
+ nxt_conf_get_string(value, &s);
+ return nxt_str_dup(mp, str, &s);
+}
+
+
void
nxt_conf_set_string(nxt_conf_value_t *value, nxt_str_t *str)
{
diff --git a/src/nxt_conf.h b/src/nxt_conf.h
index 1b13f5ae..626b6d4d 100644
--- a/src/nxt_conf.h
+++ b/src/nxt_conf.h
@@ -3,6 +3,7 @@
* Copyright (C) Igor Sysoev
* Copyright (C) Valentin V. Bartenev
* Copyright (C) NGINX, Inc.
+ * Copyright 2024, Alejandro Colomar <alx@kernel.org>
*/
#ifndef _NXT_CONF_INCLUDED_
@@ -116,6 +117,8 @@ void nxt_conf_json_position(u_char *start, const u_char *pos, nxt_uint_t *line,
nxt_int_t nxt_conf_validate(nxt_conf_validation_t *vldt);
NXT_EXPORT void nxt_conf_get_string(nxt_conf_value_t *value, nxt_str_t *str);
+NXT_EXPORT nxt_str_t *nxt_conf_get_string_dup(nxt_conf_value_t *value,
+ nxt_mp_t *mp, nxt_str_t *str);
NXT_EXPORT void nxt_conf_set_string(nxt_conf_value_t *value, nxt_str_t *str);
NXT_EXPORT nxt_int_t nxt_conf_set_string_dup(nxt_conf_value_t *value,
nxt_mp_t *mp, const nxt_str_t *str);