From e19df707da51887e1ec9dc70a9c9c336994d5b66 Mon Sep 17 00:00:00 2001 From: Doug Coleman <doug.coleman@gmail.com> Date: Mon, 23 May 2016 15:28:51 -0700 Subject: [PATCH] io.servers: Fix a regression where we couldn't listen on several ports at once. --- basis/io/servers/servers-tests.factor | 23 ++++++++++++++++++++--- basis/io/servers/servers.factor | 2 +- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/basis/io/servers/servers-tests.factor b/basis/io/servers/servers-tests.factor index 04004ea9b0..bea66ad07a 100644 --- a/basis/io/servers/servers-tests.factor +++ b/basis/io/servers/servers-tests.factor @@ -1,6 +1,6 @@ -USING: accessors calendar concurrency.promises fry io -io.encodings.ascii io.servers -io.servers.private io.sockets kernel namespaces +USING: accessors arrays calendar concurrency.promises fry io +io.encodings.ascii io.encodings.utf8 io.servers +io.servers.private io.sockets kernel namespaces scratchpad sequences threads tools.test ; IN: io.servers @@ -53,3 +53,20 @@ ipv6-supported? [ [ inet6? ] any? ] unit-test ] unless + + +! Test that we can listen on several ports at once. +TUPLE: my-threaded-server < threaded-server ; + +{ } [ + utf8 my-threaded-server new-threaded-server + "127.0.0.1" 0 <inet4> + "127.0.0.1" 0 <inet4> + 2array >>insecure + + "127.0.0.1" 0 <inet4> + "127.0.0.1" 0 <inet4> + 2array >>secure + + start-server stop-server +] unit-test \ No newline at end of file diff --git a/basis/io/servers/servers.factor b/basis/io/servers/servers.factor index 7cbb69097e..0a264824f6 100755 --- a/basis/io/servers/servers.factor +++ b/basis/io/servers/servers.factor @@ -77,7 +77,7 @@ M: inet6 >insecure 1array ; M: local >insecure 1array ; M: integer >insecure internet-server 1array ; M: string >insecure internet-server 1array ; -M: array >insecure [ >insecure ] map ; +M: array >insecure [ >insecure ] map concat ; M: f >insecure ; : >secure ( addrspec -- addrspec' )