- if (ltype == DNS_SERVER_FALLBACK)
- l = &m->fallback_dns_servers;
- else
- l = &m->dns_servers;
-
- /* Empty assignment means clear the list */
- if (isempty(rvalue)) {
- while (*l)
- dns_server_free(*l);
-
- return 0;
+ if (isempty(rvalue))
+ /* Empty assignment means clear the list */
+ manager_flush_dns_servers(m, ltype);
+ else {
+ /* Otherwise add to the list */
+ r = manager_parse_dns_server(m, ltype, rvalue);
+ if (r < 0) {
+ log_syntax(unit, LOG_ERR, filename, line, -r, "Failed to parse DNS server string '%s'. Ignoring.", rvalue);
+ return 0;
+ }