int config_parse_servers( const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata) { Manager *m = userdata; int r; assert(filename); assert(lvalue); assert(rvalue); if (isempty(rvalue)) manager_flush_server_names(m, ltype); else { r = manager_parse_server_string(m, ltype, rvalue); if (r < 0) { log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse NTP server string '%s'. Ignoring.", rvalue); return 0; } } return 0; }
void manager_free(Manager *m) { if (!m) return; manager_disconnect(m); manager_flush_server_names(m, SERVER_SYSTEM); manager_flush_server_names(m, SERVER_LINK); manager_flush_server_names(m, SERVER_FALLBACK); sd_event_source_unref(m->event_retry); sd_event_source_unref(m->network_event_source); sd_network_monitor_unref(m->network_monitor); sd_resolve_unref(m->resolve); sd_event_unref(m->event); free(m); }