diff options
author | Nick Mathewson <nickm@torproject.org> | 2019-06-13 15:19:26 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2019-06-24 15:11:57 -0400 |
commit | 5a2ab886baaa125fe715acca8f7daf35031855aa (patch) | |
tree | 550aee0ea734185bb0ee64d0de4d3770ab1f1d8f /src/lib/encoding | |
parent | 458da8a80d356a0c8015f025828cd1523838ecac (diff) | |
download | tor-5a2ab886baaa125fe715acca8f7daf35031855aa.tar.gz tor-5a2ab886baaa125fe715acca8f7daf35031855aa.zip |
Add a function to append an existing line to a config line list.
We had an existing function to do this, but it took a pair of
strings rather than a line.
Diffstat (limited to 'src/lib/encoding')
-rw-r--r-- | src/lib/encoding/confline.c | 15 | ||||
-rw-r--r-- | src/lib/encoding/confline.h | 3 |
2 files changed, 14 insertions, 4 deletions
diff --git a/src/lib/encoding/confline.c b/src/lib/encoding/confline.c index fdb575e03f..b36e83dcc6 100644 --- a/src/lib/encoding/confline.c +++ b/src/lib/encoding/confline.c @@ -33,14 +33,23 @@ config_line_append(config_line_t **lst, const char *key, const char *val) { - tor_assert(lst); - config_line_t *newline; newline = tor_malloc_zero(sizeof(config_line_t)); newline->key = tor_strdup(key); newline->value = tor_strdup(val); newline->next = NULL; + + config_line_append_line(lst, newline); +} + +/** Helper: append <b>newline</b> to the end of <b>lst</b>. */ +void +config_line_append_line(config_line_t **lst, + config_line_t *newline) +{ + tor_assert(lst); + while (*lst) lst = &((*lst)->next); @@ -256,7 +265,7 @@ config_lines_dup_and_filter(const config_line_t *inp, /** Return true iff a and b contain identical keys and values in identical * order. */ int -config_lines_eq(config_line_t *a, config_line_t *b) +config_lines_eq(const config_line_t *a, const config_line_t *b) { while (a && b) { if (strcasecmp(a->key, b->key) || strcmp(a->value, b->value)) diff --git a/src/lib/encoding/confline.h b/src/lib/encoding/confline.h index 56ea36bf61..7d0b9ce5fc 100644 --- a/src/lib/encoding/confline.h +++ b/src/lib/encoding/confline.h @@ -41,6 +41,7 @@ typedef struct config_line_t { void config_line_append(config_line_t **lst, const char *key, const char *val); +void config_line_append_line(config_line_t **lst, config_line_t *newline); void config_line_prepend(config_line_t **lst, const char *key, const char *val); config_line_t *config_lines_dup(const config_line_t *inp); @@ -50,7 +51,7 @@ const config_line_t *config_line_find(const config_line_t *lines, const char *key); const config_line_t *config_line_find_case(const config_line_t *lines, const char *key); -int config_lines_eq(config_line_t *a, config_line_t *b); +int config_lines_eq(const config_line_t *a, const config_line_t *b); int config_count_key(const config_line_t *a, const char *key); void config_free_lines_(config_line_t *front); #define config_free_lines(front) \ |