]> gitweb.factorcode.org Git - factor.git/blob - unmaintained/sniffer/io/filter/bsd/bsd.factor
3c32e34633cde0619acb95021eeb114f894441cb
[factor.git] / unmaintained / sniffer / io / filter / bsd / bsd.factor
1 USING: alien.c-types hexdump io io.backend io.sockets.headers
2 io.sockets.headers.bsd kernel io.sniffer io.sniffer.bsd
3 io.streams.string io.unix.backend math
4 sequences system byte-arrays io.sniffer.filter.backend
5 io.sniffer.filter.backend io.sniffer.backend ;
6 IN: io.sniffer.filter.bsd
7
8 ! http://www.iana.org/assignments/ethernet-numbers
9
10 : bpf-align ( n -- n' )
11     ! Align to next higher word size
12     "long" heap-size align ;
13
14 M: unix-io packet. ( string -- )
15     18 cut swap >byte-array bpfh.
16     (packet.) ;
17
18 M: unix-io sniffer-loop ( stream -- )
19     nl nl
20     4096 over stream-read-partial
21         dup hexdump.
22     packet.
23     sniffer-loop ;
24
25
26 ! Mac 
27 : sniff-wired ( -- )
28     "/dev/bpf0" "en0" <sniffer-spec> <sniffer> sniffer-loop ;
29
30 ! Macbook
31 : sniff-wireless ( -- )
32     "/dev/bpf0" "en1" <sniffer-spec> <sniffer> sniffer-loop ;
33