[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