prefix hostname on sel ipmievd sessions

This commit is contained in:
Duncan Laurie 2006-08-18 22:31:19 +00:00
parent 1c60cbf500
commit 4e79265a7c

View File

@ -87,6 +87,7 @@ int selwatch_timeout = 10; /* default to 10 seconds */
struct ipmi_event_intf { struct ipmi_event_intf {
char name[16]; char name[16];
char desc[128]; char desc[128];
char prefix[72];
int (*setup)(struct ipmi_event_intf * eintf); int (*setup)(struct ipmi_event_intf * eintf);
int (*wait)(struct ipmi_event_intf * eintf); int (*wait)(struct ipmi_event_intf * eintf);
int (*read)(struct ipmi_event_intf * eintf); int (*read)(struct ipmi_event_intf * eintf);
@ -105,6 +106,7 @@ static int openipmi_read(struct ipmi_event_intf * eintf);
static struct ipmi_event_intf openipmi_event_intf = { static struct ipmi_event_intf openipmi_event_intf = {
name: "open", name: "open",
desc: "OpenIPMI asyncronous notification of events", desc: "OpenIPMI asyncronous notification of events",
prefix: "",
setup: openipmi_setup, setup: openipmi_setup,
wait: openipmi_wait, wait: openipmi_wait,
read: openipmi_read, read: openipmi_read,
@ -193,27 +195,34 @@ log_event(struct ipmi_event_intf * eintf, struct sel_event_record * evt)
return; return;
if (evt->record_type == 0xf0) { if (evt->record_type == 0xf0) {
lprintf(LOG_ALERT, "Linux kernel panic: %.11s", (char *) evt + 5); lprintf(LOG_ALERT, "%sLinux kernel panic: %.11s",
eintf->prefix, (char *) evt + 5);
return; return;
} }
else if (evt->record_type >= 0xc0) { else if (evt->record_type >= 0xc0) {
lprintf(LOG_NOTICE, "IPMI Event OEM Record %02x", evt->record_type); lprintf(LOG_NOTICE, "%sIPMI Event OEM Record %02x",
eintf->prefix, evt->record_type);
return; return;
} }
type = ipmi_sel_get_sensor_type_offset(evt->sel_type.standard_type.sensor_type, evt->sel_type.standard_type.event_data[0]); type = ipmi_sel_get_sensor_type_offset(evt->sel_type.standard_type.sensor_type,
evt->sel_type.standard_type.event_data[0]);
ipmi_get_event_desc(intf, evt, &desc); ipmi_get_event_desc(intf, evt, &desc);
sdr = ipmi_sdr_find_sdr_bynumtype(intf, evt->sel_type.standard_type.sensor_num, evt->sel_type.standard_type.sensor_type); sdr = ipmi_sdr_find_sdr_bynumtype(intf, evt->sel_type.standard_type.sensor_num,
evt->sel_type.standard_type.sensor_type);
if (sdr == NULL) { if (sdr == NULL) {
/* could not find matching SDR record */ /* could not find matching SDR record */
if (desc) { if (desc) {
lprintf(LOG_NOTICE, "%s sensor - %s", lprintf(LOG_NOTICE, "%s%s sensor - %s",
type, desc); eintf->prefix, type, desc);
free(desc); free(desc);
} else { } else {
lprintf(LOG_NOTICE, "%s sensor %02x", lprintf(LOG_NOTICE, "%s%s sensor %02x",
type, evt->sel_type.standard_type.sensor_num); eintf->prefix, type,
evt->sel_type.standard_type.sensor_num);
} }
return; return;
} }
@ -237,7 +246,8 @@ log_event(struct ipmi_event_intf * eintf, struct sel_event_record * evt)
sdr->record.full, evt->sel_type.standard_type.event_data[2]); sdr->record.full, evt->sel_type.standard_type.event_data[2]);
} }
lprintf(LOG_NOTICE, "%s sensor %s %s (Reading %.*f %s Threshold %.*f %s)", lprintf(LOG_NOTICE, "%s%s sensor %s %s (Reading %.*f %s Threshold %.*f %s)",
eintf->prefix,
type, type,
sdr->record.full->id_string, sdr->record.full->id_string,
desc ? : "", desc ? : "",
@ -255,8 +265,8 @@ log_event(struct ipmi_event_intf * eintf, struct sel_event_record * evt)
/* /*
* Discrete Event * Discrete Event
*/ */
lprintf(LOG_NOTICE, "%s sensor %s %s", lprintf(LOG_NOTICE, "%s%s sensor %s %s",
type, sdr->record.full->id_string, desc ? : ""); eintf->prefix, type, sdr->record.full->id_string, desc ? : "");
if (((evt->sel_type.standard_type.event_data[0] >> 6) & 3) == 1) { if (((evt->sel_type.standard_type.event_data[0] >> 6) & 3) == 1) {
/* previous state and/or severity in event data byte 2 */ /* previous state and/or severity in event data byte 2 */
} }
@ -265,26 +275,29 @@ log_event(struct ipmi_event_intf * eintf, struct sel_event_record * evt)
/* /*
* OEM Event * OEM Event
*/ */
lprintf(LOG_NOTICE, "%s sensor %s %s", lprintf(LOG_NOTICE, "%s%s sensor %s %s",
type, sdr->record.full->id_string, desc ? : ""); eintf->prefix, type, sdr->record.full->id_string, desc ? : "");
} }
break; break;
case SDR_RECORD_TYPE_COMPACT_SENSOR: case SDR_RECORD_TYPE_COMPACT_SENSOR:
if (evt->sel_type.standard_type.event_type == 0x6f) { if (evt->sel_type.standard_type.event_type == 0x6f) {
lprintf(LOG_NOTICE, "%s sensor %s - %s %s", lprintf(LOG_NOTICE, "%s%s sensor %s - %s %s",
eintf->prefix,
type, sdr->record.compact->id_string, type, sdr->record.compact->id_string,
desc ? : "", desc ? : "",
evt->sel_type.standard_type.event_dir ? "Deasserted" : "Asserted"); evt->sel_type.standard_type.event_dir ? "Deasserted" : "Asserted");
} else { } else {
lprintf(LOG_NOTICE, "%s sensor %s - %s", lprintf(LOG_NOTICE, "%s%s sensor %s - %s",
type, sdr->record.compact->id_string, desc ? : ""); eintf->prefix, type,
sdr->record.compact->id_string, desc ? : "");
} }
break; break;
default: default:
lprintf(LOG_NOTICE, "%s sensor - %s", lprintf(LOG_NOTICE, "%s%s sensor - %s",
type, evt->sel_type.standard_type.sensor_num, desc ? : ""); eintf->prefix, type,
evt->sel_type.standard_type.sensor_num, desc ? : "");
break; break;
} }
@ -723,6 +736,10 @@ ipmievd_sel_main(struct ipmi_intf * intf, int argc, char ** argv)
eintf->intf = intf; eintf->intf = intf;
snprintf(eintf->prefix,
strlen((const char *)intf->session->hostname) + 3,
"%s: ", intf->session->hostname);
return ipmievd_main(eintf, argc, argv); return ipmievd_main(eintf, argc, argv);
} }