diff options
Diffstat (limited to 'Types/Server.hs')
-rw-r--r-- | Types/Server.hs | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/Types/Server.hs b/Types/Server.hs index dd06909..e1b4191 100644 --- a/Types/Server.hs +++ b/Types/Server.hs @@ -3,14 +3,33 @@ - Licensed under the GNU AGPL version 3 or higher. -} +{-# LANGUAGE DeriveGeneric #-} + module Types.Server where +import Data.Aeson +import GHC.Generics import Network.Wai.Handler.Warp (Port) type HostName = String +-- | Server address can use either tor .onion addresses, or regular +-- hostnames. Using tor is highly recommended, to avoid correlation +-- attacks. +data ServerAddress = ServerAddress HostName Port + deriving (Show) + +-- | Name used in queuing uploads to the server. Should remain stable +-- across keysafe versions. +newtype ServerName = ServerName String + deriving (Show, Generic) + +instance ToJSON ServerName +instance FromJSON ServerName + data Server = Server - { serverName :: HostName - , serverPort :: Port + { serverName :: ServerName + , serverAddress :: [ServerAddress] + -- ^ A server may have multiple addresses, or no current address. } deriving (Show) |