http://bugzilla.spamassassin.org/show_bug.cgi?id=3506





------- Additional Comments From [EMAIL PROTECTED]  2004-07-27 14:49 -------
Windows doen't define ssize_t, at least not in VC++ 6.0. It has been added to
some compatibility layer sometime between then and the most recent Visual
Studio.Net 2003.

Cygwin declares the functions to return int, but it does define the ssize_t 
type.

I don't know if Windows is the only platform that does not define ssize_t and if
Cygwin and Windows are the only ones that declare read and rcvd as returning 
int.

I believe that on 64 bit platforms ssize_t is a 64 bit signed integer and int is
a 32 bit signed integer. On Windows 2000 64 bit, size_t is an unsigned 64 bit
integer, but it appears that read and rcvd are declared to return int.

Right now we are reading only one byte at a time. If we changed to reading into
a big buffer and parsing lines out of that, and we can allocate 2**32 or more
bytes in the buffer on 64 bit platforms, then we would have to use ssize_t
instead of int.

I propose that the simplest way of dealing with this mess is the patch that I
submitted, as it avoids the conditional preprocesor code that would be required
if we do anything with ssize_t, because of Windows, and it will work even on 64
bit platforms that define ssize_t because we always read less than 2**32 bytes.




------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

Reply via email to