]> git.rkrishnan.org Git - functorrent.git/blobdiff - src/FuncTorrent/Network.hs
wrap network calls with withSocketsDo for multiplatform initialization
[functorrent.git] / src / FuncTorrent / Network.hs
index eac69c9e32357f42023e0c6f702081039fb32c85..001fe0ee90c34308fb1afb8f5ea86becd171f1ac 100644 (file)
@@ -11,6 +11,7 @@ import Data.ByteString (ByteString)
 import Data.ByteString.Char8 as BC (pack, unpack, concat, intercalate)
 import Network.HTTP (simpleHTTP, defaultGETRequest_, getResponseBody)
 import Network.URI (parseURI)
+import Network.Socket (withSocketsDo)
 
 -- | Make a query string from a alist of k, v
 -- TODO: Url encode each argument
@@ -18,7 +19,7 @@ mkParams :: [(String, ByteString)] -> ByteString
 mkParams params = BC.intercalate "&" [concat [pack f, "=", s] | (f,s) <- params]
 
 get :: String -> [(String, ByteString)] -> IO ByteString
-get url args = simpleHTTP (defaultGETRequest_ url') >>= getResponseBody
+get url args = withSocketsDo $ simpleHTTP (defaultGETRequest_ url') >>= getResponseBody
     where url' = case parseURI $ unpack $ concat [pack url, "?", qstr] of
                    Just x -> x
                    _ -> error "Bad tracker URL"