mirror of
https://github.com/ipmitool/ipmitool.git
synced 2025-05-11 19:17:22 +00:00
prefix hostname on sel ipmievd sessions
This commit is contained in:
parent
1c60cbf500
commit
4e79265a7c
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user