create TLS ServerParams once per server run; remove tlsServerParams from agent env (fixes functional agent client for chat) (#223)

This commit is contained in:
Efim Poberezkin
2021-12-15 19:03:34 +04:00
committed by GitHub
parent 5aa0e97cd9
commit bcf5e25cab
5 changed files with 33 additions and 35 deletions
+4 -4
View File
@@ -19,7 +19,7 @@ import Simplex.Messaging.Server.MsgStore.STM
import Simplex.Messaging.Server.QueueStore (QueueRec (..))
import Simplex.Messaging.Server.QueueStore.STM
import Simplex.Messaging.Server.StoreLog
import Simplex.Messaging.Transport (ATransport, SessionId, loadServerCredential)
import Simplex.Messaging.Transport (ATransport, SessionId, loadTLSServerParams)
import System.IO (IOMode (..))
import UnliftIO.STM
@@ -45,7 +45,7 @@ data Env = Env
idsDrg :: TVar ChaChaDRG,
serverKeyPair :: C.KeyPair 'C.RSA, -- TODO delete
storeLog :: Maybe (StoreLog 'WriteMode),
serverCredential :: T.Credential
tlsServerParams :: T.ServerParams
}
data Server = Server
@@ -100,8 +100,8 @@ newEnv config = do
s' <- restoreQueues queueStore `mapM` storeLog (config :: ServerConfig)
let pk = serverPrivateKey config -- TODO remove
serverKeyPair = (C.publicKey pk, pk)
serverCredential <- liftIO $ loadServerCredential (serverPrivateKeyFile config) (serverCertificateFile config)
return Env {config, server, queueStore, msgStore, idsDrg, serverKeyPair, storeLog = s', serverCredential}
tlsServerParams <- liftIO $ loadTLSServerParams (serverCertificateFile config) (serverPrivateKeyFile config)
return Env {config, server, queueStore, msgStore, idsDrg, serverKeyPair, storeLog = s', tlsServerParams}
where
restoreQueues :: QueueStore -> StoreLog 'ReadMode -> m (StoreLog 'WriteMode)
restoreQueues queueStore s = do