Peeking BPF

Lev Walkin vlm at netli.com
Tue Jun 29 10:07:25 PDT 2004


Ivan Voras wrote:
> 
> I need to convert this code:
> 
> ret = recvfrom(thisint->sockInt, &resultframe, 1520, MSG_PEEK, 0, 0);
> if (ret > 0) return TRUE;
> 
> to use BPF. Essentialy, how to find out if a packet is available over 
> the BPF interface?

try to read() it and read() will hang there until there is data in it.
alternatively, use poll() or select() to check for readability event.

	char resultBuffer[65536];
	ret = read(thisint->bpfInt, resultBuffer, sizeof(resultBuffer));
	if(ret > 0) return TRUE;


-- 
Lev Walkin
vlm at netli.com


More information about the freebsd-hackers mailing list