Archived
1
0
Fork 0

Began a big refactoring/rewriting (again)

This commit is contained in:
Julien Dessaux 2011-04-13 20:15:55 +02:00
parent d05aea2def
commit ff07633fb8
41 changed files with 423 additions and 5107 deletions

63
Hsbot/Config.hs Normal file
View file

@ -0,0 +1,63 @@
module Hsbot.Config
( Config (..)
, TLSConfig (..)
, defaultConfig
, defaultTLSConfig
, noSSL
) where
import Network
import Network.TLS
import Network.TLS.Extra
data Config = Config
{ configErrors :: Maybe String
, configTLS :: TLSConfig
, configAddress :: String
, configPort :: PortID
, configChannels :: [String]
, configNicknames :: [String]
, configRealname :: String
, configPlugins :: [String]
}
defaultConfig :: Config
defaultConfig = Config
{ configErrors = Nothing
, configTLS = noSSL
, configAddress = "localhost"
, configPort = PortNumber 6667
, configChannels = ["#hsbot"]
, configNicknames = ["hsbot"]
, configRealname = "The One True bot, with it's haskell soul."
, configPlugins = ["Ping", "Core"] }
data TLSConfig = TLSConfig
{ sslOn :: Bool
, sslCert :: String
, sslKey :: String
, sslVersions :: [Network.TLS.Version]
, sslCiphers :: [Network.TLS.Cipher]
, sslVerify :: Bool
} deriving (Show)
defaultTLSConfig :: TLSConfig
defaultTLSConfig = TLSConfig
{ sslOn = True
, sslCert = ""
, sslKey = ""
, sslVersions = [SSL3, TLS10, TLS11, TLS12]
, sslCiphers = [ cipher_null_MD5
, cipher_null_SHA1
, cipher_AES128_SHA1
, cipher_AES256_SHA1
, cipher_RC4_128_MD5
, cipher_RC4_128_SHA1
, cipher_AES256_SHA1
, cipher_AES128_SHA256
, cipher_AES256_SHA256 ]
, sslVerify = True }
noSSL :: TLSConfig
noSSL = defaultTLSConfig { sslOn = False }