aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Graylog/Types.hs
diff options
context:
space:
mode:
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 ()