From 2c82dfb51ba6923c2e7dcf3fac5109ae9da528f2 Mon Sep 17 00:00:00 2001 From: Doug Coleman <doug.coleman@gmail.com> Date: Mon, 7 Mar 2016 13:59:17 -0800 Subject: [PATCH] io.sockets: Windows doesn't recognize 0.0.0.0. Add a method for resolve-localhost for Windows, and make the default ipv4 make-sockaddr use 127.0.0.1 since we are making a sockaddr for ipv4 anyway and 127.0.0.1 is cross-platform. Fixes #85. --- basis/io/sockets/sockets.factor | 2 +- basis/io/sockets/windows/windows.factor | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/basis/io/sockets/sockets.factor b/basis/io/sockets/sockets.factor index a9f8912136..fc9b7b44cb 100644 --- a/basis/io/sockets/sockets.factor +++ b/basis/io/sockets/sockets.factor @@ -101,7 +101,7 @@ M: ipv4 make-sockaddr ( inet -- sockaddr ) AF_INET >>family swap [ port>> htons >>port ] - [ host>> "0.0.0.0" or ] + [ host>> "127.0.0.1" or ] [ inet-pton uint deref >>addr ] tri ; M: ipv4 parse-sockaddr ( sockaddr-in addrspec -- newaddrspec ) diff --git a/basis/io/sockets/windows/windows.factor b/basis/io/sockets/windows/windows.factor index e45eef2393..9cdf24274a 100755 --- a/basis/io/sockets/windows/windows.factor +++ b/basis/io/sockets/windows/windows.factor @@ -325,3 +325,9 @@ M: windows (send) ( packet addrspec datagram -- ) M: windows host-name 256 [ <byte-array> dup ] keep gethostname socket-error ascii alien>string ; + +M: windows resolve-localhost + ipv6-supported? + { T{ ipv4 f "127.0.0.1" } T{ ipv6 f "::" } } + { T{ ipv4 f "127.0.0.1" } } + ? ;