]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
httpAddrConnect2: Check for error if POLLHUP is in valid revents
authorzdohnal <zdohnal@redhat.com>
Thu, 14 Dec 2023 16:33:40 +0000 (17:33 +0100)
committerGitHub <noreply@github.com>
Thu, 14 Dec 2023 16:33:40 +0000 (17:33 +0100)
Some Linux kernel versions put POLLOUT|POLLHUP into revents when client tries to connect with httpAddrConnect2(), which makes the connection fail.
Let's check the option SO_ERROR before scratching the attempt - if there is no error, remove POLLHUP from revents.

I've re-purposed previously Solaris-only code to be used everywhere if the conditions are met - this should prevent bigger delays than necessary.

Slightly different issue than #827, but with similar symptoms (kernel sending POLLOUT|POLLHUP).


Trivial merge