From 10477bf7dd3c9b60341ab65da76313797ba0ebae Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Sat, 14 Jun 2008 13:09:54 -0500 Subject: [PATCH 1/5] newfx: a few additions --- extra/newfx/newfx.factor | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/extra/newfx/newfx.factor b/extra/newfx/newfx.factor index be30dfe370..0504744240 100644 --- a/extra/newfx/newfx.factor +++ b/extra/newfx/newfx.factor @@ -189,4 +189,9 @@ METHOD: as-mutate { object object assoc } set-at ; ! A note about the 'mutate' qualifier. Other words also technically mutate ! their primary object. However, the 'mutate' qualifier is supposed to -! indicate that this is the main objective of the word, as a side effect. \ No newline at end of file +! indicate that this is the main objective of the word, as a side effect. + +: adjoin ( seq elt -- seq ) over sets:adjoin ; +: adjoin-on ( elt seq -- seq ) sets:adjoin ; +: adjoined ( set elt -- set ) swap sets:adjoin ; +: adjoined-on ( elt set -- ) sets:adjoin ; \ No newline at end of file From a36307a11b7f4d4a1cb60cb7d4a33d2910a70916 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Sat, 14 Jun 2008 14:44:32 -0500 Subject: [PATCH 2/5] newfx: minor fix --- extra/newfx/newfx.factor | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extra/newfx/newfx.factor b/extra/newfx/newfx.factor index 0504744240..e7d92bba58 100644 --- a/extra/newfx/newfx.factor +++ b/extra/newfx/newfx.factor @@ -192,6 +192,6 @@ METHOD: as-mutate { object object assoc } set-at ; ! indicate that this is the main objective of the word, as a side effect. : adjoin ( seq elt -- seq ) over sets:adjoin ; -: adjoin-on ( elt seq -- seq ) sets:adjoin ; -: adjoined ( set elt -- set ) swap sets:adjoin ; +: adjoin-on ( elt seq -- seq ) tuck sets:adjoin ; +: adjoined ( set elt -- ) swap sets:adjoin ; : adjoined-on ( elt set -- ) sets:adjoin ; \ No newline at end of file From 094cb776fb8dd994ca8bd60dccd0870cbcabdd4e Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Sat, 14 Jun 2008 14:45:37 -0500 Subject: [PATCH 3/5] dns.server: add CNAME to rr->rdata-names --- extra/dns/server/server.factor | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/extra/dns/server/server.factor b/extra/dns/server/server.factor index de36d661aa..7d52ff9e88 100644 --- a/extra/dns/server/server.factor +++ b/extra/dns/server/server.factor @@ -50,9 +50,10 @@ IN: dns.server : rr->rdata-names ( rr -- names/f ) { - { [ dup type>> NS = ] [ rdata>> {1} ] } - { [ dup type>> MX = ] [ rdata>> exchange>> {1} ] } - { [ t ] [ drop f ] } + { [ dup type>> NS = ] [ rdata>> {1} ] } + { [ dup type>> MX = ] [ rdata>> exchange>> {1} ] } + { [ dup type>> CNAME = ] [ rdata>> {1} ] } + { [ t ] [ drop f ] } } cond ; From b8f1d71d2eb6874ae81a42fdef1855bd8eb6ac75 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Sat, 14 Jun 2008 15:48:07 -0500 Subject: [PATCH 4/5] dns.server: do work in separate thread --- extra/dns/server/server.factor | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/extra/dns/server/server.factor b/extra/dns/server/server.factor index 7d52ff9e88..b556780805 100644 --- a/extra/dns/server/server.factor +++ b/extra/dns/server/server.factor @@ -1,8 +1,8 @@ -USING: kernel combinators sequences sets math +USING: kernel combinators sequences sets math threads io.sockets unicode.case accessors combinators.cleave combinators.lib - newfx + newfx fry dns dns.util dns.misc ; IN: dns.server @@ -204,15 +204,18 @@ DEFER: query->rrs ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -: loop ( -- ) - socket receive - swap +: (handle-request) ( byte-array addr-spec -- ) + >r parse-message find-answer message->ba - swap - socket send - loop ; + r> + socket send ; + +: handle-request ( byte-array addr-spec -- ) + '[ , , (handle-request) ] in-thread ; + +: loop ( -- ) socket receive handle-request loop ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! From 3e6a6c2195b29c7ce3d3ec84ce14ca346c756984 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Sat, 14 Jun 2008 16:05:38 -0500 Subject: [PATCH 5/5] newfx: minor fix --- extra/newfx/newfx.factor | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extra/newfx/newfx.factor b/extra/newfx/newfx.factor index e7d92bba58..37c738cd6a 100644 --- a/extra/newfx/newfx.factor +++ b/extra/newfx/newfx.factor @@ -1,11 +1,12 @@ -USING: kernel sequences assocs qualified circular ; +USING: kernel sequences assocs qualified circular sets ; USING: math multi-methods ; QUALIFIED: sequences QUALIFIED: assocs QUALIFIED: circular +QUALIFIED: sets IN: newfx