diff --git a/extra/dns/dns.factor b/extra/dns/dns.factor index 57795f49c2..a51118e5fb 100644 --- a/extra/dns/dns.factor +++ b/extra/dns/dns.factor @@ -6,7 +6,8 @@ io io.binary io.encodings.binary io.encodings.string io.encodings.utf8 io.sockets io.sockets.private io.streams.byte-array io.timeouts kernel make math math.bitwise math.parser namespaces nested-comments random sequences -slots.syntax splitting system vectors vocabs.loader strings ; +slots.syntax splitting system vectors vocabs.loader strings +ascii ; IN: dns : with-input-seek ( n seek-type quot -- ) @@ -238,10 +239,15 @@ M: SOA parse-rdata 2drop parse-soa ; [ [ parse-rr ] replicate ] change-additional-section ] with-byte-reader ; -: >n/label ( string -- byte-array ) - [ length 1array ] [ utf8 encode ] bi B{ } append-as ; +ERROR: unsupported-domain-name string ; -: >name ( domain -- byte-array ) "." split [ >n/label ] map concat ; +: >n/label ( string -- byte-array ) + dup [ ascii? ] all? + [ unsupported-domain-name ] unless + [ length 1array ] [ ] bi B{ } append-as ; + +: >name ( domain -- byte-array ) + "." split [ >n/label ] map concat ; : query>byte-array ( query -- byte-array ) [ @@ -321,7 +327,7 @@ M: TXT rdata>byte-array : udp-query ( bytes server -- bytes' ) f 0 - 30 seconds over set-timeout [ + 10 seconds over set-timeout [ [ send ] [ receive drop ] bi ] with-disposal ; diff --git a/extra/game/debug/tests/tests.factor b/extra/game/debug/tests/tests.factor index 2a70f55d8a..b6bcacc780 100644 --- a/extra/game/debug/tests/tests.factor +++ b/extra/game/debug/tests/tests.factor @@ -41,14 +41,14 @@ IN: game.debug.tests COLOR: purple { 5 5 } world dim>> draw-text world [ 1 + ] change-frame# drop ; -TUPLE: tests-world < wasd-world frame-number ; +TUPLE: tests-world < wasd-world frame# ; M: tests-world draw-world* draw-debug-tests ; M: tests-world wasd-movement-speed drop 1/16. ; M: tests-world wasd-near-plane drop 1/32. ; M: tests-world wasd-far-plane drop 1024.0 ; M: tests-world begin-game-world init-gpu - 0 >>frame-number + 0 >>frame# { 0.0 0.0 2.0 } 0 0 set-wasd-view drop ; GAME: run-tests {