blob: e1b4191bb39404a9a8bf6fdf6ebea4bb20daff3b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
{- Copyright 2016 Joey Hess <id@joeyh.name>
-
- 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 :: ServerName
, serverAddress :: [ServerAddress]
-- ^ A server may have multiple addresses, or no current address.
}
deriving (Show)
|