From 75aeff50b20f0bf08cfcda371c6323b73fe73a23 Mon Sep 17 00:00:00 2001 From: Joe Crayne Date: Tue, 2 Jul 2019 03:58:27 -0400 Subject: Decode packets individually. --- lib/KeyRing/BuildKeyDB.hs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'lib/KeyRing/BuildKeyDB.hs') diff --git a/lib/KeyRing/BuildKeyDB.hs b/lib/KeyRing/BuildKeyDB.hs index bae2538..ad47ed0 100644 --- a/lib/KeyRing/BuildKeyDB.hs +++ b/lib/KeyRing/BuildKeyDB.hs @@ -40,6 +40,7 @@ import qualified Data.ByteString.Lazy as L (ByteString, concat, empty, fromChunks, hGetContents, null, readFile, toChunks) import Data.Char +import Data.Function import Data.List import qualified Data.Map as Map import Data.Maybe @@ -302,13 +303,13 @@ readPacketsFromFile ctx fname = do -- warn $ fname ++ ": reading..." input <- readInputFileL ctx fname #if MIN_VERSION_binary(0,7,0) - return $ - case decodeOrFail input of - Right (_,_,msg ) -> msg + return $ Message $ flip fix input $ \again some -> + case decodeOrFail some of + Right (more,_,msg ) -> msg : again more Left (_,_,_) -> -- FIXME -- trace (fname++": read fail") $ - Message [] + [] #else return $ decode input #endif -- cgit v1.2.3