[Bug 7506] ftp to remote server does short writes

Wine Bugs wine-bugs at winehq.org
Tue May 29 02:20:26 CDT 2007


http://bugs.winehq.org/show_bug.cgi?id=7506





------- Additional Comments From damjan.jov at gmail.com  2007-29-05 02:20 -------
"I thought send() is supposed to take care of buffering, delays, etc."

UNIX semantics of send/write: if there is any free space in the buffer, copy as
much of the given data as will fit into the buffer, and return immediately. If
there is no free space in the buffer, wait until any space becomes available,
write as many bytes as can instantly be written, and return immediately.

Windows semantics of blocking send: send the entire buffer given, waiting as
long as necessary, and only return when either the full amount is sent, or an
error occurs.

So a short write/send are perfectly normal on UNIX, but on Windows they're not.
That's why the bug went undetected for so long. As far as I am concerned this is
an evil ploy by Microsoft - because their semantics are a subset of the UNIX
semantics, UNIX software can be simply recompiled to work on Windows, but
software made for Windows needs a lot more work to port to UNIX.

My patch makes send() loop until the entire buffer is written, as some Windows
apps clearly expect. It went in a few versions back, so try the latest version
of wine and report whether it fixes your apps.


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list