mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-28 14:21:00 +01:00
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.
This commit is contained in:
parent
70b842e847
commit
39f2a19620
@ -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) \
|
||||
|
||||
@ -1034,8 +1034,6 @@ static inline unsigned long long rdtsc()
|
||||
* The caller is responsible for freeing the <err> and <str> 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);
|
||||
|
||||
@ -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 <str> (in a wordlist) at the end of the list <li>
|
||||
* On failure : return 0 and <err> filled with an error message.
|
||||
* The caller is responsible for freeing the <err> and <str> 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,
|
||||
|
||||
32
src/tools.c
32
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 <str> (in a wordlist) at the end of the list <li>
|
||||
* On failure : return 0 and <err> filled with an error message.
|
||||
* The caller is responsible for freeing the <err> and <str> 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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user