]> gitweb.factorcode.org Git - factor.git/commitdiff
io.sockets.secure.windows: make ssl-sockets all non-blocking
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 19 May 2023 22:15:28 +0000 (15:15 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 19 May 2023 22:15:28 +0000 (15:15 -0700)
basis/io/sockets/secure/windows/windows.factor

index 16de5da82b950b393a8a4f136389c664e80c4856..1ebb40473a46d0777c6b4c56b94b963cb3fd746d 100644 (file)
@@ -58,7 +58,8 @@ M: openssl ssl-certificate-verification-supported? f ;
 M: windows socket-handle handle>> alien-address ;
 
 M: secure remote>handle
-    [ addrspec>> remote>handle ] [ hostname>> ] bi <ssl-socket> ;
+    [ addrspec>> remote>handle dup FIONBIO 1 set-ioctl-socket ]
+    [ hostname>> ] bi <ssl-socket> ;
 
 GENERIC: windows-socket-handle ( obj -- handle )
 M: ssl-handle windows-socket-handle file>> ;
@@ -69,11 +70,9 @@ M: secure (get-local-address)
 
 M: secure parse-sockaddr addrspec>> parse-sockaddr f <secure> ;
 
-M:: secure establish-connection ( client-out addrspec -- )
-    client-out handle>> file>> :> socket
-    socket FIONBIO 1 set-ioctl-socket
-    socket <output-port> addrspec addrspec>> establish-connection
-    client-out addrspec secure-connection
-    socket FIONBIO 0 set-ioctl-socket ;
+M: secure establish-connection
+    [
+        [ handle>> file>> <output-port> ] [ addrspec>> ] bi* establish-connection
+    ] [ secure-connection ] 2bi ;
 
 M: windows non-ssl-socket? win32-socket? ;