Merge pull request #1761 from ssahani/word

core: parse socket port to extract_first_word
This commit is contained in:
Lennart Poettering 2015-11-04 20:16:14 +01:00
commit a6bff4a742
1 changed files with 13 additions and 9 deletions

View File

@ -1582,8 +1582,7 @@ int config_parse_service_sockets(
void *userdata) {
Service *s = data;
const char *word, *state;
size_t l;
const char *p;
int r;
assert(filename);
@ -1591,14 +1590,21 @@ int config_parse_service_sockets(
assert(rvalue);
assert(data);
FOREACH_WORD_QUOTED(word, l, rvalue, state) {
_cleanup_free_ char *t = NULL, *k = NULL;
p = rvalue;
for(;;) {
_cleanup_free_ char *word = NULL, *t = NULL, *k = NULL;
t = strndup(word, l);
if (!t)
r = extract_first_word(&p, &word, NULL, 0);
if (r == 0)
break;
if (r == -ENOMEM)
return log_oom();
if (r < 0) {
log_syntax(unit, LOG_ERR, filename, line, r, "Trailing garbage in sockets, ignoring: %s", rvalue);
break;
}
r = unit_name_printf(UNIT(s), t, &k);
r = unit_name_printf(UNIT(s), word, &k);
if (r < 0) {
log_syntax(unit, LOG_ERR, filename, line, r, "Failed to resolve specifiers, ignoring: %m");
continue;
@ -1617,8 +1623,6 @@ int config_parse_service_sockets(
if (r < 0)
log_syntax(unit, LOG_ERR, filename, line, r, "Failed to add dependency on %s, ignoring: %m", k);
}
if (!isempty(state))
log_syntax(unit, LOG_ERR, filename, line, 0, "Trailing garbage, ignoring.");
return 0;
}