assert(m);
- r = config_parse(NULL,
- "/etc/systemd/resolved.conf", NULL,
+ r = config_parse(NULL, "/etc/systemd/resolved.conf", NULL,
"Resolve\0",
- config_item_perf_lookup, (void*) resolved_gperf_lookup,
+ config_item_perf_lookup, resolved_gperf_lookup,
false, false, m);
if (r < 0)
log_warning("Failed to parse configuration file: %s", strerror(-r));
l = recvmsg(fd, &mh, 0);
if (l < 0) {
- if (errno == EAGAIN)
+ if (errno == EAGAIN || errno == EINTR)
return 0;
return -errno;
l = recvmsg(fd, &mh, 0);
if (l < 0) {
- if (errno == EAGAIN)
+ if (errno == EAGAIN || errno == EINTR)
return 0;
return -errno;
if (r <= 0)
return r;
- t = hashmap_get(m->dns_query_transactions, UINT_TO_PTR(DNS_PACKET_HEADER(p)->id));
+ t = hashmap_get(m->dns_query_transactions, UINT_TO_PTR(DNS_PACKET_ID(p)));
if (!t)
return 0;
- return dns_query_transaction_reply(t, p);
+ dns_query_transaction_reply(t, p);
+ return 0;
}
static int on_dns_ipv6_packet(sd_event_source *s, int fd, uint32_t revents, void *userdata) {
if (r <= 0)
return r;
- t = hashmap_get(m->dns_query_transactions, UINT_TO_PTR(DNS_PACKET_HEADER(p)->id));
+ t = hashmap_get(m->dns_query_transactions, UINT_TO_PTR(DNS_PACKET_ID(p)));
if (!t)
return 0;
- return dns_query_transaction_reply(t, p);
+ dns_query_transaction_reply(t, p);
+ return 0;
}
int manager_dns_ipv4_fd(Manager *m) {