Hi, Writing >=2GB to a socketConnection (e.g. via writeBin) does not work correctly, because of this int typecast in modules/internet/sockconn.c:
static size_t sock_write(const void *ptr, size_t size, size_t nitems,
Rconnection con)
{
Rsockconn this = (Rsockconn)con->private;
ssize_t n = R_SockWrite(this->fd, ptr, (int)(size * nitems),
this->timeout)/((ssize_t)size);
return n > 0 ? n : 0;
}
which seems uncalled for, given:
ssize_t R_SockWrite(int sockp, const void *buf, size_t len, int timeout)
Is there a rationale for it, or should it be fixed? Best, -- Zafer