avoid exposing auth tokens in debug
authorJoey Hess <joeyh@joeyh.name>
Fri, 9 Dec 2016 20:55:48 +0000 (16:55 -0400)
committerJoey Hess <joeyh@joeyh.name>
Fri, 9 Dec 2016 20:55:48 +0000 (16:55 -0400)
P2P/IO.hs

index 72202c2a223e499269d70a92abc2574b84a5e86f..bb93528a65acebc3869ac78bc63fffc224106c46 100644 (file)
--- a/P2P/IO.hs
+++ b/P2P/IO.hs
@@ -98,7 +98,7 @@ runNet conn runner f = case f of
        SendMessage m next -> do
                v <- liftIO $ tryNonAsync $ do
                        let l = unwords (formatMessage m)
-                       debugM "p2p" ("P2P > " ++ l)
+                       debugMessage "P2P >" m
                        hPutStrLn (connOhdl conn) l
                        hFlush (connOhdl conn)
                case v of
@@ -109,10 +109,10 @@ runNet conn runner f = case f of
                case v of
                        Left e -> return (Left (show e))
                        Right Nothing -> return (Left "protocol error")
-                       Right (Just l) -> do
-                               liftIO $ debugM "p2p" ("P2P < " ++ l)
-                               case parseMessage l of
-                                       Just m -> runner (next m)
+                       Right (Just l) -> case parseMessage l of
+                                       Just m -> do
+                                               liftIO $ debugMessage "P2P <" m
+                                               runner (next m)
                                        Nothing -> runner $ do
                                                let e = ERROR $ "protocol parse error: " ++ show l
                                                net $ sendMessage e
@@ -150,6 +150,14 @@ runNet conn runner f = case f of
        -- all Proto actions.
        runnerio = runNetProto conn
 
+debugMessage :: String -> Message -> IO ()
+debugMessage prefix m = debugM "p2p" $
+       prefix ++ " " ++ unwords (formatMessage safem)
+  where
+       safem = case m of
+               AUTH u _ -> AUTH u nullAuthToken
+               _ -> m
+
 -- Send exactly the specified number of bytes or returns False.
 --
 -- The ByteString can be larger or smaller than the specified length.