diff --git a/doc/Changelog b/doc/Changelog index a1c853897..b1e0a1fa0 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +12 July 2018: Wouter + - Fix to improve systemd socket activation code file descriptor + assignment. + 10 July 2018: Wouter - Note in documentation that the cert name match code needs OpenSSL 1.1.0 or later to be enabled. diff --git a/services/listen_dnsport.c b/services/listen_dnsport.c index 248cad366..4638285e1 100644 --- a/services/listen_dnsport.c +++ b/services/listen_dnsport.c @@ -144,8 +144,17 @@ systemd_get_activated(int family, int socktype, int listen, for(i = 0; i < r; i++) { if(sd_is_socket(SD_LISTEN_FDS_START + i, family, socktype, listen)) { - s = SD_LISTEN_FDS_START + i; - break; + if( (family == AF_INET || family == AF_INET6) ) { + if(sd_is_socket_sockaddr( + SD_LISTEN_FDS_START + i, family, + addr, addrlen)) { + s = SD_LISTEN_FDS_START + i; + break; + } + } else { + s = SD_LISTEN_FDS_START + i; + break; + } } } if (s == -1) {