diff --git a/extra/io/unix/sockets/sockets.factor b/extra/io/unix/sockets/sockets.factor index 43c8224c2c..0787a1afde 100644 --- a/extra/io/unix/sockets/sockets.factor +++ b/extra/io/unix/sockets/sockets.factor @@ -45,9 +45,9 @@ M: connect-task task-container drop write-tasks get-global ; [ swap add-io-task stop ] callcc0 drop ; M: unix-io (client) ( addrspec -- stream ) - dup make-sockaddr >r >r + dup make-sockaddr/size >r >r protocol-family SOCK_STREAM socket-fd - dup r> r> heap-size connect + dup r> r> connect zero? err_no EINPROGRESS = or [ dup init-client-socket dup handle>duplex-stream @@ -92,7 +92,7 @@ USE: io.sockets : server-fd ( addrspec type -- fd ) >r dup protocol-family r> socket-fd dup init-server-socket - dup rot make-sockaddr heap-size bind + dup rot make-sockaddr/size bind zero? [ dup close (io-error) ] unless ; M: unix-io ( addrspec -- stream ) @@ -190,20 +190,19 @@ M: send-task task-container drop write-tasks get ; M: unix-io send ( packet addrspec datagram -- ) 3dup check-datagram-send - [ >r make-sockaddr heap-size r> wait-send ] keep + [ >r make-sockaddr/size r> wait-send ] keep pending-error ; M: local protocol-family drop PF_UNIX ; -M: local sockaddr-type drop "sockaddr-un" ; +M: local sockaddr-type drop "sockaddr-un" c-type ; M: local make-sockaddr local-path dup length 1 + max-un-path > [ "Path too long" throw ] when "sockaddr-un" AF_UNIX over set-sockaddr-un-family - dup sockaddr-un-path rot string>char-alien dup length memcpy - "sockaddr-un" ; + dup sockaddr-un-path rot string>char-alien dup length memcpy ; M: local parse-sockaddr drop diff --git a/extra/io/windows/ce/ce.factor b/extra/io/windows/ce/ce.factor index 7023d88989..b45f2df4d7 100644 --- a/extra/io/windows/ce/ce.factor +++ b/extra/io/windows/ce/ce.factor @@ -153,7 +153,7 @@ M: windows-ce-io WSASocket-flags ( -- DWORD ) 0 ; : do-connect ( addrspec -- socket ) [ tcp-socket dup ] keep - make-sockaddr heap-size + make-sockaddr/size f f f f windows.winsock:WSAConnect zero? [ winsock-error-string throw ] unless ; @@ -227,7 +227,7 @@ M: windows-ce-io send ( packet addrspec datagram -- ) [ windows.winsock:set-WSABUF-len ] keep [ windows.winsock:set-WSABUF-buf ] keep - rot make-sockaddr heap-size + rot make-sockaddr/size >r >r 1 0 0 r> r> f f windows.winsock:WSASendTo zero? [ winsock-error-string throw diff --git a/extra/io/windows/nt/sockets/sockets.factor b/extra/io/windows/nt/sockets/sockets.factor index 0767c08002..1b6288eb1d 100755 --- a/extra/io/windows/nt/sockets/sockets.factor +++ b/extra/io/windows/nt/sockets/sockets.factor @@ -29,8 +29,7 @@ TUPLE: ConnectEx-args port s* name* namelen* lpSendBuffer* dwSendDataLength* lpdwBytesSent* lpOverlapped* ptr* ; -: init-connect ( sockaddr sockaddr-name ConnectEx -- ) - >r heap-size r> +: init-connect ( sockaddr size ConnectEx -- ) [ set-ConnectEx-args-namelen* ] keep [ set-ConnectEx-args-name* ] keep f over set-ConnectEx-args-lpSendBuffer* @@ -55,7 +54,7 @@ TUPLE: ConnectEx-args port M: windows-nt-io (client) ( addrspec -- duplex-stream ) [ \ ConnectEx-args construct-empty - over make-sockaddr pick init-connect + over make-sockaddr/size pick init-connect over tcp-socket over set-ConnectEx-args-s* dup ConnectEx-args-s* add-completion dup ConnectEx-args-s* get-ConnectEx-ptr over set-ConnectEx-args-ptr* @@ -229,9 +228,9 @@ TUPLE: WSASendTo-args port >r delegate port-handle delegate win32-file-handle r> set-WSASendTo-args-s* ] keep [ - >r make-sockaddr >r + >r make-sockaddr/size >r malloc-byte-array dup free-always - r> heap-size r> + r> r> [ set-WSASendTo-args-iToLen* ] keep set-WSASendTo-args-lpTo* ] keep [ diff --git a/extra/io/windows/windows.factor b/extra/io/windows/windows.factor index f46af26568..8d6d7cb6f2 100644 --- a/extra/io/windows/windows.factor +++ b/extra/io/windows/windows.factor @@ -175,7 +175,7 @@ USE: windows.winsock : server-fd ( addrspec type -- fd ) >r dup protocol-family r> open-socket dup close-socket-later - dup rot make-sockaddr heap-size bind socket-error ; + dup rot make-sockaddr/size bind socket-error ; USE: namespaces