if (nreceived) { waittime = 2 * tmax / 1000000; if (!waittime) waittime = 1; } else waittime = maxwait;
catcher(){	int waittime;	int save_errno = errno;	pinger();	(void)signal(SIGALRM, catcher);	if (!npackets || ntransmitted < npackets)		alarm((u_int)interval);	else {		if (nreceived) {			waittime = 2 * tmax / 1000000;			if (!waittime)				waittime = 1;		} else			waittime = maxwait;		(void)signal(SIGALRM, finish);		(void)alarm((u_int)waittime);	}	errno = save_errno;}