diff options
author | AndrewRademacher <andrew.rademacher@smrxt.com> | 2016-02-24 21:02:15 -0600 |
---|---|---|
committer | AndrewRademacher <andrew.rademacher@smrxt.com> | 2016-02-24 21:02:15 -0600 |
commit | c91dbdc0f5be0f1ec6a0cafc441eef0aa6da58d7 (patch) | |
tree | d6ebba7852d875b1ef2e6275f0c106941f842f1c /src/Graylog/Types.hs | |
parent | 2ff46fce748b0e813f13f03c034065092145a28d (diff) | |
download | haskell-graylog-c91dbdc0f5be0f1ec6a0cafc441eef0aa6da58d7.tar.gz haskell-graylog-c91dbdc0f5be0f1ec6a0cafc441eef0aa6da58d7.tar.zst haskell-graylog-c91dbdc0f5be0f1ec6a0cafc441eef0aa6da58d7.zip |
Defined sendLog function.
Diffstat (limited to 'src/Graylog/Types.hs')
-rw-r--r-- | src/Graylog/Types.hs | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/src/Graylog/Types.hs b/src/Graylog/Types.hs index e18826b..bfee38a 100644 --- a/src/Graylog/Types.hs +++ b/src/Graylog/Types.hs | |||
@@ -5,7 +5,11 @@ module Graylog.Types | |||
5 | , _graylogHost | 5 | , _graylogHost |
6 | , _graylogPort | 6 | , _graylogPort |
7 | , _graylogAddress | 7 | , _graylogAddress |
8 | , _graylogSocket | ||
9 | , _graylogHostName | ||
10 | , ChunkSize | ||
8 | 11 | ||
12 | , defaultChunkSize | ||
9 | , openGraylog | 13 | , openGraylog |
10 | , closeGraylog | 14 | , closeGraylog |
11 | ) where | 15 | ) where |
@@ -15,17 +19,23 @@ import qualified Data.Text as T | |||
15 | import Network.BSD | 19 | import Network.BSD |
16 | import Network.Socket | 20 | import Network.Socket |
17 | 21 | ||
22 | type ChunkSize = Word | ||
23 | |||
18 | data Graylog | 24 | data Graylog |
19 | = Graylog | 25 | = Graylog |
20 | { _graylogHost :: String | 26 | { _graylogHost :: String |
21 | , _graylogPort :: String | 27 | , _graylogPort :: String |
22 | , _graylogAddress :: AddrInfo | 28 | , _graylogAddress :: AddrInfo |
23 | , _graylogSocket :: Socket | 29 | , _graylogSocket :: Socket |
24 | , _graylogHostName :: Text | 30 | , _graylogHostName :: Text |
31 | , _graylogChunkSize :: ChunkSize | ||
25 | } | 32 | } |
26 | 33 | ||
27 | openGraylog :: HostName -> ServiceName -> IO (Either String Graylog) | 34 | defaultChunkSize :: ChunkSize |
28 | openGraylog host port = do | 35 | defaultChunkSize = 8192 |
36 | |||
37 | openGraylog :: HostName -> ServiceName -> ChunkSize -> IO (Either String Graylog) | ||
38 | openGraylog host port chksize = do | ||
29 | infos <- getAddrInfo Nothing (Just host) (Just port) | 39 | infos <- getAddrInfo Nothing (Just host) (Just port) |
30 | case infos of | 40 | case infos of |
31 | [] -> return $ Left "No address info found." | 41 | [] -> return $ Left "No address info found." |
@@ -33,7 +43,7 @@ openGraylog host port = do | |||
33 | sock <- socket (addrFamily info) Datagram defaultProtocol | 43 | sock <- socket (addrFamily info) Datagram defaultProtocol |
34 | connect sock (addrAddress info) | 44 | connect sock (addrAddress info) |
35 | hostname <- getHostName | 45 | hostname <- getHostName |
36 | return $ Right $ Graylog host port info sock (T.pack hostname) | 46 | return $ Right $ Graylog host port info sock (T.pack hostname) chksize |
37 | _ -> return $ Left "Too many address infos found." | 47 | _ -> return $ Left "Too many address infos found." |
38 | 48 | ||
39 | closeGraylog :: Graylog -> IO () | 49 | closeGraylog :: Graylog -> IO () |