packages feed

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 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]+