snmp_netgraph snmp_node snmp_nodename ng_cookie_f ng_hook_f ng_register_cookie ng_unregister_cookie ng_register_hook ng_unregister_hook ng_unregister_module ng_output ng_output_node ng_output_id ng_dialog ng_dialog_node ng_dialog_id ng_send_data ng_mkpeer_id ng_connect_node ng_connect_id ng_connect2_id ng_connect2_tee_id ng_rmhook ng_rmhook_id ng_rmhook_tee_id ng_shutdown_id ng_next_node_id ng_node_id ng_node_id_node ng_node_name ng_node_type ng_peer_hook_id - netgraph module for snmpd.
(begemotSnmpdModulePath.netgraph = /usr/lib/snmp_netgraph.so)
If upon start up of the module the variable begemotNgControlNodeName is not empty the module opens a netgraph socket and names that socket node. If the variable is empty, the socket is created, as soon as the variable is written with a non-empty name. The socket can be closed by writing an empty string to the variable. The socket itself and its name are available in snmp_node and snmp_nodename
Each of these functions takes the following arguments:
The functions return the message id that can be used to match incoming responses or -1 if an error occurs.
Another class of functions is used to send a control message and to wait for a matching response. Note, that this operation blocks the daemon, so use it only if you are sure that the response will happen. There is a maximum timeout that is configurable in the MIB variable begemotNgTimeout Other messages arriving while the functions are waiting for the response are queued and delivered on the next call to the module's idle function.
All three functions take the same arguments as the
ng_output (*);
functions.
The functions return the response message in a buffer allocated by
malloc(3)
or NULL in case of an error.
The maximum size of the response buffer can be
configured in the variable
begemotNgResBufSiz
A data message can be send with the function
ng_send_data (.);
This function takes the name of the
snmp_node 's
hook through which to send the data, a pointer to the message buffer and
the size of the message.
It returns -1 if an error happens.
The function
ng_register_cookie ();
registers a control message receive function.
If a control message is
received, that is not consumed by the dialog functions, the list of registered
control message receive functions is scanned.
If the cookie in the received
message is the same as the
Fa cookie
argument to the
ng_register_cookie ();
call and the
Fa id
argument to the
ng_register_cookie ();
call was either 0 or equals the node id which sent the control message, the
handler function
Fa func
is called with a pointer to the received message, the hook on which the
message was received (or NULL if it was received not on a hook), the id
of the sender's node and the
Fa uarg
argument of the registration call.
The handler function should not modify
the contents of the message, because more than one function may be registered
to the same cookie and node id.
A control message registration can be undone by calling
ng_unregister_cookie ();
with the return value of the registration call.
If an error occurs while registering,
ng_register_cookie ();
returns NULL.
A module can call
ng_register_hook ();
to register a callback for data messages on one of the
snmp_node 's
hooks.
If a data message is received on that hook, the callback function
Fa func
is called with the hook name, a pointer to the data message, the size of
the message and the argument
Fa uarg
to the registration function.
The message should be treated as read-only.
A data message registration can be undone by calling
ng_unregister_hook ();
with the return value of the registration call.
If an error occurs while registering,
ng_register_hook ();
returns NULL.
The function
ng_unregister_module ();
removes all control and data registrations for that module.
The function
ng_node_id ();
returns the id of the node addressed by
Fa path
or 0 if the node does not exists.
The function
ng_node_id_node ();
returns the id of the node with name
Fa node
or 0 if the node does not exist.
The function
ng_node_node ();
retrieves the name of the node with id
Fa id
and writes it to the buffer pointed to by
Fa name .
This buffer should be at least
NG_NODESIZ
bytes long.
The function returns the node id or 0 if the
node is not found
The function
ng_node_type ();
retrieves the name of the node with id
Fa id
and writes it to the buffer pointed to by
Fa type .
This buffer should be at least
NG_TYPESIZ
bytes long.
The function returns the node id or 0 if the
node is not found.
The function
ng_peer_hook_id ();
writes the name of the peer hook of the hook
Fa hook
on the node with
Fa id
to the buffer pointed to by
Fa peer_hook .
The buffer should be at least
NG_HOOKSIZ
bytes long.
The function returns 0 if the node and the hook is found, -1
otherwise.
The function skips intermediate tee nodes (see
ng_tee4).
The function
ng_next_node_id ();
returns the node id of the peer node that is on the other side of hook
Fa hook
of node
Fa id .
If
Fa type
is not NULL, the function checks, that the peer node's type is
Fa type .
The function skips intermediate tee nodes (see
ng_tee4).
It returns the node id of the peer node or 0 if an error occurs or the
types do not match.
The function
ng_mkpeer_id ();
creates a new node of type
Fa type
whose hook
Fa peerhook
will be connected to
Fa hook
of node
Fa id .
If
Fa name
is not NULL the new node is named with this name.
The function returns
The node id of the new node or 0 if an error happens.
The functions
ng_connect_node ();
and
ng_connect_id ();
make a new hook connecting
Fa ourhook
of the modules socket node
snmp_node
to
Fa peerhook
of the node identified by id
Fa id
or name
Fa node .
The functions return 0 on success or -1 otherwise.
The function
ng_connect2_id ();
connects hook
Fa ourhook
of the node with id
Fa id
to hook
Fa peerhook
of the node with id
Fa peer .
The functions return 0 on success or -1 otherwise.
The function
ng_connect2_tee_id (does the same as);
ng_connect2_id ();
except, that it puts an unnamed tee node between the two nodes.
The function
ng_rmhook ();
removes hook
Fa hook
on the module's
snmp_node
The function
ng_rmhook_id ();
removes hook
Fa hook
on the node with id
Fa id .
The function
ng_rmhook_tee_id ();
additionally shuts down all tee nodes between the node and the first non-tee
peer.
The function
ng_shutdown_id ();
destroys the given node.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |