keep webapp snappy by generating ssh keypair in the background
This commit is contained in:
parent
99d52f26bc
commit
ade511f6e3
1 changed files with 13 additions and 8 deletions
|
@ -87,19 +87,24 @@ getInprogressPairR _ = noPairing
|
||||||
-}
|
-}
|
||||||
startPairing :: PairStage -> IO () -> (AlertButton -> Alert) -> Maybe UUID -> Text -> Secret -> Widget
|
startPairing :: PairStage -> IO () -> (AlertButton -> Alert) -> Maybe UUID -> Text -> Secret -> Widget
|
||||||
startPairing stage oncancel alert muuid displaysecret secret = do
|
startPairing stage oncancel alert muuid displaysecret secret = do
|
||||||
keypair <- liftIO $ genSshKeyPair
|
|
||||||
dstatus <- daemonStatus <$> lift getYesod
|
dstatus <- daemonStatus <$> lift getYesod
|
||||||
urlrender <- lift getUrlRender
|
urlrender <- lift getUrlRender
|
||||||
|
reldir <- fromJust . relDir <$> lift getYesod
|
||||||
|
|
||||||
|
{- Generating a ssh key pair can take a while, so do it in the
|
||||||
|
- background. -}
|
||||||
|
void $ liftIO $ forkIO $ do
|
||||||
|
keypair <- genSshKeyPair
|
||||||
pairdata <- PairData
|
pairdata <- PairData
|
||||||
<$> liftIO getHostname
|
<$> getHostname
|
||||||
<*> liftIO getUserName
|
<*> getUserName
|
||||||
<*> (fromJust . relDir <$> lift getYesod)
|
<*> pure reldir
|
||||||
<*> pure (sshPubKey keypair)
|
<*> pure (sshPubKey keypair)
|
||||||
<*> liftIO (maybe genUUID return muuid)
|
<*> (maybe genUUID return muuid)
|
||||||
liftIO $ do
|
|
||||||
let sender = multicastPairMsg Nothing secret pairdata
|
let sender = multicastPairMsg Nothing secret pairdata
|
||||||
let pip = PairingInProgress secret Nothing keypair pairdata stage
|
let pip = PairingInProgress secret Nothing keypair pairdata stage
|
||||||
startSending dstatus pip stage $ sendrequests sender dstatus urlrender
|
startSending dstatus pip stage $ sendrequests sender dstatus urlrender
|
||||||
|
|
||||||
lift $ redirect $ InprogressPairR $ toSecretReminder displaysecret
|
lift $ redirect $ InprogressPairR $ toSecretReminder displaysecret
|
||||||
where
|
where
|
||||||
{- Sends pairing messages until the thread is killed,
|
{- Sends pairing messages until the thread is killed,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue