-static int manager_add_server(Manager *m, const char *server) {
- ServerName *n, *tail;
-
- assert(m);
- assert(server);
-
- n = new0(ServerName, 1);
- if (!n)
- return -ENOMEM;
-
- n->string = strdup(server);
- if (!n->string) {
- free(n);
- return -ENOMEM;
- }
-
- LIST_FIND_TAIL(names, m->servers, tail);
- LIST_INSERT_AFTER(names, m->servers, tail, n);
-
- return 0;
-}
-
-int manager_add_server_string(Manager *m, const char *string) {
- const char *word, *state;
- size_t l;
- int r;
-
- assert(m);
- assert(string);
-
- FOREACH_WORD_QUOTED(word, l, string, state) {
- char t[l+1];
-
- memcpy(t, word, l);
- t[l] = 0;
-
- r = manager_add_server(m, t);
- if (r < 0)
- log_error("Failed to add server %s to configuration, ignoring: %s", t, strerror(-r));
- }
- if (!isempty(state))
- log_warning("Trailing garbage at the end of server list, ignoring.");
-
- return 0;
-}
-