void send_trap_appl_status_changed(int applIndex, char *applName, int applOperStatus) { SNMP_variable *list = NULL; SNMP_value value; /* applName */ value.v_string.chars = (u_char *) applName; if(applName == NULL) value.v_string.len = 0; else /* LINTED */ value.v_string.len = (int32_t)strlen(applName); applName_name.subids[applName_name.len - 1] = applIndex; list = snmp_typed_variable_append(list, &applName_name, STRING, &value, error_label); if(list == NULL) { error("send_trap_appl_status_changed(%d, %s, %d) failed: %s", applIndex, applName, applOperStatus, error_label); return; } /* applOperStatus */ value.v_integer = applOperStatus; applOperStatus_name.subids[applOperStatus_name.len - 1] = applIndex; list = snmp_typed_variable_append(list, &applOperStatus_name, INTEGER, &value, error_label); if(list == NULL) { error("send_trap_appl_status_changed(%d, %s, %d) failed: %s", applIndex, applName, applOperStatus, error_label); return; } if(trap_send_to_all_destinators(NULL, SNMP_TRAP_ENTERPRISESPECIFIC, TRAP_APPL_ALARM, list, error_label)) { error("send_trap_appl_status_changed(%d, %s, %d) failed: %s", applIndex, applName, applOperStatus, error_label); snmp_variable_list_free(list); return; } snmp_variable_list_free(list); return; }
main() { trace_flags = 0xFFF; if(trap_destinator_add("panda", error_label)) { fprintf(stderr, "trap_destinator_add() failed: %s\n", error_label); exit(1); } if(trap_send_to_all_destinators(NULL, SNMP_TRAP_WARMSTART, 0, NULL, error_label)) { fprintf(stderr, "trap_send_to_alldestinators() failed: %s\n", error_label); exit(1); } exit(0); }
void send_trap_appl_alarm(int applIndex, char *applName, int alarmId, int alarmSeverity, char *alarmDescr) { SNMP_variable *list = NULL; SNMP_value value; /* applName */ value.v_string.chars = (u_char *) applName; if(applName == NULL) value.v_string.len = 0; else /* LINTED */ value.v_string.len = (int32_t)strlen(applName); applName_name.subids[applName_name.len - 1] = applIndex; list = snmp_typed_variable_append(list, &applName_name, STRING, &value, error_label); if(list == NULL) { error("send_trap_appl_alarm(%d, %s, %d, %d, %s) failed: %s", applIndex, applName, alarmId, alarmSeverity, alarmDescr, error_label); return; } /* alarmId */ value.v_integer = alarmId; list = snmp_typed_variable_append(list, &alarmId_name, INTEGER, &value, error_label); if(list == NULL) { error("send_trap_appl_alarm(%d, %s, %d, %d, %s) failed: %s", applIndex, applName, alarmId, alarmSeverity, alarmDescr, error_label); return; } /* alarmSeverity */ value.v_integer = alarmSeverity; list = snmp_typed_variable_append(list, &alarmSeverity_name, INTEGER, &value, error_label); if(list == NULL) { error("send_trap_appl_alarm(%d, %s, %d, %d, %s) failed: %s", applIndex, applName, alarmId, alarmSeverity, alarmDescr, error_label); return; } /* alarmDescr */ value.v_string.chars = (u_char *) alarmDescr; if(alarmDescr == NULL) value.v_string.len = 0; else /* LINTED */ value.v_string.len = (int32_t)strlen(alarmDescr); list = snmp_typed_variable_append(list, &alarmDescr_name, STRING, &value, error_label); if(list == NULL) { error("send_trap_appl_alarm(%d, %s, %d, %d, %s) failed: %s", applIndex, applName, alarmId, alarmSeverity, alarmDescr, error_label); return; } if(trap_send_to_all_destinators(NULL, SNMP_TRAP_ENTERPRISESPECIFIC, TRAP_APPL_ALARM, list, error_label)) { error("send_trap_appl_alarm(%d, %s, %d, %d, %s) failed: %s", applIndex, applName, alarmId, alarmSeverity, alarmDescr, error_label); snmp_variable_list_free(list); return; } snmp_variable_list_free(list); return; }