#include <qtossapi.h> unsigned char *mkDPIresponse( snmp_dpi_hdr *hdr_p, long int error_code, long int error_index, snmp_dpi_set_packet *packet_p );
The mkDPIresponse() function makes a DPI response packet and returns a pointer to the packet.
None.
value | The value returned is a pointer to the DPI
packet.
If successful, then a pointer to a static DPI packet buffer is returned. The first 2 bytes of the buffer (in network byte order) contain the length of the remaining packet. The DPI_PACKET_LEN() function can be used to calculate the total length of the DPI packet. |
NULL | If unsuccessful, then a NULL pointer is returned. |
Be aware that the static buffer for the DPI packet is shared by other mkDPIxxxx() functions that create a serialized DPI packet.
For more information, see "SNMP Subagent Problem Determination" in the book Simple Network Management Protocol book.
The mkDPIresponse() function is used by a subagent to prepare a DPI RESPONSE packet to a GET, GETNEXT, SET, COMMIT, or UNDO request. The resulting packet can be sent to the SNMP agent.
Unnecessary free operations may result in an MCH6902 (type 2). If this occurs, remove the call to fDPIset().
See Code disclaimer information for information pertaining to code examples.
#include <qtossapi.h> unsigned char *pack_p; snmp_dpi_hdr *hdr_p; snmp_dpi_set_packet *set_p; long int num; hdr_p = pDPIpacket(pack_p); /* Parse incoming packet. */ /* Assume it's in pack_p. */ if (hdr_p) { /* Analyze packet, assume GET, no error. */ set_p = mkDPIset(snmp_dpi_set_packet_NULL_p, "1.3.6.1.2.3.4.5.", "1.0", SNMP_TYPE_Integer32, sizeof(num), &num); if (set_p) { pack_p = mkDPIresponse(hdr_p, SNMP_ERROR_noError, 0L, set_p); if (pack_p) { /* Send packet to subagent. */ } } }
Top | UNIX-Type APIs | APIs by category |