
#include "V_s_lc.h"
#include "V_S_UC.h"
#include "sys_socket.h"
/*
*/
	global int dbn_recvfrom = 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_recvfr(s, b, n, f, a, l)
	int  s;
	char*b;
	Sizt n;
	int  f;
	SKin*a;
	int *l;
{	int  r, i;
	SKAD*ap;
	File *fp;


	if (fp = d_openfile(f))
		fp->reads++;
	errno = 0;
	ap = (SKAD*)a;

	r = recvfrom(s, b, n, f, ap, l);

	V6S "recvfrom(%d,%08lX,%d,%d,%08lX,%08lX)=%d (%d reads) [Err %d=%s=%s]"
		,s, b, n, f, ap, l, r, (fp?fp->reads:0), Errinfo D;
	++dbn_recvfrom;
	if (r > 0) {
		P6s "%s\tRecv %d bytes <== %08X.%04X %s.",Vtime(),r
			,IPhost(a),IPport(a),SymSockAddr(a) D;
		if (a && l && *l) H6(a,*l,"RecvFrom");
		if (b && r) H6(b ,r	,"Message");
	}
	if (Vchknull)
		if (i = Vcntnulls(b,r))
			V3 "### String of %d nulls received from sock %d.",i,s D;
	return(r);
}
