aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Graylog/Types.hs
diff options
context:
space:
mode:
authorAndrewRademacher <andrew.rademacher@smrxt.com>2016-02-24 21:02:15 -0600
committerAndrewRademacher <andrew.rademacher@smrxt.com>2016-02-24 21:02:15 -0600
commitc91dbdc0f5be0f1ec6a0cafc441eef0aa6da58d7 (patch)
treed6ebba7852d875b1ef2e6275f0c106941f842f1c /src/Graylog/Types.hs
parent2ff46fce748b0e813f13f03c034065092145a28d (diff)
downloadhaskell-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.hs26
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
15import Network.BSD 19import Network.BSD
16import Network.Socket 20import Network.Socket
17 21
22type ChunkSize = Word
23
18data Graylog 24data 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
27openGraylog :: HostName -> ServiceName -> IO (Either String Graylog) 34defaultChunkSize :: ChunkSize
28openGraylog host port = do 35defaultChunkSize = 8192
36
37openGraylog :: HostName -> ServiceName -> ChunkSize -> IO (Either String Graylog)
38openGraylog 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
39closeGraylog :: Graylog -> IO () 49closeGraylog :: Graylog -> IO ()