From 222122450c1e879989c440088c01eaa95e4d6980 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 6 Apr 2017 14:18:50 -0400 Subject: [PATCH] Add a config_line_prepend() function --- src/common/confline.c | 18 ++++++++++++++++++ src/common/confline.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/src/common/confline.c b/src/common/confline.c index 36f4c875f3..d4468f80ea 100644 --- a/src/common/confline.c +++ b/src/common/confline.c @@ -30,6 +30,24 @@ config_line_append(config_line_t **lst, (*lst) = newline; } +/** Helper: allocate a new configuration option mapping 'key' to 'val', + * and prepend it to *lst */ +void +config_line_prepend(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 = *lst; + *lst = newline; +} + /** Return the first line in lines whose key is exactly key, or * NULL if no such key exists. * diff --git a/src/common/confline.h b/src/common/confline.h index c695bf6b23..477c6929a2 100644 --- a/src/common/confline.h +++ b/src/common/confline.h @@ -31,6 +31,8 @@ typedef struct config_line_t { void config_line_append(config_line_t **lst, const char *key, const char *val); +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); config_line_t *config_lines_dup_and_filter(const config_line_t *inp, const char *key);