@@ -5,6 +5,7 @@ module Network.Wai.Handler.Launch
55 ( run
66 , runUrl
77 , runUrlPort
8+ , runHostPortUrl
89 ) where
910
1011import Network.Wai
@@ -13,6 +14,7 @@ import Network.HTTP.Types
1314import qualified Network.Wai.Handler.Warp as Warp
1415import Data.IORef
1516import Data.Monoid (mappend)
17+import Data.String (fromString)
1618import Control.Concurrent (forkIO, threadDelay)
1719import Control.Monad.IO.Class (liftIO)
1820import Control.Monad (unless)
@@ -186,12 +188,15 @@ runUrl :: String -> Application -> IO ()
186188runUrl = runUrlPort 4587
187189
188190runUrlPort :: Int -> String -> Application -> IO ()
189−runUrlPort port url app = do
191+runUrlPort = runHostPortUrl "*4"
192+
193+runHostPortUrl :: String -> Int -> String -> Application -> IO ()
194+runHostPortUrl host port url app = do
190195 x <- newIORef True
191196 _ <- forkIO $ Warp.runSettings
192197 ( Warp.setPort port
193198 $ Warp.setOnException (\_ _ -> return ())
194− $ Warp.setHost "*4" Warp.defaultSettings)
199+ $ Warp.setHost (fromString host) Warp.defaultSettings)
195200 $ ping x app
196201 launch port url
197202 loop x