packages feed

hsyslog-tcp 0.1.0.0 → 0.2.0.0

raw patch · 2 files changed

+33/−19 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ System.Posix.Syslog.TCP: SyslogConn :: SyslogFn -> IO () -> SyslogConn
+ System.Posix.Syslog.TCP: [_syslogConnClose] :: SyslogConn -> IO ()
+ System.Posix.Syslog.TCP: [_syslogConnSend] :: SyslogConn -> SyslogFn
+ System.Posix.Syslog.TCP: data SyslogConn
- System.Posix.Syslog.TCP: initSyslog :: SyslogConfig -> IO SyslogFn
+ System.Posix.Syslog.TCP: initSyslog :: SyslogConfig -> IO SyslogConn

Files

hsyslog-tcp.cabal view
@@ -1,5 +1,5 @@ name:                hsyslog-tcp-version:             0.1.0.0+version:             0.2.0.0 synopsis:            syslog over TCP description: homepage:            https://github.com/osa1/hsyslog-tcp#readme
src/System/Posix/Syslog/TCP.hs view
@@ -18,6 +18,7 @@     -- * Haskell API to syslog via TCP     initSyslog   , SyslogFn+  , SyslogConn (..)   , SyslogConfig (..)   , defaultConfig @@ -70,30 +71,43 @@                                 rsyslogPacket, rsyslogProtocol) -------------------------------------------------------------------------------- --- | Return a function that logs to syslog via TCP.+type SyslogFn+  =  L.Facility -- ^ facility to log to+  -> Severity   -- ^ severity under which to log+  -> T.Text     -- ^ message body (should not contain newline)+  -> IO ()++data SyslogConn = SyslogConn+  { -- | Callback for sending logs to the connected remote syslog server. This+    -- function re-throws exceptions, blocks when the TCP socket is not ready+    -- for writing.+    _syslogConnSend  :: SyslogFn+    -- | Callback for closing the connection.+  , _syslogConnClose :: IO ()+  }++-- | Connect to the remote syslog server over TCP. ----- The function re-throws exceptions, blocks when the TCP socket is not ready--- for writing.-initSyslog :: SyslogConfig -> IO SyslogFn+-- See also documentation for `SyslogConn`.+initSyslog :: SyslogConfig -> IO SyslogConn initSyslog config = do     let addr = _address config     socket <- N.socket (N.addrFamily addr) (N.addrSocketType addr) (N.addrProtocol addr)     N.connect socket (N.addrAddress addr)-    return $ \fac sev msg ->-      case maskedPriVal (_severityMask config) fac sev of-        Nothing -> return ()-        Just priVal -> do-          time <- getCurrentTime-          let bs = getProtocol (_protocol config)-                   priVal time (_hostName config) (_appName config)-                   (_processId config) msg-          N.sendAll socket bs+    let+      send_fn fac sev msg =+        case maskedPriVal (_severityMask config) fac sev of+          Nothing -> return ()+          Just priVal -> do+            time <- getCurrentTime+            let bs = getProtocol (_protocol config)+                     priVal time (_hostName config) (_appName config)+                     (_processId config) msg+            N.sendAll socket bs -type SyslogFn-  =  L.Facility -- ^ facility to log to-  -> Severity   -- ^ severity under which to log-  -> T.Text     -- ^ message body (should not contain newline)-  -> IO ()+      close_fn = N.close socket++    return (SyslogConn send_fn close_fn)  -- | Configuration options for connecting and logging to your syslog socket. data SyslogConfig = SyslogConfig