From: Valentine Krasnobaeva Date: Wed, 7 Aug 2024 16:12:48 +0000 (+0200) Subject: REORG: tools: move list_append_word to cfgparse X-Git-Tag: v3.1-dev5~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=39f2a1962097452d200e0cfea374815d21f7c512;p=thirdparty%2Fhaproxy.git REORG: tools: move list_append_word to cfgparse Let's move list_append_word to cfgparse.c as it is used only to fill cfg_cfgfiles list with configuration file names. --- diff --git a/include/haproxy/cfgparse.h b/include/haproxy/cfgparse.h index bafe985df2..1b59c89fa7 100644 --- a/include/haproxy/cfgparse.h +++ b/include/haproxy/cfgparse.h @@ -140,6 +140,7 @@ const char *cfg_find_best_match(const char *word, const struct list *list, int s int warnifnotcap(struct proxy *proxy, int cap, const char *file, int line, const char *arg, const char *hint); int failifnotcap(struct proxy *proxy, int cap, const char *file, int line, const char *arg, const char *hint); void cfg_dump_registered_keywords(); +int list_append_word(struct list *li, const char *str, char **err); /* simplified way to define a section parser */ #define REGISTER_CONFIG_SECTION(name, parse, post) \ diff --git a/include/haproxy/tools.h b/include/haproxy/tools.h index 425814f6d1..c010af2a0e 100644 --- a/include/haproxy/tools.h +++ b/include/haproxy/tools.h @@ -1034,8 +1034,6 @@ static inline unsigned long long rdtsc() * The caller is responsible for freeing the and copy * memory area using free() */ -struct list; -int list_append_word(struct list *li, const char *str, char **err); int dump_text(struct buffer *out, const char *buf, int bsize); int dump_binary(struct buffer *out, const char *buf, int bsize); diff --git a/src/cfgparse.c b/src/cfgparse.c index 8c231bbbdf..77b302e3d5 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -1717,6 +1717,38 @@ static int cfg_parse_global_def_path(char **args, int section_type, struct proxy return ret; } +/* append a copy of string (in a wordlist) at the end of the list
  • + * On failure : return 0 and filled with an error message. + * The caller is responsible for freeing the and copy + * memory area using free() + */ +int list_append_word(struct list *li, const char *str, char **err) +{ + struct wordlist *wl; + + wl = calloc(1, sizeof(*wl)); + if (!wl) { + memprintf(err, "out of memory"); + goto fail_wl; + } + + wl->s = strdup(str); + if (!wl->s) { + memprintf(err, "out of memory"); + goto fail_wl_s; + } + + LIST_APPEND(li, &wl->list); + + return 1; + +fail_wl_s: + free(wl->s); +fail_wl: + free(wl); + return 0; +} + /* * This function reads and parses the configuration file given in the argument. * Returns the error code, 0 if OK, -1 if the config file couldn't be opened, diff --git a/src/tools.c b/src/tools.c index 21e990cbf5..124b2b7415 100644 --- a/src/tools.c +++ b/src/tools.c @@ -4883,38 +4883,6 @@ unsigned char utf8_next(const char *s, int len, unsigned int *c) return code | ((p-(unsigned char *)s)&0x0f); } -/* append a copy of string (in a wordlist) at the end of the list
  • - * On failure : return 0 and filled with an error message. - * The caller is responsible for freeing the and copy - * memory area using free() - */ -int list_append_word(struct list *li, const char *str, char **err) -{ - struct wordlist *wl; - - wl = calloc(1, sizeof(*wl)); - if (!wl) { - memprintf(err, "out of memory"); - goto fail_wl; - } - - wl->s = strdup(str); - if (!wl->s) { - memprintf(err, "out of memory"); - goto fail_wl_s; - } - - LIST_APPEND(li, &wl->list); - - return 1; - -fail_wl_s: - free(wl->s); -fail_wl: - free(wl); - return 0; -} - /* indicates if a memory location may safely be read or not. The trick consists * in performing a harmless syscall using this location as an input and letting * the operating system report whether it's OK or not. For this we have the