#include "agent_registry.h"Go to the source code of this file.
Data Structures | |
| struct | variable |
Defines | |
| #define | INST 0xFFFFFFFF |
| #define | MATCH_FAILED (-1) |
| #define | MATCH_SUCCEEDED 0 |
Typedefs | |
| typedef u_char * | FindVarMethod (struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) |
Functions | |
| typedef | int (WriteMethod)(int action, u_char *var_val, u_char var_val_type, size_t var_val_len, u_char *statP, oid *name, size_t length) |
| typedef | int (AddVarMethod)(struct agent_snmp_session *asp, struct variable_list *vbp) |
| u_char * | getStatPtr (oid *, size_t *, u_char *, size_t *, u_short *, int, WriteMethod **write_method, struct snmp_pdu *, int *) |
| int | init_agent (const char *) |
| int | subtree_old_size (void) |
| void | sort_tree (void) |
Variables | |
| long | long_return |
| u_char | return_buf [] |
| oid | nullOid [] |
| int | nullOidLen |
|
|
Definition at line 67 of file snmp_vars.h. |
|
|
Definition at line 88 of file snmp_vars.h. |
|
|
Definition at line 89 of file snmp_vars.h. |
|
|
Definition at line 44 of file snmp_vars.h. |
|
||||||||||||||||||||||||||||||||||||||||
|
Definition at line 437 of file snmp_vars.c. 00448 {
00449 struct subtree *tp;
00450 oid save[MAX_OID_LEN];
00451 size_t savelen = 0;
00452 u_char result_type;
00453 u_short result_acl;
00454 u_char *search_return=NULL;
00455
00456 found = FALSE;
00457
00458 if (!exact){
00459 memcpy(save, name, *namelen * sizeof(oid));
00460 savelen = *namelen;
00461 }
00462 *write_method = NULL;
00463
00464 DEBUGMSGTL(("snmp_vars", "Looking for: "));
00465 DEBUGMSGOID(("snmp_vars", name, *namelen));
00466 DEBUGMSG(("snmp_vars"," ...\n"));
00467
00468 tp = find_subtree(name, *namelen, NULL, ""); /* WWW delete this function */
00469
00470 if ((tp != NULL) && (tp->flags & FULLY_QUALIFIED_INSTANCE) && (!exact)) {
00471 /* There is no point in trying to do a getNext operation at this
00472 node, because it covers exactly one instance. Therfore, find the
00473 next node. This arises in AgentX row registrations (only). */
00474 DEBUGMSGTL(("snmp_vars", "fully-qualified instance && !exact\n"));
00475 tp = find_subtree_next(name, *namelen, tp, ""); /* WWW: delete this function */
00476 }
00477
00478 while (search_return == NULL && tp != NULL) {
00479 DEBUGMSGTL(("snmp_vars", "Trying tree: "));
00480 DEBUGMSGOID(("snmp_vars", tp->name, tp->namelen));
00481 DEBUGMSG(("snmp_vars"," ...\n"));
00482 search_return = search_subtree_vars( tp, name, namelen, &result_type,
00483 len, &result_acl, exact, write_method,
00484 pdu, noSuchObject);
00485 if ( search_return != NULL || exact )
00486 break;
00487 tp = tp->next;
00488 }
00489 if ( tp == NULL ) {
00490 if (!search_return && !exact){
00491 memcpy(name, save, savelen * sizeof(oid));
00492 *namelen = savelen;
00493 }
00494 if (found)
00495 *noSuchObject = FALSE;
00496 else
00497 *noSuchObject = TRUE;
00498 return NULL;
00499 }
00500 *type = result_type;
00501 *acl = result_acl;
00502 return search_return;
00503 }
|
|
|
Definition at line 217 of file snmp_vars.c. Referenced by main().
00218 {
00219 int r = 0;
00220
00221 /* get current time (ie, the time the agent started) */
00222 gettimeofday(&starttime, NULL);
00223 starttime.tv_sec--;
00224 starttime.tv_usec += 1000000L;
00225
00226 /* we handle alarm signals ourselves in the select loop */
00227 ds_set_boolean(DS_LIBRARY_ID, DS_LIB_ALARM_DONT_USE_SIG, 1);
00228
00229 #ifdef CAN_USE_NLIST
00230 init_kmem("/dev/kmem");
00231 #endif
00232
00233 setup_tree();
00234
00235 init_agent_read_config(app);
00236
00237 #ifdef TESTING
00238 auto_nlist_print_tree(-2, 0);
00239 #endif
00240
00241 /* always register a callback transport for internal use */
00242 callback_master_sess = snmp_callback_open(0, handle_snmp_packet,
00243 snmp_check_packet,
00244 snmp_check_parse);
00245 if (callback_master_sess)
00246 callback_master_num = callback_master_sess->local_port;
00247 else
00248 callback_master_num = -1;
00249
00250 /* initialize agentx subagent if necessary. */
00251 #ifdef USING_AGENTX_SUBAGENT_MODULE
00252 if(ds_get_boolean(DS_APPLICATION_ID, DS_AGENT_ROLE) == SUB_AGENT)
00253 r = subagent_pre_init();
00254 #endif
00255
00256 /* Register configuration tokens from transport modules. */
00257 #ifdef SNMP_TRANSPORT_UDP_DOMAIN
00258 snmp_udp_agent_config_tokens_register();
00259 #endif
00260
00261 return r;
00262 } /* end init_agent() */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 61 of file snmp_vars.h. |
|
|
Definition at line 64 of file snmp_vars.h. |
|
|
Definition at line 65 of file snmp_vars.h. |
|
|
Definition at line 62 of file snmp_vars.h. |
1.2.11 written by Dimitri van Heesch,
© 1997-2001
[an error occurred while processing this directive]
[an error occurred while processing this directive]
Last modified: Wednesday, 01-Aug-2018 04:41:28 UTC
For questions regarding web content and site functionality, please write to the net-snmp-users mail list.