svn commit: samba r3318 - in branches/SAMBA_4_0/source/lib/socket: .

tridge at samba.org tridge at samba.org
Thu Oct 28 11:57:20 GMT 2004


Author: tridge
Date: 2004-10-28 11:57:20 +0000 (Thu, 28 Oct 2004)
New Revision: 3318

WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source/lib/socket&rev=3318&nolog=1

Log:
generate random STATUS_MORE_ENTRIES errors (1 in 10 packets) as well
as randomly short recv/send when socket:testnonblock is enabled



Modified:
   branches/SAMBA_4_0/source/lib/socket/socket.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/socket/socket.c
===================================================================
--- branches/SAMBA_4_0/source/lib/socket/socket.c	2004-10-28 08:37:46 UTC (rev 3317)
+++ branches/SAMBA_4_0/source/lib/socket/socket.c	2004-10-28 11:57:20 UTC (rev 3318)
@@ -158,7 +158,11 @@
 	}
 
 	if ((sock->flags & SOCKET_FLAG_TESTNONBLOCK) && wantlen > 1) {
-		return sock->ops->recv(sock, buf, 1+(random() % (wantlen-1)), nread, flags);
+		if (random() % 10 == 0) {
+			*nread = 0;
+			return STATUS_MORE_ENTRIES;
+		}
+		return sock->ops->recv(sock, buf, 1+(random() % wantlen), nread, flags);
 	}
 
 	return sock->ops->recv(sock, buf, wantlen, nread, flags);
@@ -182,7 +186,11 @@
 
 	if ((sock->flags & SOCKET_FLAG_TESTNONBLOCK) && blob->length > 1) {
 		DATA_BLOB blob2 = *blob;
-		blob2.length = 1+(random() % (blob2.length-1));
+		if (random() % 10 == 0) {
+			*sendlen = 0;
+			return STATUS_MORE_ENTRIES;
+		}
+		blob2.length = 1+(random() % blob2.length);
 		return sock->ops->send(sock, &blob2, sendlen, flags);
 	}
 



More information about the samba-cvs mailing list