struct expExpression * expExpression_getNextEntry( char *owner, char *name ) { netsnmp_variable_list owner_var, name_var; memset(&owner_var, 0, sizeof(netsnmp_variable_list)); memset(&name_var, 0, sizeof(netsnmp_variable_list)); snmp_set_var_typed_value( &owner_var, ASN_OCTET_STR, (u_char*)owner, strlen(owner)); snmp_set_var_typed_value( &name_var, ASN_OCTET_STR, (u_char*)name, strlen(name)); owner_var.next_variable = &name_var; return (struct expExpression *) netsnmp_tdata_row_entry( netsnmp_tdata_row_next_byidx(expr_table_data, &owner_var)); }
int clear_mteETable(int majorID, int minorID, void *serverarg, void *clientarg) { netsnmp_tdata_row *row; netsnmp_variable_list owner_var; /* * We're only interested in entries set up via the config files */ memset( &owner_var, 0, sizeof(netsnmp_variable_list)); snmp_set_var_typed_value( &owner_var, ASN_OCTET_STR, "snmpd.conf", strlen("snmpd.conf")); while (( row = netsnmp_tdata_row_next_byidx( event_table_data, &owner_var ))) { /* * XXX - check for owner of "snmpd.conf" * and break at the end of these */ netsnmp_tdata_remove_and_delete_row( event_table_data, row ); } return SNMPERR_SUCCESS; }
netsnmp_tdata_row * expObject_getFirst( char *expOwner, char *expName ) { netsnmp_tdata_row *row; struct expObject *entry; netsnmp_variable_list owner_var; netsnmp_variable_list name_var; if (!expOwner || !expName) return NULL; /* * Find the first object entry that could potentially * refer to the specified expression... */ memset(&owner_var, 0, sizeof(netsnmp_variable_list)); memset(&name_var, 0, sizeof(netsnmp_variable_list)); snmp_set_var_typed_value( &owner_var, ASN_OCTET_STR, (u_char*)expOwner, strlen(expOwner)); snmp_set_var_typed_value( &name_var, ASN_OCTET_STR, (u_char*)expName, strlen(expName)); owner_var.next_variable = &name_var; row = netsnmp_tdata_row_next_byidx( expObject_table_data, &owner_var ); /* * ... and check that it does! */ if (!row || !row->data) return NULL; entry = (struct expObject *)row->data; if ((strcmp( entry->expOwner, expOwner ) != 0) || (strcmp( entry->expName, expName ) != 0)) return NULL; return row; }