mirror of
https://github.com/ipmitool/ipmitool.git
synced 2025-05-10 10:37:22 +00:00
ID:392 - _ipmi_get_user_name() work-around for some BMCs
Commit adds a work-around for some BMCs which return ccode 0xCC when user is disabled. However, this isn't reason to stop listing users as this ccode is perceived as being "normal". When 0xCC is returned, empty user name will be printed instead of bailing out.
This commit is contained in:
parent
4a8691f477
commit
ffeb535db8
@ -707,7 +707,10 @@ ipmi_get_user_access(struct ipmi_intf *intf, uint8_t channel, uint8_t user_id)
|
|||||||
memset(&user_name, 0, sizeof(user_name));
|
memset(&user_name, 0, sizeof(user_name));
|
||||||
user_name.user_id = curr_uid;
|
user_name.user_id = curr_uid;
|
||||||
ccode = _ipmi_get_user_name(intf, &user_name);
|
ccode = _ipmi_get_user_name(intf, &user_name);
|
||||||
if (eval_ccode(ccode) != 0) {
|
if (ccode == 0xCC) {
|
||||||
|
user_name.user_id = curr_uid;
|
||||||
|
memset(&user_name.user_name, '\0', 17);
|
||||||
|
} else if (eval_ccode(ccode) != 0) {
|
||||||
lprintf(LOG_ERR, "Unable to Get User Name (id %d)", curr_uid);
|
lprintf(LOG_ERR, "Unable to Get User Name (id %d)", curr_uid);
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
@ -287,13 +287,12 @@ ipmi_print_user_list(struct ipmi_intf *intf, uint8_t channel_number)
|
|||||||
memset(&user_name, 0, sizeof(user_name));
|
memset(&user_name, 0, sizeof(user_name));
|
||||||
user_name.user_id = current_user_id;
|
user_name.user_id = current_user_id;
|
||||||
ccode = _ipmi_get_user_name(intf, &user_name);
|
ccode = _ipmi_get_user_name(intf, &user_name);
|
||||||
if (eval_ccode(ccode) != 0) {
|
if (ccode == 0xCC) {
|
||||||
|
user_name.user_id = current_user_id;
|
||||||
|
memset(&user_name.user_name, '\0', 17);
|
||||||
|
} else if (eval_ccode(ccode) != 0) {
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
if ((current_user_id == 0)
|
|
||||||
|| user_access.link_auth
|
|
||||||
|| user_access.ipmi_messaging
|
|
||||||
|| strcmp("", (char *)user_name.user_name)) {
|
|
||||||
if (csv_output) {
|
if (csv_output) {
|
||||||
dump_user_access_csv((char *)user_name.user_name,
|
dump_user_access_csv((char *)user_name.user_name,
|
||||||
&user_access);
|
&user_access);
|
||||||
@ -301,7 +300,6 @@ ipmi_print_user_list(struct ipmi_intf *intf, uint8_t channel_number)
|
|||||||
dump_user_access((char *)user_name.user_name,
|
dump_user_access((char *)user_name.user_name,
|
||||||
&user_access);
|
&user_access);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
++current_user_id;
|
++current_user_id;
|
||||||
} while ((current_user_id <= user_access.max_user_ids)
|
} while ((current_user_id <= user_access.max_user_ids)
|
||||||
&& (current_user_id <= IPMI_UID_MAX));
|
&& (current_user_id <= IPMI_UID_MAX));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user