]> gitweb.factorcode.org Git - factor.git/blob - unmaintained/dns/util/util.factor
33d6ced84b6d0b0c61963e42922f0290899d5536
[factor.git] / unmaintained / dns / util / util.factor
1
2 USING: kernel sequences sorting math math.order macros fry ;
3
4 IN: dns.util
5
6 : tri-chain ( obj p q r -- x y z )
7   [ [ call dup ] dip call dup ] dip call ; inline
8
9 MACRO: 1if ( test then else -- ) '[ dup @ _ _ if ] ;
10
11 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
13 : sort-largest-first ( seq -- seq ) [ length ] sort-with reverse ;
14
15 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16
17 : longer? ( seq seq -- ? ) [ length ] bi@ > ;
18
19 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
20
21 USING: io.sockets accessors ;
22
23 TUPLE: packet data addr socket ;
24
25 : receive-packet ( socket -- packet ) [ receive ] keep packet boa ;
26
27 : respond ( packet -- ) [ data>> ] [ addr>> ] [ socket>> ] tri send ;
28
29 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
30
31 : forever ( quot: ( -- ) -- ) [ call ] [ forever ] bi ; inline recursive