From aea344fd81d1d00937a8af37a610599fffb8a577 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 5 Sep 2016 14:33:28 +0100 Subject: [PATCH] Updates for #:meta-level -> inbound/outbound and for (actor(relay...))->(actor...) --- tk-dns.rkt | 52 +++++++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/tk-dns.rkt b/tk-dns.rkt index 1cc24b5..b676597 100644 --- a/tk-dns.rkt +++ b/tk-dns.rkt @@ -23,6 +23,7 @@ (require racket/match) (require "codec.rkt") (require syndicate/actor) +(require syndicate/protocol/standard-relay) (require syndicate/drivers/udp) (provide (struct-out bad-dns-packet) @@ -38,38 +39,35 @@ (define (dns-read-driver s) (actor - (forever - (on (message (udp-packet $source s #"") #:meta-level 1) - (log-info "Debug dump packet received") - (send! `(debug-dump))) - (on (message (udp-packet $source s $body) #:meta-level 1) - (send! - (with-handlers ((exn:fail? (lambda (e) - (bad-dns-packet body source s 'unparseable)))) - (define message (packet->dns-message body)) - (case (dns-message-direction message) - ((request) (dns-request message source s)) - ((response) (dns-reply message source s))))))))) + (on (message (inbound (udp-packet $source s #""))) + (log-info "Debug dump packet received") + (send! `(debug-dump))) + (on (message (inbound (udp-packet $source s $body))) + (send! + (with-handlers ((exn:fail? (lambda (e) + (bad-dns-packet body source s 'unparseable)))) + (define message (packet->dns-message body)) + (case (dns-message-direction message) + ((request) (dns-request message source s)) + ((response) (dns-reply message source s)))))))) (define (translate message s sink) (with-handlers ((exn:fail? (lambda (e) (send! (bad-dns-packet message s sink 'unencodable))))) - (send! #:meta-level 1 (udp-packet s sink (dns-message->packet message))))) + (send! (outbound (udp-packet s sink (dns-message->packet message)))))) (define (dns-write-driver s) - (actor (forever - (on (message (dns-request $message s $sink)) - (translate message s sink)) - (on (message (dns-reply $message s $sink)) - (translate message s sink))))) + (actor (on (message (dns-request $message s $sink)) + (translate message s sink)) + (on (message (dns-reply $message s $sink)) + (translate message s sink)))) (define (dns-spy) - (actor (forever - (on (message (dns-request $message $source $sink)) - (log-info (format "DNS: ~v asks ~v ~v~n : ~v" - source sink (dns-message-id message) - (dns-message-questions message)))) - (on (message (dns-reply $message $source $sink)) - (log-info (format "DNS: ~v answers ~v~n : ~v" - source sink - message)))))) + (actor (on (message (dns-request $message $source $sink)) + (log-info (format "DNS: ~v asks ~v ~v~n : ~v" + source sink (dns-message-id message) + (dns-message-questions message)))) + (on (message (dns-reply $message $source $sink)) + (log-info (format "DNS: ~v answers ~v~n : ~v" + source sink + message)))))