summaryrefslogtreecommitdiffstats
path: root/src/resolve/resolved-dns-stream.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-09-16 18:26:40 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-09-16 18:26:40 +0000
commit34f1d05ca3b350257f1d9ddb0aba57f129c27c67 (patch)
treeeccee464f1cccec702d6b9a87f1732c343bd74c2 /src/resolve/resolved-dns-stream.c
parentAdding debian version 256.4-3. (diff)
downloadsystemd-34f1d05ca3b350257f1d9ddb0aba57f129c27c67.tar.xz
systemd-34f1d05ca3b350257f1d9ddb0aba57f129c27c67.zip
Merging upstream version 256.5.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/resolve/resolved-dns-stream.c')
-rw-r--r--src/resolve/resolved-dns-stream.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/resolve/resolved-dns-stream.c b/src/resolve/resolved-dns-stream.c
index 1a43d0b..8c15120 100644
--- a/src/resolve/resolved-dns-stream.c
+++ b/src/resolve/resolved-dns-stream.c
@@ -322,6 +322,12 @@ static int on_stream_io(sd_event_source *es, int fd, uint32_t revents, void *use
return dns_stream_complete(s, -r);
}
+ if (revents & EPOLLERR) {
+ socklen_t errlen = sizeof(r);
+ if (getsockopt(s->fd, SOL_SOCKET, SO_ERROR, &r, &errlen) == 0)
+ return dns_stream_complete(s, r);
+ }
+
if ((revents & EPOLLOUT) &&
s->write_packet &&
s->n_written < sizeof(s->write_size) + s->write_packet->size) {