WIP: partially implemented runGemServer
This commit is contained in:
@@ -27,12 +27,14 @@ License along with this program. If not, see
|
||||
{-# LANGUAGE LambdaCase, OverloadedStrings, RecordWildCards #-}
|
||||
|
||||
module Network.GemServ (
|
||||
runGemServer,
|
||||
encodeGemURL,
|
||||
decodeGemURL,
|
||||
escapeString,
|
||||
unescapeString
|
||||
) where
|
||||
|
||||
import Control.Exception.Base (bracket)
|
||||
import qualified Data.ByteString as BS
|
||||
import Data.ByteString.Builder (charUtf8, stringUtf8, toLazyByteString)
|
||||
import qualified Data.ByteString.Lazy as BSL
|
||||
@@ -41,9 +43,26 @@ import Data.List (find, intercalate)
|
||||
import Data.Maybe (fromJust)
|
||||
import qualified Data.Text as T
|
||||
import Data.Text.Encoding (decodeUtf8')
|
||||
import Network.Socket (close)
|
||||
import System.IO.Streams.TCP (bindAndListen)
|
||||
|
||||
import Network.GemServ.Types
|
||||
|
||||
-- | Builds and runs a Gemini server
|
||||
runGemServer
|
||||
:: GemServSettings
|
||||
-- ^ The server settings
|
||||
-> GemHandler
|
||||
-- ^ The handler
|
||||
-> IO ()
|
||||
runGemServer settings _ = bracket
|
||||
( bindAndListen
|
||||
(servConnections settings)
|
||||
(fromIntegral $ servPort settings)
|
||||
)
|
||||
close
|
||||
undefined
|
||||
|
||||
-- | Encodes a 'GemURL' into a 'String'
|
||||
encodeGemURL :: GemURL -> String
|
||||
encodeGemURL url =
|
||||
|
||||
Reference in New Issue
Block a user