#include <sys/timerfd.h>
#include <sys/timex.h>
#include <sys/socket.h>
+#include <resolv.h>
#include "missing.h"
#include "util.h"
m->current_server_name = m->servers;
}
+ /* Tell the resolver to reread /etc/resolv.conf, in
+ * case it changed. */
+ res_init();
+
r = sd_resolve_getaddrinfo(m->resolve, &m->resolve_query, m->current_server_name->string, "123", &hints, manager_resolve_handler, m);
if (r < 0) {
log_error("Failed to create resolver: %s", strerror(-r));
}
static int manager_add_server(Manager *m, const char *server) {
- ServerName *n;
+ ServerName *n, *tail;
assert(m);
assert(server);
return -ENOMEM;
}
- LIST_PREPEND(names, m->servers, n);
+ if (m->servers) {
+ LIST_FIND_TAIL(names, m->servers, tail);
+ LIST_INSERT_AFTER(names, m->servers, tail, n);
+ } else
+ LIST_PREPEND(names, m->servers, n);
+
return 0;
}