
#include "V_s_lc.h"
#include "V_S_UC.h"
#include "sys_socket.h"
/*
*/
 global int dbn_recv = 0;	/* Call counter */
extern Flag Vchknull;		/* If true, check for nulls */
extern int  Vmaxnull;		/* If true, max length string of nulls */
extern int  Vlennull;		/* Longest string of nulls so far */

d_recv(s,b,n,f)
	int   s;	/* Socket file handle */
	char *b;	/* Pointer to data */
	Sizt  n; 	/* Number of bytes */
	int   f;	/* Flags: MSG_OOB | MSG_DONTROUTE */
{	int  r,i;
	File *fp;


	if (fp = d_openfile(s))
		fp->reads++;
	errno = 0;

	r = recv(s,b,n,f);

	V6S "Got recv(%d,%08lX,%d,%d)=%d (%d reads) [Err %d=%s=%s]"
		,s,b,n,f,r,(fp?fp->reads:0),Errinfo D;
	++dbn_recv;
	if (r > 0) {
		P6s "%s\tRecv %d bytes%04X %s.",Vtime(),r D;
		if (b && r) H6(b ,r	,"Message");
	}
	if (Vchknull)
		if (i = Vcntnulls(b,r))
			V3 "### String of %d nulls written to sock %d.",i,s D;
	return(r);
}
