diff options
author | Joey Hess <joeyh@joeyh.name> | 2019-09-26 19:48:18 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2019-09-26 20:00:15 -0400 |
commit | 88263101ab8baf6f2b6a6a9edebc148b1bba7916 (patch) | |
tree | c395f85274754658581759f8d9031b7489fc8222 /Role | |
parent | 7720aa30008e62e2cbe55bcb01925be0e7c0ad90 (diff) | |
download | debug-me-88263101ab8baf6f2b6a6a9edebc148b1bba7916.tar.gz |
Update to lts-13.29, support ghc 8.6.5, and aeson 1.4.
First tried lts-14.7, but the version of cabal-install currently in debian
unstable (2.2.0.0) is not able to parse its cabal files.
Small fix for MonadFail changes.
This commit was sponsored by Jochen Bartl on Patreon.
Diffstat (limited to 'Role')
-rw-r--r-- | Role/User.hs | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/Role/User.hs b/Role/User.hs index 6ec0302..987b880 100644 --- a/Role/User.hs +++ b/Role/User.hs @@ -247,17 +247,17 @@ getDeveloperMessage ichan ochan us now = maybe getDeveloperMessage' :: MissingHashes (Message Entered) -> TMChan (Message Seen) -> TVar UserState -> POSIXTime -> STM Input getDeveloperMessage' (MissingHashes wiremsg) ochan us now = do st <- readTVar us - Developer msg <- restoreHashes (userStateRecentActivity us) (MissingHashes (Developer wiremsg)) + msg <- restoreHashes (userStateRecentActivity us) (MissingHashes (Developer wiremsg)) case msg of - ControlMessage (Control (SessionKey spk _) _) -> do + Developer cmsg@(ControlMessage (Control (SessionKey spk _) _)) -> do let sigverifier = mkSigVerifier $ case spk of GpgSigned pk _ _ -> pk UnSigned pk -> pk - if verifySigned sigverifier msg - then return (InputMessage msg) - else return (BadlySignedMessage msg) - _ -> if verifySigned (sigVerifier st) msg - then case msg of + if verifySigned sigverifier cmsg + then return (InputMessage cmsg) + else return (BadlySignedMessage cmsg) + Developer cmsg -> if verifySigned (sigVerifier st) cmsg + then case cmsg of ActivityMessage entered -> do -- Don't need to retain backlog -- before the Activity that entered @@ -266,22 +266,26 @@ getDeveloperMessage' (MissingHashes wiremsg) ochan us now = do truncateBacklog (backLog st) entered if isLegalEntered entered (st { backLog = bl' }) then do - let l = mkLog (Developer msg) now + let l = mkLog (Developer cmsg) now writeTVar us $ st { backLog = l :| toList bl' , lastAcceptedEntered = Just (hash entered) } - return (InputMessage msg) + return (InputMessage cmsg) else do let reject = EnteredRejected { enteredRejected = hash entered , enteredLastAccepted = lastAcceptedEntered st } - RejectedMessage msg + RejectedMessage cmsg <$> sendDeveloper ochan us reject now ControlMessage (Control _ _) -> - return (InputMessage msg) - else return (BadlySignedMessage msg) + return (InputMessage cmsg) + else return (BadlySignedMessage cmsg) + -- This cannot really happen, because restoreHashes is + -- always passed a Developer message, but ghc doesn't know + -- that. + User _ -> error "unexpectedly received User message where Developer message expected" -- | Truncate the Backlog to remove entries older than the one -- that the Activity Entered refers to, but only if the referred |