]> git.ipfire.org Git - thirdparty/systemd.git/commit
resolved: Make event flags logic robust for DoT
authorJoan Bruguera <joanbrugueram@gmail.com>
Mon, 31 Jan 2022 20:28:21 +0000 (21:28 +0100)
committerJoan Bruguera <joanbrugueram@gmail.com>
Tue, 1 Feb 2022 18:24:40 +0000 (19:24 +0100)
commiteff107736e17bfe43680c42ae39baa3d41fb4715
tree360320b21decdc3533fe415bafa3f7588e518ceb
parentbb7031bcaaf933da408250c00a1a524b0b8e6383
resolved: Make event flags logic robust for DoT

Since when handling a DNS over TLS stream, the TLS library can override the
requested events through dnstls_events for handshake/shutdown purposes,
obtaining the event flags through sd_event_source_get_io_events and checking
for EPOLLIN or EPOLLOUT does not really tell us whether we want to read/write
a packet. Instead, it could just be OpenSSL/GnuTLS doing something else.

To make the logic more robust (and simpler), save the flags that tell us
whether we want to read/write a packet, and check them instead of the IO flags.

(& use uint32_t for the flags like in sd_event_source_set_io_events prototype)
src/resolve/resolved-dns-stream.c
src/resolve/resolved-dns-stream.h