svn commit: samba r7034 - in branches/SAMBA_3_0/source/lib: .

jra at samba.org jra at samba.org
Fri May 27 17:47:25 GMT 2005


Author: jra
Date: 2005-05-27 17:47:24 +0000 (Fri, 27 May 2005)
New Revision: 7034

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=7034

Log:
Revert change in util_sock.c from derrell until this is
discussed more on samba-technical.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/lib/util_sock.c


Changeset:
Modified: branches/SAMBA_3_0/source/lib/util_sock.c
===================================================================
--- branches/SAMBA_3_0/source/lib/util_sock.c	2005-05-27 16:21:19 UTC (rev 7033)
+++ branches/SAMBA_3_0/source/lib/util_sock.c	2005-05-27 17:47:24 UTC (rev 7034)
@@ -554,8 +554,7 @@
 
 BOOL receive_smb_raw(int fd, char *buffer, unsigned int timeout)
 {
-        char *p;
-	ssize_t n_remaining, n_read, len, ret;
+	ssize_t len,ret;
 
 	smb_read_error = 0;
 
@@ -571,20 +570,18 @@
 		 * variables still suck :-). JRA.
 		 */
 
-		if (smb_read_error == 0) {
+		if (smb_read_error == 0)
 			smb_read_error = READ_ERROR;
-                }
 		return False;
 	}
 
 	/*
-         * A WRITEX with CAP_LARGE_WRITEX can be 64k worth of data plus 65
-         * bytes of header. Don't print the error if this fits.... JRA.
-         */
+	 * A WRITEX with CAP_LARGE_WRITEX can be 64k worth of data plus 65 bytes
+	 * of header. Don't print the error if this fits.... JRA.
+	 */
 
 	if (len > (BUFFER_SIZE + LARGE_WRITEX_HDR_SIZE)) {
-		DEBUG(0,("Invalid packet length! (%lu bytes).\n",
-                         (unsigned long)len));
+		DEBUG(0,("Invalid packet length! (%lu bytes).\n",(unsigned long)len));
 		if (len > BUFFER_SIZE + (SAFETY_MARGIN/2)) {
 
 			/*
@@ -593,65 +590,23 @@
 			 * variables still suck :-). JRA.
 			 */
 
-			if (smb_read_error == 0) {
+			if (smb_read_error == 0)
 				smb_read_error = READ_ERROR;
-                        }
 			return False;
 		}
 	}
 
 	if(len > 0) {
-                /*
-                 * Read the remainder of the data.  Don't use a timeout since
-                 * the overhead of it is not usually necessary.
-                 */
-                p = buffer + 4;         /* initial read buffer pointer */
-                n_remaining = len;      /* initial length to be read */
-                n_read = 0;             /* initialize number of bytes read */
-
-                ret = read_socket_data(fd, p, n_remaining);
-
-                if ((ret < 0 && errno == EAGAIN) ||
-                    (ret > 0 && ret < n_remaining)) {
-                        /*
-                         * We were able to read the length earlier, but all of
-                         * the remainder of the data is not yet available to
-                         * us (as indicated by EAGAIN if we got nothing, or by
-                         * the amount of just-read data not matching the
-                         * packet length).  Read again, this time awaiting the
-                         * data to arrive for a short period of time.
-                         */
-
-                        /* If partial read occurred... */
-                        if (ret > 0) {
-                                /* ... then update buffer pointer and counts */
-                                p += ret;
-                                n_read += ret;
-                                n_remaining -= ret;
-                        }
-
-                        ret = read_socket_with_timeout(fd, p, n_remaining,
-                                                       n_remaining, 20000);
-                        if (ret > 0) {
-                                n_read += ret;
-                        }
-                } else {
-                        n_read = ret;
-                }
-
-		if (n_read != len) {
-			if (smb_read_error == 0) {
+		ret = read_socket_data(fd,buffer+4,len);
+		if (ret != len) {
+			if (smb_read_error == 0)
 				smb_read_error = READ_ERROR;
-                        }
 			return False;
 		}
 		
-		/*
-                 * not all of samba3 properly checks for packet-termination of
-                 * strings. This ensures that we don't run off into empty
-                 * space.
-                 */
-		SSVAL(buffer+4, len, 0);
+		/* not all of samba3 properly checks for packet-termination of strings. This
+		   ensures that we don't run off into empty space. */
+		SSVAL(buffer+4,len, 0);
 	}
 
 	return True;



More information about the samba-cvs mailing list