From 7c44b5195676203ab839d1a11d7cf0886366d589 Mon Sep 17 00:00:00 2001 From: Don Date: Tue, 8 Mar 2022 10:44:34 -0800 Subject: nonblock: restore setsockopt method to curlx_nonblock The implementation using setsockopt was removed when BeOS support was purged. However this functionality wasn't BeOS specific, it is still used by for example Orbis OS (Playstation 4/5 OS). Closes #8562 --- lib/nonblock.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'lib/nonblock.c') diff --git a/lib/nonblock.c b/lib/nonblock.c index 92fb22ec2..28f6e7588 100644 --- a/lib/nonblock.c +++ b/lib/nonblock.c @@ -73,6 +73,12 @@ int curlx_nonblock(curl_socket_t sockfd, /* operate on this */ long flags = nonblock ? 1L : 0L; return IoctlSocket(sockfd, FIONBIO, (char *)&flags); +#elif defined(HAVE_SETSOCKOPT_SO_NONBLOCK) + + /* Orbis OS */ + long b = nonblock ? 1L : 0L; + return setsockopt(sockfd, SOL_SOCKET, SO_NONBLOCK, &b, sizeof(b)); + #else # error "no non-blocking method was found/used/set" #endif -- cgit v1.2.1