snmp_core.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9/* DEBUG: section 49 SNMP Interface */
10
11#ifndef SQUID_SNMP_CORE_H
12#define SQUID_SNMP_CORE_H
13
14#include "acl/Data.h"
16#include "cache_snmp.h"
17#include "comm/forward.h"
18#include "ip/forward.h"
19
20class MemBuf;
21
22#define SNMP_REQUEST_SIZE 4096
23#define MAX_PROTOSTAT 5
24
27typedef oid *(instance_Fn) (oid * name, snint * len, mib_tree_entry * current, oid_ParseFn ** Fn);
28typedef enum {atNone = 0, atSum, atAverage, atMax, atMin} AggrType;
29
32 int len;
36
38
41};
42
43struct snmp_pdu* snmpAgentResponse(struct snmp_pdu* PDU);
44AggrType snmpAggrType(oid* Current, snint CurrentLen);
45
47
48extern PF snmpHandleUdp;
49void snmpInit(void);
50void snmpOpenPorts(void);
51void snmpClosePorts(void);
52const char * snmpDebugOid(oid * Name, snint Len, MemBuf &outbuf);
53void addr2oid(Ip::Address &addr, oid *Dest);
54void oid2addr(oid *Dest, Ip::Address &addr, u_int code);
55
56namespace Acl
57{
58
60class SnmpCommunityCheck: public ParameterizedNode< ACLData<const char *> >
61{
62public:
63 /* ACL API */
64 int match(ACLChecklist *) override;
65};
66
67} // namespace Acl
68
69#endif /* SQUID_SNMP_CORE_H */
70
u_int oid
Definition: asn1.h:42
int64_t snint
Definition: cache_snmp.h:14
an "snmp_community" ACL
Definition: snmp_core.h:61
int match(ACLChecklist *) override
Matches the actual data in checklist against this ACL.
Definition: snmp_core.cc:1137
Definition: MemBuf.h:24
void PF(int, void *)
Definition: forward.h:18
unsigned char code
Definition: html_quote.c:20
Definition: Acl.cc:31
Comm::ConnectionPointer snmpOutgoingConn
Definition: snmp_core.cc:39
const char * snmpDebugOid(oid *Name, snint Len, MemBuf &outbuf)
Definition: snmp_core.cc:1056
void snmpInit(void)
Definition: snmp_core.cc:71
PF snmpHandleUdp
oid *() instance_Fn(oid *name, snint *len, mib_tree_entry *current, oid_ParseFn **Fn)
Definition: snmp_core.h:27
void snmpOpenPorts(void)
Definition: snmp_core.cc:259
void snmpClosePorts(void)
Definition: snmp_core.cc:323
struct snmp_pdu * snmpAgentResponse(struct snmp_pdu *PDU)
Definition: snmp_core.cc:460
void addr2oid(Ip::Address &addr, oid *Dest)
Definition: snmp_core.cc:1083
void oid2addr(oid *Dest, Ip::Address &addr, u_int code)
Definition: snmp_core.cc:1115
variable_list *() oid_ParseFn(variable_list *, snint *)
Definition: snmp_core.h:25
AggrType snmpAggrType(oid *Current, snint CurrentLen)
Definition: snmp_core.cc:573
AggrType
Definition: snmp_core.h:28
@ atSum
Definition: snmp_core.h:28
@ atMin
Definition: snmp_core.h:28
@ atNone
Definition: snmp_core.h:28
@ atMax
Definition: snmp_core.h:28
@ atAverage
Definition: snmp_core.h:28
Definition: snmp_core.h:30
oid_ParseFn * parsefunction
Definition: snmp_core.h:33
instance_Fn * instancefunction
Definition: snmp_core.h:34
oid * name
Definition: snmp_core.h:31
int len
Definition: snmp_core.h:32
struct _mib_tree_entry ** leaves
Definition: snmp_core.h:37
AggrType aggrType
Definition: snmp_core.h:40
int children
Definition: snmp_core.h:35
struct _mib_tree_entry * parent
Definition: snmp_core.h:39

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors