summaryrefslogtreecommitdiff
path: root/src/resolve/resolved-manager.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2014-07-16 20:15:47 +0200
committerLennart Poettering <lennart@poettering.net>2014-07-16 20:15:47 +0200
commitad867662936a4c7ab2c7116d804c272338801231 (patch)
treea7583840a30702971f5c38b31a12fe7cb69c2fd6 /src/resolve/resolved-manager.c
parentc73ce96b569e2f10dff64b7dc0bd271972674c2a (diff)
resolved: support for TCP DNS queries
Diffstat (limited to 'src/resolve/resolved-manager.c')
-rw-r--r--src/resolve/resolved-manager.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/resolve/resolved-manager.c b/src/resolve/resolved-manager.c
index 09b758f3f4..3d2979dbbe 100644
--- a/src/resolve/resolved-manager.c
+++ b/src/resolve/resolved-manager.c
@@ -577,7 +577,7 @@ int manager_dns_ipv4_recv(Manager *m, DnsPacket **ret) {
l = recvmsg(fd, &mh, 0);
if (l < 0) {
- if (errno == EAGAIN)
+ if (errno == EAGAIN || errno == EINTR)
return 0;
return -errno;
@@ -626,7 +626,7 @@ int manager_dns_ipv6_recv(Manager *m, DnsPacket **ret) {
l = recvmsg(fd, &mh, 0);
if (l < 0) {
- if (errno == EAGAIN)
+ if (errno == EAGAIN || errno == EINTR)
return 0;
return -errno;
@@ -657,7 +657,8 @@ static int on_dns_ipv4_packet(sd_event_source *s, int fd, uint32_t revents, void
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) {
@@ -674,7 +675,8 @@ static int on_dns_ipv6_packet(sd_event_source *s, int fd, uint32_t revents, void
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) {