105-util_sock.c.diff [plain text]
--- samba/source/lib/util_sock.c.orig Thu Dec 18 15:12:42 2003
+++ samba/source/lib/util_sock.c Fri Dec 19 08:31:16 2003
@@ -216,7 +216,11 @@ ssize_t read_socket_with_timeout(int fd,
if (mincnt == 0) mincnt = maxcnt;
while (nread < mincnt) {
+ #ifdef USES_RECVFROM
+ readret = sys_recvfrom(fd, buf + nread, maxcnt - nread, MSG_WAITALL, NULL, NULL);
+ #else
readret = sys_read(fd, buf + nread, maxcnt - nread);
+ #endif
if (readret == 0) {
DEBUG(5,("read_socket_with_timeout: blocking read. EOF from client.\n"));
@@ -265,7 +269,11 @@ ssize_t read_socket_with_timeout(int fd,
return -1;
}
+ #ifdef USES_RECVFROM
+ readret = sys_recvfrom(fd, buf+nread, maxcnt-nread, MSG_WAITALL, NULL, NULL);
+ #else
readret = sys_read(fd, buf+nread, maxcnt-nread);
+ #endif
if (readret == 0) {
/* we got EOF on the file descriptor */
@@ -300,7 +308,11 @@ ssize_t read_data(int fd,char *buffer,si
smb_read_error = 0;
while (total < N) {
+ #ifdef USES_RECVFROM
+ ret = sys_recvfrom(fd,buffer + total,N - total,MSG_WAITALL,NULL,NULL);
+ #else
ret = sys_read(fd,buffer + total,N - total);
+ #endif
if (ret == 0) {
DEBUG(10,("read_data: read of %d returned 0. Error = %s\n", (int)(N - total), strerror(errno) ));
@@ -330,7 +342,11 @@ static ssize_t read_socket_data(int fd,c
smb_read_error = 0;
while (total < N) {
+ #ifdef USES_RECVFROM
+ ret = sys_recvfrom(fd,buffer + total,N - total,MSG_WAITALL,NULL,NULL);
+ #else
ret = sys_read(fd,buffer + total,N - total);
+ #endif
if (ret == 0) {
DEBUG(10,("read_socket_data: recv of %d returned 0. Error = %s\n", (int)(N - total), strerror(errno) ));