Revision 497f5cbf

b/htest/Test/Ganeti/Confd/Utils.hs
59 59
      good_timestamp = timestamp + if pm then good_delta else (-good_delta)
60 60
      bad_delta' = fromIntegral C.confdMaxClockSkew + bad_delta
61 61
      bad_timestamp = timestamp + if pm then bad_delta' else (-bad_delta')
62
      ts_ok = Confd.Utils.parseMessage key signed good_timestamp
63
      ts_bad = Confd.Utils.parseMessage key signed bad_timestamp
62
      ts_ok = Confd.Utils.parseRequest key signed good_timestamp
63
      ts_bad = Confd.Utils.parseRequest key signed bad_timestamp
64 64
  in printTestCase "Failed to parse good message"
65 65
       (ts_ok ==? BasicTypes.Ok (encoded, crq)) .&&.
66 66
     printTestCase ("Managed to deserialise message with bad\
b/htools/Ganeti/Confd/Server.hs
459 459
responder :: CRef -> S.Socket -> HashKey -> String -> S.SockAddr -> IO ()
460 460
responder cfgref socket hmac msg peer = do
461 461
  ctime <- getCurrentTime
462
  case parseMessage hmac msg ctime of
462
  case parseRequest hmac msg ctime of
463 463
    Ok (origmsg, rq) -> do
464 464
              logDebug $ "Processing request: " ++ rStripSpace origmsg
465 465
              mcfg <- readIORef cfgref
b/htools/Ganeti/Confd/Utils.hs
29 29
module Ganeti.Confd.Utils
30 30
  ( getClusterHmac
31 31
  , parseSignedMessage
32
  , parseMessage
32
  , parseRequest
33 33
  , signMessage
34 34
  , getCurrentTime
35 35
  ) where
......
67 67

  
68 68
-- | Message parsing. This can either result in a good, valid message,
69 69
-- or fail in the Result monad.
70
parseMessage :: HashKey -> String -> Integer
70
parseRequest :: HashKey -> String -> Integer
71 71
             -> Result (String, ConfdRequest)
72
parseMessage hmac msg curtime = do
72
parseRequest hmac msg curtime = do
73 73
  (salt, origmsg, request) <- parseSignedMessage hmac msg
74 74
  ts <- tryRead "Parsing timestamp" salt::Result Integer
75 75
  if abs (ts - curtime) > maxClockSkew

Also available in: Unified diff