From 25324026a1033c43652a058f966dfb3d255102ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sat, 18 Jan 2020 21:58:18 +0100 Subject: Use encrypted channel as soon as accept is received --- src/Network.hs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Network.hs b/src/Network.hs index eceeaff..339be7a 100644 --- a/src/Network.hs +++ b/src/Network.hs @@ -189,7 +189,10 @@ startServer origHead logd bhost services = do mbpeer <- M.lookup paddr <$> readMVar peers (peer, content, secure) <- if | Just peer <- mbpeer - , ChannelEstablished ch <- peerChannel peer + , Just ch <- case peerChannel peer of + ChannelEstablished ch -> Just ch + ChannelOurAccept _ sch -> Just $ fromStored sch + _ -> Nothing , Right plain <- runExcept $ channelDecrypt ch msg -> return (peer, plain, True) @@ -399,7 +402,7 @@ handlePacket logd identity secure opeer chanSvc (TransportHeader headers) = do [ serializeObject $ transportToObject $ TransportHeader $ reverse $ phHead ph , BL.concat $ map lazyLoadBytes $ phBody ph ] - case peerChannel opeer of + case peerChannel $ phPeer ph of ChannelEstablished ch -> do x <- runExceptT (channelEncrypt ch plain) case x of Right ctext -> void $ sendTo (peerSocket $ phPeer ph) ctext paddr -- cgit v1.2.3