📄 snmp_core.c
字号:
/* * $Id: snmp_core.c,v 1.34.2.8 1999/04/29 21:57:38 wessels Exp $ * * DEBUG: section 49 SNMP support * AUTHOR: Glenn Chisholm * * SQUID Internet Object Cache http://squid.nlanr.net/Squid/ * ---------------------------------------------------------- * * Squid is the result of efforts by numerous individuals from the * Internet community. Development is led by Duane Wessels of the * National Laboratory for Applied Network Research and funded by the * National Science Foundation. Squid is Copyrighted (C) 1998 by * Duane Wessels and the University of California San Diego. Please * see the COPYRIGHT file for full details. Squid incorporates * software developed and/or copyrighted by other sources. Please see * the CREDITS file for full details. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. * */#include "squid.h"#include "cache_snmp.h"#define SNMP_REQUEST_SIZE 4096#define MAX_PROTOSTAT 5typedef struct _mib_tree_entry mib_tree_entry;typedef oid *(instance_Fn) (oid * name, snint * len, mib_tree_entry * current, oid_ParseFn ** Fn);struct _mib_tree_entry { oid *name; int len; oid_ParseFn *parsefunction; instance_Fn *instancefunction; int children; struct _mib_tree_entry **leaves; struct _mib_tree_entry *parent;};mib_tree_entry *mib_tree_head;mib_tree_entry *mib_tree_last;#if STDC_HEADERSstatic mib_tree_entry *snmpAddNode(oid * name, int len, oid_ParseFn * parsefunction, instance_Fn * instancefunction, int children,...);static oid *snmpCreateOid(int length,...);#elsestatic mib_tree_entry *snmpAddNode();static oid *snmpCreateOid();#endifextern void (*snmplib_debug_hook) (int, char *);static oid *static_Inst(oid * name, snint * len, mib_tree_entry * current, oid_ParseFn ** Fn);static oid *time_Inst(oid * name, snint * len, mib_tree_entry * current, oid_ParseFn ** Fn);static oid *peer_Inst(oid * name, snint * len, mib_tree_entry * current, oid_ParseFn ** Fn);static oid *client_Inst(oid * name, snint * len, mib_tree_entry * current, oid_ParseFn ** Fn);static void snmpDecodePacket(snmp_request_t * rq);static void snmpConstructReponse(snmp_request_t * rq);static struct snmp_pdu *snmpAgentResponse(struct snmp_pdu *PDU);static oid_ParseFn *snmpTreeNext(oid * Current, snint CurrentLen, oid ** Next, snint * NextLen);static oid_ParseFn *snmpTreeGet(oid * Current, snint CurrentLen);static mib_tree_entry *snmpTreeEntry(oid entry, snint len, mib_tree_entry * current);static mib_tree_entry *snmpTreeSiblingEntry(oid entry, snint len, mib_tree_entry * current);static oid *snmpOidDup(oid * A, snint ALen);static void snmpSnmplibDebug(int lvl, char *buf);/* * The functions used during startup: * snmpInit * snmpConnectionOpen * snmpConnectionShutdown * snmpConnectionClose *//* * Turns the MIB into a Tree structure. Called during the startup process. */voidsnmpInit(void){ debug(49, 5) ("snmpInit: Called.\n"); debug(49, 5) ("snmpInit: Building SNMP mib tree structure\n"); snmplib_debug_hook = snmpSnmplibDebug; mib_tree_head = snmpAddNode(snmpCreateOid(1, 1), 1, NULL, NULL, 1, snmpAddNode(snmpCreateOid(2, 1, 3), 2, NULL, NULL, 1, snmpAddNode(snmpCreateOid(3, 1, 3, 6), 3, NULL, NULL, 1, snmpAddNode(snmpCreateOid(4, 1, 3, 6, 1), 4, NULL, NULL, 1, snmpAddNode(snmpCreateOid(5, 1, 3, 6, 1, 4), 5, NULL, NULL, 1, snmpAddNode(snmpCreateOid(6, 1, 3, 6, 1, 4, 1), 6, NULL, NULL, 1, snmpAddNode(snmpCreateOid(7, 1, 3, 6, 1, 4, 1, 3495), 7, NULL, NULL, 1, snmpAddNode(snmpCreateOid(LEN_SQUIDMIB, SQUIDMIB), 8, NULL, NULL, 5, snmpAddNode(snmpCreateOid(LEN_SQ_SYS, SQ_SYS), LEN_SQ_SYS, NULL, NULL, 3, snmpAddNode(snmpCreateOid(LEN_SYS, SQ_SYS, SYSVMSIZ), LEN_SYS, snmp_sysFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SYS, SQ_SYS, SYSSTOR), LEN_SYS, snmp_sysFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SYS, SQ_SYS, SYS_UPTIME), LEN_SYS, snmp_sysFn, static_Inst, 0)), snmpAddNode(snmpCreateOid(LEN_SQ_CONF, SQ_CONF), LEN_SQ_CONF, NULL, NULL, 5, snmpAddNode(snmpCreateOid(LEN_SYS, SQ_CONF, CONF_ADMIN), LEN_SYS, snmp_confFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SYS, SQ_CONF, CONF_VERSION), LEN_SYS, snmp_confFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SYS, SQ_CONF, CONF_VERSION_ID), LEN_SYS, snmp_confFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SYS, SQ_CONF, CONF_LOG_FAC), LEN_SYS, snmp_confFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SYS, SQ_CONF, CONF_STORAGE), LEN_SYS, NULL, NULL, 4, snmpAddNode(snmpCreateOid(LEN_CONF_ST, SQ_CONF, CONF_STORAGE, CONF_ST_MMAXSZ), LEN_CONF_ST, snmp_confFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_CONF_ST, SQ_CONF, CONF_STORAGE, CONF_ST_SWMAXSZ), LEN_CONF_ST, snmp_confFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_CONF_ST, SQ_CONF, CONF_STORAGE, CONF_ST_SWHIWM), LEN_CONF_ST, snmp_confFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_CONF_ST, SQ_CONF, CONF_STORAGE, CONF_ST_SWLOWM), LEN_CONF_ST, snmp_confFn, static_Inst, 0))), snmpAddNode(snmpCreateOid(LEN_SQ_PRF, SQ_PRF), LEN_SQ_PRF, NULL, NULL, 2, snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 1, SQ_PRF, PERF_SYS), LEN_SQ_PRF + 1, NULL, NULL, 11, snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 1), LEN_SQ_PRF + 2, snmp_prfSysFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 2), LEN_SQ_PRF + 2, snmp_prfSysFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 3), LEN_SQ_PRF + 2, snmp_prfSysFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 4), LEN_SQ_PRF + 2, snmp_prfSysFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 5), LEN_SQ_PRF + 2, snmp_prfSysFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 6), LEN_SQ_PRF + 2, snmp_prfSysFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 7), LEN_SQ_PRF + 2, snmp_prfSysFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 8), LEN_SQ_PRF + 2, snmp_prfSysFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 9), LEN_SQ_PRF + 2, snmp_prfSysFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 10), LEN_SQ_PRF + 2, snmp_prfSysFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 11), LEN_SQ_PRF + 2, snmp_prfSysFn, static_Inst, 0)), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 1, SQ_PRF, PERF_PROTO), LEN_SQ_PRF + 1, NULL, NULL, 2, snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_PROTO, 1), LEN_SQ_PRF + 2, NULL, NULL, 15, snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 1), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 2), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 3), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 4), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 5), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 6), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 7), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 8), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 9), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 10), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 11), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 12), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 13), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 14), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 15), LEN_SQ_PRF + 3, snmp_prfProtoFn, static_Inst, 0)), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_PROTO, 2), LEN_SQ_PRF + 2, NULL, NULL, 1, snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 2, 1), LEN_SQ_PRF + 3, NULL, NULL, 10, snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2, 1, 1), LEN_SQ_PRF + 4, snmp_prfProtoFn, time_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2, 1, 2), LEN_SQ_PRF + 4, snmp_prfProtoFn, time_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2, 1, 3), LEN_SQ_PRF + 4, snmp_prfProtoFn, time_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2, 1, 4), LEN_SQ_PRF + 4, snmp_prfProtoFn, time_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2, 1, 5), LEN_SQ_PRF + 4, snmp_prfProtoFn, time_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2, 1, 6), LEN_SQ_PRF + 4, snmp_prfProtoFn, time_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2, 1, 7), LEN_SQ_PRF + 4, snmp_prfProtoFn, time_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2, 1, 8), LEN_SQ_PRF + 4, snmp_prfProtoFn, time_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2, 1, 9), LEN_SQ_PRF + 4, snmp_prfProtoFn, time_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2, 1, 10), LEN_SQ_PRF + 4, snmp_prfProtoFn, time_Inst, 0))))), snmpAddNode(snmpCreateOid(LEN_SQ_NET, SQ_NET), LEN_SQ_NET, NULL, NULL, 3, snmpAddNode(snmpCreateOid(LEN_SQ_NET + 1, SQ_NET, NET_IP_CACHE), LEN_SQ_NET + 1, NULL, NULL, 8, snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE, IP_ENT), LEN_SQ_NET + 2, snmp_netIpFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE, IP_REQ), LEN_SQ_NET + 2, snmp_netIpFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE, IP_HITS), LEN_SQ_NET + 2, snmp_netIpFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE, IP_PENDHIT), LEN_SQ_NET + 2, snmp_netIpFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE, IP_NEGHIT), LEN_SQ_NET + 2, snmp_netIpFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE, IP_MISS), LEN_SQ_NET + 2, snmp_netIpFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE, IP_GHBN), LEN_SQ_NET + 2, snmp_netIpFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE, IP_LOC), LEN_SQ_NET + 2, snmp_netIpFn, static_Inst, 0)), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 1, SQ_NET, NET_FQDN_CACHE), LEN_SQ_NET + 1, NULL, NULL, 7, snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_FQDN_CACHE, FQDN_ENT), LEN_SQ_NET + 2, snmp_netFqdnFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_FQDN_CACHE, FQDN_REQ), LEN_SQ_NET + 2, snmp_netFqdnFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_FQDN_CACHE, FQDN_HITS), LEN_SQ_NET + 2, snmp_netFqdnFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_FQDN_CACHE, FQDN_PENDHIT), LEN_SQ_NET + 2, snmp_netFqdnFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_FQDN_CACHE, FQDN_NEGHIT), LEN_SQ_NET + 2, snmp_netFqdnFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_FQDN_CACHE, FQDN_MISS), LEN_SQ_NET + 2, snmp_netFqdnFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_FQDN_CACHE, FQDN_GHBN), LEN_SQ_NET + 2, snmp_netFqdnFn, static_Inst, 0)), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 1, SQ_NET, NET_DNS_CACHE), LEN_SQ_NET + 1, NULL, NULL, 3, snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_DNS_CACHE, DNS_REQ), LEN_SQ_NET + 2, snmp_netDnsFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_DNS_CACHE, DNS_REP), LEN_SQ_NET + 2, snmp_netDnsFn, static_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_DNS_CACHE, DNS_SERVERS), LEN_SQ_NET + 2, snmp_netDnsFn, static_Inst, 0))), snmpAddNode(snmpCreateOid(LEN_SQ_MESH, SQ_MESH), LEN_SQ_MESH, NULL, NULL, 2, snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 1, SQ_MESH, 1), LEN_SQ_MESH + 1, NULL, NULL, 1, snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 2, SQ_MESH, 1, 1), LEN_SQ_MESH + 2, NULL, NULL, 13, snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 1), LEN_SQ_MESH + 3, snmp_meshPtblFn, peer_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 2), LEN_SQ_MESH + 3, snmp_meshPtblFn, peer_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 3), LEN_SQ_MESH + 3, snmp_meshPtblFn, peer_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 4), LEN_SQ_MESH + 3, snmp_meshPtblFn, peer_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 5), LEN_SQ_MESH + 3, snmp_meshPtblFn, peer_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 6), LEN_SQ_MESH + 3, snmp_meshPtblFn, peer_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 7), LEN_SQ_MESH + 3, snmp_meshPtblFn, peer_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 8), LEN_SQ_MESH + 3, snmp_meshPtblFn, peer_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 9), LEN_SQ_MESH + 3, snmp_meshPtblFn, peer_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 10), LEN_SQ_MESH + 3, snmp_meshPtblFn, peer_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 11), LEN_SQ_MESH + 3, snmp_meshPtblFn, peer_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 12), LEN_SQ_MESH + 3, snmp_meshPtblFn, peer_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 13), LEN_SQ_MESH + 3, snmp_meshPtblFn, peer_Inst, 0))), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 1, SQ_MESH, 2), LEN_SQ_MESH + 1, NULL, NULL, 1, snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 2, SQ_MESH, 2, 1), LEN_SQ_MESH + 2, NULL, NULL, 9, snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 1), LEN_SQ_MESH + 3, snmp_meshCtblFn, client_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 2), LEN_SQ_MESH + 3, snmp_meshCtblFn, client_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 3), LEN_SQ_MESH + 3, snmp_meshCtblFn, client_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 4), LEN_SQ_MESH + 3, snmp_meshCtblFn, client_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 5), LEN_SQ_MESH + 3, snmp_meshCtblFn, client_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 6), LEN_SQ_MESH + 3, snmp_meshCtblFn, client_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 7), LEN_SQ_MESH + 3, snmp_meshCtblFn, client_Inst, 0), snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 8), LEN_SQ_MESH + 3, snmp_meshCtblFn, client_Inst, 0), (mib_tree_last = snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 9), LEN_SQ_MESH + 3, snmp_meshCtblFn, client_Inst, 0))))) ) ) ) ) ) ) ) ); debug(49, 9) ("snmpInit: Completed SNMP mib tree structure\n");}voidsnmpConnectionOpen(void){ u_short port; struct sockaddr_in xaddr; socklen_t len; int x; debug(49, 5) ("snmpConnectionOpen: Called\n"); if ((port = Config.Port.snmp) > (u_short) 0) { enter_suid(); theInSnmpConnection = comm_open(SOCK_DGRAM, 0, Config.Addrs.snmp_incoming, port, COMM_NONBLOCKING, "SNMP Port");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -