⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.23
Server IP:
178.33.27.10
Server:
Linux cpanel.dev-unit.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
Server Software:
Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
PHP Version:
8.2.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
include
/
net-snmp
/
View File Name :
types.h
#ifndef NET_SNMP_TYPES_H #define NET_SNMP_TYPES_H /** * Definitions of data structures, used within the library API. */ #include <stdio.h> #ifndef NET_SNMP_CONFIG_H #error "Please include <net-snmp/net-snmp-config.h> before this file" #endif /* * For 'timeval' */ #if TIME_WITH_SYS_TIME # include <sys/time.h> # include <time.h> #else # if HAVE_SYS_TIME_H # include <sys/time.h> # else # include <time.h> # endif #endif #ifdef HAVE_INTTYPES_H #include <inttypes.h> #endif #include <sys/types.h> #if 1 /* * If neither the Microsoft winsock header file nor the MinGW winsock header * file has already been included, do this now. */ # if defined(HAVE_WINSOCK2_H) && defined(HAVE_WS2TCPIP_H) # if !defined(HAVE_WIN32_PLATFORM_SDK) && _MSC_VER -0 <= 1200 \ && _WIN32_WINNT -0 >= 0x0400 /* * When using the MSVC 6 header files, including <winsock2.h> when * _WIN32_WINNT >= 0x0400 results in a compilation error. Hence include * <windows.h> instead, because <winsock2.h> is included from inside * <windows.h> when _WIN32_WINNT >= 0x0400. The SDK version of <windows.h> * does not include <winsock2.h> however. */ # include <windows.h> # else # include <winsock2.h> # endif # include <ws2tcpip.h> # elif defined(HAVE_WINSOCK_H) # include <winsock.h> # endif #endif #if defined(WIN32) && !defined(cygwin) typedef HANDLE netsnmp_pid_t; #define NETSNMP_NO_SUCH_PROCESS INVALID_HANDLE_VALUE #else /* * Note: on POSIX-compliant systems, pid_t is defined in <sys/types.h>. * And if pid_t has not been defined in <sys/types.h>, AC_TYPE_PID_T ensures * that a pid_t definition is present in net-snmp-config.h. */ typedef pid_t netsnmp_pid_t; #define NETSNMP_NO_SUCH_PROCESS -1 #endif #if HAVE_NETINET_IN_H #include <netinet/in.h> /* For definition of in_addr_t */ #endif #include <net-snmp/library/oid.h> #ifdef __cplusplus extern "C" { #endif #ifndef HAVE_SOCKLEN_T typedef u_int socklen_t; #endif #ifndef HAVE_IN_ADDR_T /* * The type in_addr_t must match the type of sockaddr_in::sin_addr. * For MSVC and MinGW32, this is u_long. */ typedef u_long in_addr_t; #endif #ifndef HAVE_SSIZE_T #if defined(__INT_MAX__) && __INT_MAX__ == 2147483647 typedef int ssize_t; #else typedef long ssize_t; #endif #endif #ifndef HAVE_NFDS_T typedef unsigned long int nfds_t; #endif /* * For the initial release, this will just refer to the * relevant UCD header files. * In due course, the types and structures relevant to the * Net-SNMP API will be identified, and defined here directly. * * But for the time being, this header file is primarily a placeholder, * to allow application writers to adopt the new header file names. */ typedef union { long *integer; u_char *string; oid *objid; u_char *bitstring; struct counter64 *counter64; #ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES float *floatVal; double *doubleVal; /* * t_union *unionVal; */ #endif /* NETSNMP_WITH_OPAQUE_SPECIAL_TYPES */ } netsnmp_vardata; #define MAX_OID_LEN 128 /* max subid's in an oid */ /** @typedef struct variable_list netsnmp_variable_list * Typedefs the variable_list struct into netsnmp_variable_list */ /** @struct variable_list * The netsnmp variable list binding structure, it's typedef'd to * netsnmp_variable_list. */ typedef struct variable_list { /** NULL for last variable */ struct variable_list *next_variable; /** Object identifier of variable */ oid *name; /** number of subid's in name */ size_t name_length; /** ASN type of variable */ u_char type; /** value of variable */ netsnmp_vardata val; /** the length of the value to be copied into buf */ size_t val_len; /** buffer to hold the OID */ oid name_loc[MAX_OID_LEN]; /** 90 percentile < 40. */ u_char buf[40]; /** (Opaque) hook for additional data */ void *data; /** callback to free above */ void (*dataFreeHook)(void *); int index; } netsnmp_variable_list; /** @typedef struct snmp_pdu to netsnmp_pdu * Typedefs the snmp_pdu struct into netsnmp_pdu */ /** @struct snmp_pdu * The snmp protocol data unit. */ typedef struct snmp_pdu { #define non_repeaters errstat #define max_repetitions errindex /* * Protocol-version independent fields */ /** snmp version */ long version; /** Type of this PDU */ int command; /** Request id - note: not incremented on retries */ long reqid; /** Message id for V3 messages note: incremented for each retry */ long msgid; /** Unique ID for incoming transactions */ long transid; /** Session id for AgentX messages */ long sessid; /** Error status (non_repeaters in GetBulk) */ long errstat; /** Error index (max_repetitions in GetBulk) */ long errindex; /** Uptime */ u_long time; u_long flags; int securityModel; /** noAuthNoPriv, authNoPriv, authPriv */ int securityLevel; int msgParseModel; /** * Transport-specific opaque data. This replaces the IP-centric address * field. */ void *transport_data; int transport_data_length; /** * The actual transport domain. This SHOULD NOT BE FREE()D. */ const oid *tDomain; size_t tDomainLen; netsnmp_variable_list *variables; /* * SNMPv1 & SNMPv2c fields */ /** community for outgoing requests. */ u_char *community; /** length of community name. */ size_t community_len; /* * Trap information */ /** System OID */ oid *enterprise; size_t enterprise_length; /** trap type */ long trap_type; /** specific type */ long specific_type; /** This is ONLY used for v1 TRAPs */ unsigned char agent_addr[4]; /* * SNMPv3 fields */ /** context snmpEngineID */ u_char *contextEngineID; /** Length of contextEngineID */ size_t contextEngineIDLen; /** authoritative contextName */ char *contextName; /** Length of contextName */ size_t contextNameLen; /** authoritative snmpEngineID for security */ u_char *securityEngineID; /** Length of securityEngineID */ size_t securityEngineIDLen; /** on behalf of this principal */ char *securityName; /** Length of securityName. */ size_t securityNameLen; /* * AgentX fields * (also uses SNMPv1 community field) */ int priority; int range_subid; void *securityStateRef; } netsnmp_pdu; /** @typedef struct snmp_session netsnmp_session * Typedefs the snmp_session struct intonetsnmp_session */ struct snmp_session; typedef struct snmp_session netsnmp_session; #define USM_AUTH_KU_LEN 32 #define USM_PRIV_KU_LEN 32 typedef int (*snmp_callback) (int, netsnmp_session *, int, netsnmp_pdu *, void *); typedef int (*netsnmp_callback) (int, netsnmp_session *, int, netsnmp_pdu *, void *); struct netsnmp_container_s; /** @struct snmp_session * The snmp session structure. */ struct snmp_session { /* * Protocol-version independent fields */ /** snmp version */ long version; /** Number of retries before timeout. */ int retries; /** Number of uS until first timeout, then exponential backoff */ long timeout; u_long flags; struct snmp_session *subsession; struct snmp_session *next; /** name or address of default peer (may include transport specifier and/or port number) */ char *peername; /** UDP port number of peer. (NO LONGER USED - USE peername INSTEAD) */ u_short remote_port; /** My Domain name or dotted IP address, 0 for default */ char *localname; /** My UDP port number, 0 for default, picked randomly */ u_short local_port; /** * Authentication function or NULL if null authentication is used */ u_char *(*authenticator) (u_char *, size_t *, u_char *, size_t); /** Function to interpret incoming data */ netsnmp_callback callback; /** * Pointer to data that the callback function may consider important */ void *callback_magic; /** copy of system errno */ int s_errno; /** copy of library errno */ int s_snmp_errno; /** Session id - AgentX only */ long sessid; /* * SNMPv1 & SNMPv2c fields */ /** community for outgoing requests. */ u_char *community; /** Length of community name. */ size_t community_len; /** Largest message to try to receive. */ size_t rcvMsgMaxSize; /** Largest message to try to send. */ size_t sndMsgMaxSize; /* * SNMPv3 fields */ /** are we the authoritative engine? */ u_char isAuthoritative; /** authoritative snmpEngineID */ u_char *contextEngineID; /** Length of contextEngineID */ size_t contextEngineIDLen; /** initial engineBoots for remote engine */ u_int engineBoots; /** initial engineTime for remote engine */ u_int engineTime; /** authoritative contextName */ char *contextName; /** Length of contextName */ size_t contextNameLen; /** authoritative snmpEngineID */ u_char *securityEngineID; /** Length of contextEngineID */ size_t securityEngineIDLen; /** on behalf of this principal */ char *securityName; /** Length of securityName. */ size_t securityNameLen; /** auth protocol oid */ oid *securityAuthProto; /** Length of auth protocol oid */ size_t securityAuthProtoLen; /** Ku for auth protocol XXX */ u_char securityAuthKey[USM_AUTH_KU_LEN]; /** Length of Ku for auth protocol */ size_t securityAuthKeyLen; /** Kul for auth protocol */ u_char *securityAuthLocalKey; /** Length of Kul for auth protocol XXX */ size_t securityAuthLocalKeyLen; /** priv protocol oid */ oid *securityPrivProto; /** Length of priv protocol oid */ size_t securityPrivProtoLen; /** Ku for privacy protocol XXX */ u_char securityPrivKey[USM_PRIV_KU_LEN]; /** Length of Ku for priv protocol */ size_t securityPrivKeyLen; /** Kul for priv protocol */ u_char *securityPrivLocalKey; /** Length of Kul for priv protocol XXX */ size_t securityPrivLocalKeyLen; /** snmp security model, v1, v2c, usm */ int securityModel; /** noAuthNoPriv, authNoPriv, authPriv */ int securityLevel; /** target param name */ char *paramName; /** * security module specific */ void *securityInfo; /** * transport specific configuration */ struct netsnmp_container_s *transport_configuration; /** * use as you want data * * used by 'SNMP_FLAGS_RESP_CALLBACK' handling in the agent * XXX: or should we add a new field into this structure? */ void *myvoid; }; #include <net-snmp/library/types.h> #include <net-snmp/definitions.h> #include <net-snmp/library/snmp_api.h> #ifdef __cplusplus } #endif #endif /* NET_SNMP_TYPES_H */