There is an ugly type bug in win32 sockets.pp. This patch fixes it.
ssize_t = cuint16 -- this caused a bug with fprecv/fprecvfrom and fpsend/fpsendto calls because winsock.recv[from]/winsock.send[to] calls return a longint while fprecv used an unsigned int as return value.
This caused the recv call to recieve loads of rubbish when an error occured. I changed ssize_t to Int64(as it is in unix).
Index: rtl/win32/sockets.pp =================================================================== --- rtl/win32/sockets.pp (revision 744) +++ rtl/win32/sockets.pp (working copy) @@ -26,7 +26,7 @@ cuint16=word; cuint32=cardinal; size_t =cuint32; - ssize_t=cuint16; + ssize_t=Int64; cint =longint; pcint =^cint; tsocklen=cint;
_______________________________________________ fpc-devel maillist - [email protected] http://lists.freepascal.org/mailman/listinfo/fpc-devel
