snmp 0.1.0.1 → 0.1.0.2
raw patch · 3 files changed
+67/−4 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- snmp.cabal +1/−1
- src/Network/Snmp/Client/Version3.hs +6/−3
- src/Network/Snmp/Example.hs +60/−0
snmp.cabal view
@@ -1,5 +1,5 @@ name: snmp-version: 0.1.0.1+version: 0.1.0.2 synopsis: API for write snmp client. description: API for write snmp client. license: BSD3
src/Network/Snmp/Client/Version3.hs view
@@ -73,9 +73,12 @@ init' st = withSocketsDo $ do rid <- predCounter (ref' st) sendAll (socket' st) $ encode $ packet' rid- resp <- decode <$> recv (socket' st) 1500 :: IO Packet- atomicWriteIORef (engine' st) $ Just (getEngineIdP resp, getEngineBootsP resp, getEngineTimeP resp) - return (getEngineIdP resp, getEngineBootsP resp, getEngineTimeP resp)+ result <- race (threadDelay (timeout' st)) (decode <$> recv (socket' st) 1500 :: IO Packet)+ case result of+ Left _ -> throwIO TimeoutException+ Right resp -> do+ atomicWriteIORef (engine' st) $ Just (getEngineIdP resp, getEngineBootsP resp, getEngineTimeP resp) + return (getEngineIdP resp, getEngineBootsP resp, getEngineTimeP resp) where packet' x = ( setIDP (ID x) . setMaxSizeP (MaxSize 1500)
src/Network/Snmp/Example.hs view
@@ -52,6 +52,22 @@ > } > -}+conf2 :: Config+conf2 = (initial Version2) { hostname = "salt" + , community = Community "helloall"+ } ++-- For SNMPv3+conf3 :: Config+conf3 = (initial Version3) { hostname = "salt" + , sequrityName = "aes"+ , authPass = "helloallhello"+ , privPass = "helloallhello"+ , authType = SHA+ , privType = AES+ , sequrityLevel = AuthPriv+ } + {- $send > -- do io > client3 :: IO ()@@ -65,7 +81,16 @@ > requests > -}+client3 :: IO ()+client3 = bracket (client conf3)+ close+ requests +client2 :: IO ()+client2 = bracket (client conf2)+ close+ requests+ {- $oids > -- Describe oids which you need > root, eth0, tabl, ipAddr, zeroDotZero :: [Integer]@@ -83,7 +108,21 @@ > bad = "1.4.6.1.2.1.1.4" > testOid = "1.3.6.1.2.1.25.1.1.0" -}+root, eth0, tabl, ipAddr, zeroDotZero :: [Integer]+root = [1,3,6,1,2,1,2,2,1,2]+eth0 = [1,3,6,1,2,1,2,2,1,2,1]+tabl = [31,1,1,1,1]+ipAddr = [1,3,6,1,2,1,4,22,1,3,3,192,168,3,1]+zeroDotZero = [1,3,6,1,2,1,2,2,1,22,20] +oi, sysUptime, memory, sysContact, bad, testOid :: ByteString+oi = ".1.3.6.1.2.1.1.9.1.2.1"+sysUptime = "1.3.6.1.2.1.25.1.1.0"+memory = "1.3.6.1.2.1.25.2"+sysContact = "1.3.6.1.2.1.1.4.0"+bad = "1.4.6.1.2.1.1.4"+testOid = "1.3.6.1.2.1.25.1.1.0"+ {- $request > -- Describe requests > requests :: Client -> IO ()@@ -107,3 +146,24 @@ > print "get sysContact" > putStr . show =<< get snmp [oidFromBS sysContact] -}+requests :: Client -> IO ()+requests snmp = do+ print "get request"+ putStr . show =<< get snmp [oidFromBS testOid]+ putStr . show =<< get snmp [oidFromBS testOid]+ putStr . show =<< get snmp [oidFromBS sysUptime, oidFromBS oi, zeroDotZero]+ print "bulkget request"+ putStr . show =<< bulkget snmp [oidFromBS sysUptime]+ print "getnext request"+ putStr . show =<< getnext snmp [oidFromBS sysUptime]+ print "walk memory"+ putStr . show =<< walk snmp [oidFromBS memory]+ print "bulkwalk memory"+ putStr . show =<< bulkwalk snmp [oidFromBS memory]+ print "get sysContact"+ putStr . show =<< get snmp [oidFromBS sysContact]+ print "set sysContact"+ putStr . show =<< (try $ set snmp (Suite [Coupla (oidFromBS sysContact) (String "hello all")]) :: IO (Either ClientException Suite))+ print "get sysContact"+ putStr . show =<< get snmp [oidFromBS sysContact]+