[tor-commits] [tor/master] Add a function to append an existing line to a config line list.
dgoulet at torproject.org
dgoulet at torproject.org
Tue Jul 23 13:50:59 UTC 2019
commit 5a2ab886baaa125fe715acca8f7daf35031855aa
Author: Nick Mathewson <nickm at torproject.org>
Date: Thu Jun 13 15:19:26 2019 -0400
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.
---
src/lib/encoding/confline.c | 15 ++++++++++++---
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 fdb575e03..b36e83dcc 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 56ea36bf6..7d0b9ce5f 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) \
More information about the tor-commits
mailing list