void save_manager::allow_registration(bool allowed) { // allow/deny registration m_reg_allowed = allowed; if (!allowed) dump_registry(); }
RETSIGTYPE SnmpdDump(int a) { dump_registry(); signal(SIGUSR1, SnmpdDump); }
void main( int argc, char argv[] ) { oid name[] = { 1, 2, 3, 4, 0 }; int i; memset( &varbind, 0, sizeof(struct variable_list)); snmp_set_var_objid( &varbind, name, 5 ); varbind.type = ASN_OCTET_STR; /* * Test index structure linking: * a) sorted by OID */ test_string_register( 20, "empty OID" ); test_string_register( 10, "first OID" ); test_string_register( 40, "last OID" ); test_string_register( 30, "middle OID" ); /* * b) sorted by index value */ test_string_register( 25, "eee: empty IDX" ); test_string_register( 25, "aaa: first IDX" ); test_string_register( 25, "zzz: last IDX" ); test_string_register( 25, "mmm: middle IDX" ); printf("This next one should fail....\n"); test_string_register( 25, "eee: empty IDX" ); /* duplicate */ printf("done\n"); /* * c) test initial index linking */ test_string_register( 5, "eee: empty initial IDX" ); test_string_register( 5, "aaa: replace initial IDX" ); /* * Did it all work? */ dump_registry(); unregister_index_by_session( main_session ); /* * Now test index allocation * a) integer values */ test_int_register( 110, -1 ); /* empty */ test_int_register( 110, -1 ); /* append */ test_int_register( 110, 10 ); /* append exact */ printf("This next one should fail....\n"); test_int_register( 110, 10 ); /* exact duplicate */ printf("done\n"); test_int_register( 110, -1 ); /* append */ test_int_register( 110, 5 ); /* insert exact */ /* * b) string values */ test_string_register( 120, NULL ); /* empty */ test_string_register( 120, NULL ); /* append */ test_string_register( 120, "aaaz" ); test_string_register( 120, NULL ); /* minor rollover */ test_string_register( 120, "zzzz" ); test_string_register( 120, NULL ); /* major rollover */ /* * c) OID values */ test_oid_register( 130, -1 ); /* empty */ test_oid_register( 130, -1 ); /* append */ varbind.val_len = varbind.name_length*sizeof(oid); memcpy( varbind.buf, varbind.name, varbind.val_len); varbind.val.objid = (oid*) varbind.buf; varbind.val_len += sizeof(oid); test_oid_register( 130, 255 ); /* append exact */ test_oid_register( 130, -1 ); /* minor rollover */ test_oid_register( 130, 100 ); /* insert exact */ printf("This next one should fail....\n"); test_oid_register( 130, 100 ); /* exact duplicate */ printf("done\n"); varbind.val.objid = (oid*)varbind.buf; for ( i=0; i<6; i++ ) varbind.val.objid[i]=255; varbind.val.objid[0]=1; test_oid_register( 130, 255 ); /* set up rollover */ test_oid_register( 130, -1 ); /* medium rollover */ for ( i=0; i<6; i++ ) varbind.val.objid[i]=255; varbind.val.objid[0]=2; test_oid_register( 130, 255 ); /* set up rollover */ test_oid_register( 130, -1 ); /* major rollover */ /* * Did it all work? */ dump_registry(); /* * Test the various "invalid" requests * (unsupported types, mis-matched types, etc) */ printf("The rest of these should fail....\n"); test_oid_register( 110, -1 ); test_oid_register( 110, 100 ); test_oid_register( 120, -1 ); test_oid_register( 120, 100 ); test_string_register( 110, NULL ); test_string_register( 110, "aaaa" ); test_string_register( 130, NULL ); test_string_register( 130, "aaaa" ); test_int_register( 120, -1 ); test_int_register( 120, 1 ); test_int_register( 130, -1 ); test_int_register( 130, 1 ); printf("done - this dump should be the same as before\n"); dump_registry(); }