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 (!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 (!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) {