summaryrefslogtreecommitdiffhomepage
path: root/Replay.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Replay.hs')
-rw-r--r--Replay.hs27
1 files changed, 23 insertions, 4 deletions
diff --git a/Replay.hs b/Replay.hs
index 599ca77..b50bc40 100644
--- a/Replay.hs
+++ b/Replay.hs
@@ -3,10 +3,29 @@ module Replay where
import Types
import Log
import CmdLine
+import Session
+
+import qualified Data.ByteString as B
+import System.IO
+import Control.Concurrent.Thread.Delay
replay :: ReplayOpts -> IO ()
-replay opts = go =<< loadLog (replayLogFile opts)
+replay opts = go Nothing =<< loadLog (replayLogFile opts)
where
- go [] = return ()
- go (l:ls) = do
- go ls
+ go _ [] = sessionDone
+ go prevts (l:ls) = do
+ case prevts of
+ Nothing -> return ()
+ Just t ->
+ let s = loggedTimestamp l - t
+ ms = s * 1000000
+ in delay (ceiling ms)
+
+ case loggedActivity l of
+ ActivityEntered {} -> return ()
+ ActivitySeen a -> case activity a of
+ Rejected {} -> return ()
+ Proto s -> do
+ B.hPut stdout (val (seenData s))
+ hFlush stdout
+ go (Just $ loggedTimestamp l) ls