2008-06-10 13:16:21 -04:00
|
|
|
|
2008-06-12 02:49:41 -04:00
|
|
|
USING: kernel sequences sorting math math.order macros fry ;
|
2008-06-10 13:16:21 -04:00
|
|
|
|
|
|
|
IN: dns.util
|
|
|
|
|
|
|
|
: tri-chain ( obj p q r -- x y z )
|
|
|
|
>r >r call dup r> call dup r> call ; inline
|
|
|
|
|
|
|
|
MACRO: 1if ( test then else -- ) '[ dup @ , , if ] ;
|
|
|
|
|
2008-06-12 02:49:41 -04:00
|
|
|
! : 1if ( test then else -- ) >r >r >r dup r> call r> r> if ; inline ;
|
|
|
|
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
|
|
|
|
: sort-largest-first ( seq -- seq ) [ [ length ] compare ] sort reverse ;
|
|
|
|
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
|
2008-06-16 17:29:11 -04:00
|
|
|
: longer? ( seq seq -- ? ) [ length ] bi@ > ;
|
|
|
|
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
|
|
|
|
USING: io.sockets accessors ;
|
|
|
|
|
|
|
|
TUPLE: packet data addr socket ;
|
|
|
|
|
|
|
|
: receive-packet ( socket -- packet ) [ receive ] keep packet boa ;
|
|
|
|
|
|
|
|
: respond ( packet -- ) [ data>> ] [ addr>> ] [ socket>> ] tri send ;
|
|
|
|
|