package netsnmp

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file session_monad.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
open! Import

module Session (IO : Io_intf.S) : Session_intf.S with module IO := IO = struct
  include Session

  (** [snmp_sess_open] and [snmp_sess_close] may be called from a thread, but must be
      called from the same thread for some session. [snmp_sess_synch_response] is
      threadsafe. *)

  let snmp_sess_open
    ~version
    ~retries
    ~timeout
    ~peername
    ~localname
    ~local_port
    ~community
    ~securityName
    ~securityAuthProto
    ~securityAuthPassword
    ()
    =
    IO.wrap_new_thread
      (fun () ->
        let result =
          Session.snmp_sess_open
            ~version
            ~retries
            ~timeout
            ~peername
            ~localname
            ~local_port
            ~community
            ~securityName
            ~securityAuthProto
            ~securityAuthPassword
            ()
        in
        Io_intf.With_thread_id.create ~result ~thread_id:(Session.session_id result))
      ()
  ;;

  let snmp_sess_close session =
    IO.wrap ~thread_id:(Session.session_id session) Session.snmp_sess_close session
  ;;

  let snmp_sess_synch_response handle pdu =
    IO.wrap_mt (Session.snmp_sess_synch_response handle) pdu
  ;;
end
OCaml

Innovation. Community. Security.