After poking around some more I realized that changing the MSG_WAITALL
flag used for recv to 0 (no flags) gave recv the same behavior as read
and henced fixed the read-socket word on OpenBSD.

Please see the attached patch.

--- socket.fs.old	Tue Nov  8 15:34:30 2022
+++ socket.fs	Tue Nov  8 15:35:21 2022
@@ -476,7 +476,7 @@
 
 : (rs)  ( socket c-addr maxlen -- c-addr size ) 
     third dup >r false blocking-mode  rot fileno -rot
-    over >r msg_waitall recv
+    over >r 0 recv
     dup 0<  IF  0 max
 	errno dup 0<> swap ewouldblock <> and ?ior
     THEN

Best,
-- 
nature

Reply via email to