-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Libraries to use SNTP protocol and small client/server implementations. -- -- HSNTP - Haskell Simple Network Time Protocol -- -- Simple Network Time Protocol is a simple subset of NTP. This package -- includes Haskell libraries to use SNTP Protocol and small client and -- server implementations. The package contains everything needed for a -- compilation. @package hsntp @version 0.1 module HSNTP.Util.Daemon daemonize :: IO () -> IO () -> IO ProcessID childLives :: ProcessID -> IO Bool -- | Basic UDP connectivity. Currently inefficient - GHC 6.4 should provide -- the primitives directly. Supports fast ops with CVS GHC. module HSNTP.Util.UDP -- | Connect to an UDP-port. connectUDP :: String -> Int -> IO Socket -- | Listen UDP listenUDP :: Int -> IO Socket recvBufFrom :: Socket -> Ptr a -> Int -> IO (Int, SockAddr) sendBufTo :: Socket -> Ptr a -> Int -> SockAddr -> IO Int sockAddr :: String -> Int -> IO SockAddr newSock :: IO Socket -- | Closes a socket sClose :: Socket -> IO () module HSNTP.Util.Misc udpQuery :: String -> Port -> Int -> Time -> (Bufi -> MayIO Int) -> (Bufi -> MayIO a) -> MayIO a runWithTO' :: Time -> IO t -> IO t runWithTO :: Time -> IO (Either String b) -> IO (Either String b) data Time seconds :: Int -> Time type MayIO = ErrorT String IO module HSNTP.Util.UDPServer data UDPServer a UDPServer :: (a -> Bufi -> IO Int) -> (Bufi -> IO a) -> (a -> IO a) -> (Exception -> IO ()) -> Time -> Int -> Int -> Int -> UDPServer a putFun :: UDPServer a -> a -> Bufi -> IO Int getFun :: UDPServer a -> Bufi -> IO a workFun :: UDPServer a -> a -> IO a excFun :: UDPServer a -> Exception -> IO () timeout :: UDPServer a -> Time bufSize :: UDPServer a -> Int threads :: UDPServer a -> Int port :: UDPServer a -> Int stdUDPServer :: UDPServer a runUDPServer :: UDPServer s -> IO [ThreadId] waitForever :: IO () module HSNTP.Util.UDPClient data UDPClient a s UDPClient :: (Bufi -> IO (Int, s)) -> (Bufi -> IO a) -> (s -> a -> a) -> Int -> Time -> Int -> SockAddr -> UDPClient a s putFun :: UDPClient a s -> Bufi -> IO (Int, s) getFun :: UDPClient a s -> Bufi -> IO a valFun :: UDPClient a s -> s -> a -> a retries :: UDPClient a s -> Int timeout :: UDPClient a s -> Time bufSize :: UDPClient a s -> Int destSA :: UDPClient a s -> SockAddr stdUDPClient :: UDPClient a1 a runUDPClient :: UDPClient a s -> IO a seconds :: Int -> Time sockAddr :: String -> Int -> IO SockAddr module DNS.Type question :: String -> QType -> QClass -> Question rquestion :: Name -> QType -> QClass -> Question putLine :: String -> MayIO () enc :: String -> UArray Int Word8 type Bufi = (Ptr Word8, Int) type Data = UArray Int Word8 data Question Q :: !Name -> !QType -> !QClass -> Question type MayIO = ErrorT String IO data RR RR :: Name -> RType -> RClass -> Word32 -> Data -> RR type RClass = Word16 type RType = Word16 type Name = UArray Int Word8 satisfies :: Question -> RR -> Bool data Zone Zone :: Name -> [RR] -> Zone type MayIOSt s = StateT s MayIO data Packet Packet :: !Word16 -> !Word16 -> ![Question] -> ![RR] -> ![RR] -> ![RR] -> Packet idPQ :: Packet -> !Word16 hePQ :: Packet -> !Word16 qsPQ :: Packet -> ![Question] rsPQ :: Packet -> ![RR] nsPQ :: Packet -> ![RR] asPQ :: Packet -> ![RR] converge :: Word16 -> Question -> Packet -> Packet type WState = ((), Bufi, Ptr Word8) type PSt = StateT (Ptr Word8) IO errorPacket :: Packet emptyPacket :: Packet hashQuestion :: Question -> Int32 instance Show Packet instance Show Zone instance Show RR instance Show Question instance Eq Question module DNS.LoWire getW16 :: MayIOSt WState Word16 getW32 :: MayIOSt WState Word32 getW8Lst :: Int -> MayIOSt WState [Word8] getW16Lst :: Int -> MayIOSt WState [Word16] getName :: MayIOSt WState Name putW16 :: Word16 -> PSt () putW32 :: Word32 -> PSt () putW8Lst :: [Word8] -> PSt () putW16Lst :: [Word16] -> PSt () putName :: Name -> PSt () -- | Is the get at the end of the buffer (for optional fields) atEnd :: MayIOSt WState Bool getW64 :: MayIOSt WState Word64 putW64 :: Word64 -> PSt () module SNTP.SNTP data Packet Packet :: !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word32 -> !Word32 -> String -> !TimeStamp -> !TimeStamp -> !TimeStamp -> !TimeStamp -> !Auth -> !TimeStamp -> Packet word0 :: Packet -> !Word8 stratum :: Packet -> !Word8 poll :: Packet -> !Word8 precision :: Packet -> !Word8 rootDelay :: Packet -> !Word32 rootDisp :: Packet -> !Word32 refId :: Packet -> String refTS :: Packet -> !TimeStamp origTS :: Packet -> !TimeStamp recvTS :: Packet -> !TimeStamp transTS :: Packet -> !TimeStamp auth :: Packet -> !Auth received :: Packet -> !TimeStamp putPacket :: Packet -> (Ptr Word8, Int) -> IO (Int, TimeStamp) parsePacket :: (Ptr Word8, Int) -> IO Packet emptyPacket :: Packet tsToClockTime :: TimeStamp -> ClockTime getCurrentTimeStamp :: IO TimeStamp liVerMode :: Word8 -> Word8 -> Word8 -> Word8 dToSecMSec :: Double -> (Word32, Word32) tsToD :: TimeStamp -> Double delay :: Packet -> Double tdiff :: Packet -> Double nilTS :: TimeStamp instance Eq TimeStamp instance Show TimeStamp module SNTP.Client query :: HostName -> IO Packet client :: SockAddr -> UDPClient Packet TimeStamp setTime :: Packet -> IO ()