mirror of
https://github.com/ipmitool/ipmitool.git
synced 2025-05-10 18:47:22 +00:00
ID: 3522731 - 'lib/ipmi_sol.c' - ipmi_get_sol_info() returns always 0
PROPER - Commit fixes ipmi_get_sol_info()'s return value, so (-1) is returned on error, eg. response is NULL. It doesn't matter whether it is first or last response, we bail out immediately. Commit also fixes missing argument to one lprintf() and indentation(spaces->tabs). This bug is connected with ``ID: 1835038 - 'lib/ipmi_sol.c' - ipmi_get_sol_info() returns always 0''. Reported by: Duncan Idaho
This commit is contained in:
parent
a974ab2c69
commit
122e11a2e8
@ -208,7 +208,6 @@ ipmi_get_sol_info(
|
|||||||
req.msg.data_len = 4;
|
req.msg.data_len = 4;
|
||||||
req.msg.data = data;
|
req.msg.data = data;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* set in progress
|
* set in progress
|
||||||
*/
|
*/
|
||||||
@ -219,70 +218,70 @@ ipmi_get_sol_info(
|
|||||||
data[3] = 0x00; /* block selector */
|
data[3] = 0x00; /* block selector */
|
||||||
|
|
||||||
rsp = intf->sendrecv(intf, &req);
|
rsp = intf->sendrecv(intf, &req);
|
||||||
|
if (rsp == NULL) {
|
||||||
if (NULL != rsp) {
|
|
||||||
switch (rsp->ccode) {
|
|
||||||
case 0x00:
|
|
||||||
if (rsp->data_len == 2) {
|
|
||||||
params->set_in_progress = rsp->data[1];
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
|
||||||
"for SOL parameter '%s'",
|
|
||||||
rsp->data_len,
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 0x80:
|
|
||||||
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported",
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
|
||||||
val2str(data[1], sol_parameter_vals),
|
|
||||||
val2str(rsp->ccode, completion_code_vals));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
||||||
val2str(data[1], sol_parameter_vals));
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (rsp->ccode) {
|
||||||
|
case 0x00:
|
||||||
|
if (rsp->data_len == 2) {
|
||||||
|
params->set_in_progress = rsp->data[1];
|
||||||
|
} else {
|
||||||
|
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
||||||
|
"for SOL parameter '%s'",
|
||||||
|
rsp->data_len,
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x80:
|
||||||
|
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported",
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
||||||
|
val2str(data[1], sol_parameter_vals),
|
||||||
|
val2str(rsp->ccode, completion_code_vals));
|
||||||
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SOL enable
|
* SOL enable
|
||||||
*/
|
*/
|
||||||
memset(data, 0, sizeof(data));
|
memset(data, 0, sizeof(data));
|
||||||
data[0] = channel; /* channel number */
|
data[0] = channel; /* channel number */
|
||||||
data[1] = SOL_PARAMETER_SOL_ENABLE; /* parameter selector */
|
data[1] = SOL_PARAMETER_SOL_ENABLE; /* parameter selector */
|
||||||
data[2] = 0x00; /* set selector */
|
data[2] = 0x00; /* set selector */
|
||||||
data[3] = 0x00; /* block selector */
|
data[3] = 0x00; /* block selector */
|
||||||
|
|
||||||
rsp = intf->sendrecv(intf, &req);
|
rsp = intf->sendrecv(intf, &req);
|
||||||
|
if (rsp == NULL) {
|
||||||
if (NULL != rsp) {
|
|
||||||
switch (rsp->ccode) {
|
|
||||||
case 0x00:
|
|
||||||
if (rsp->data_len == 2) {
|
|
||||||
params->enabled = rsp->data[1];
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
|
||||||
"for SOL parameter '%s'",
|
|
||||||
rsp->data_len,
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 0x80:
|
|
||||||
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported",
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
|
||||||
val2str(data[1], sol_parameter_vals),
|
|
||||||
val2str(rsp->ccode, completion_code_vals));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
||||||
val2str(data[1], sol_parameter_vals));
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (rsp->ccode) {
|
||||||
|
case 0x00:
|
||||||
|
if (rsp->data_len == 2) {
|
||||||
|
params->enabled = rsp->data[1];
|
||||||
|
} else {
|
||||||
|
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
||||||
|
"for SOL parameter '%s'",
|
||||||
|
rsp->data_len,
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x80:
|
||||||
|
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported",
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
||||||
|
val2str(data[1], sol_parameter_vals),
|
||||||
|
val2str(rsp->ccode, completion_code_vals));
|
||||||
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -295,33 +294,34 @@ ipmi_get_sol_info(
|
|||||||
data[3] = 0x00; /* block selector */
|
data[3] = 0x00; /* block selector */
|
||||||
|
|
||||||
rsp = intf->sendrecv(intf, &req);
|
rsp = intf->sendrecv(intf, &req);
|
||||||
if (NULL != rsp) {
|
if (rsp == NULL) {
|
||||||
switch (rsp->ccode) {
|
|
||||||
case 0x00:
|
|
||||||
if (rsp->data_len == 2) {
|
|
||||||
params->force_encryption = ((rsp->data[1] & 0x80)? 1 : 0);
|
|
||||||
params->force_authentication = ((rsp->data[1] & 0x40)? 1 : 0);
|
|
||||||
params->privilege_level = rsp->data[1] & 0x0F;
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
|
||||||
"for SOL parameter '%s'",
|
|
||||||
rsp->data_len,
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 0x80:
|
|
||||||
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported",
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
|
||||||
val2str(data[1], sol_parameter_vals),
|
|
||||||
val2str(rsp->ccode, completion_code_vals));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
||||||
val2str(data[1], sol_parameter_vals));
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (rsp->ccode) {
|
||||||
|
case 0x00:
|
||||||
|
if (rsp->data_len == 2) {
|
||||||
|
params->force_encryption = ((rsp->data[1] & 0x80)? 1 : 0);
|
||||||
|
params->force_authentication = ((rsp->data[1] & 0x40)? 1 : 0);
|
||||||
|
params->privilege_level = rsp->data[1] & 0x0F;
|
||||||
|
} else {
|
||||||
|
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
||||||
|
"for SOL parameter '%s'",
|
||||||
|
rsp->data_len,
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x80:
|
||||||
|
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported",
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
||||||
|
val2str(data[1], sol_parameter_vals),
|
||||||
|
val2str(rsp->ccode, completion_code_vals));
|
||||||
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -334,32 +334,33 @@ ipmi_get_sol_info(
|
|||||||
data[3] = 0x00; /* block selector */
|
data[3] = 0x00; /* block selector */
|
||||||
|
|
||||||
rsp = intf->sendrecv(intf, &req);
|
rsp = intf->sendrecv(intf, &req);
|
||||||
if (NULL != rsp) {
|
if (rsp == NULL) {
|
||||||
switch (rsp->ccode) {
|
|
||||||
case 0x00:
|
|
||||||
if (rsp->data_len == 3) {
|
|
||||||
params->character_accumulate_level = rsp->data[1];
|
|
||||||
params->character_send_threshold = rsp->data[2];
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
|
||||||
"for SOL parameter '%s'",
|
|
||||||
rsp->data_len,
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 0x80:
|
|
||||||
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported",
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
|
||||||
val2str(data[1], sol_parameter_vals),
|
|
||||||
val2str(rsp->ccode, completion_code_vals));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
||||||
val2str(data[1], sol_parameter_vals));
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (rsp->ccode) {
|
||||||
|
case 0x00:
|
||||||
|
if (rsp->data_len == 3) {
|
||||||
|
params->character_accumulate_level = rsp->data[1];
|
||||||
|
params->character_send_threshold = rsp->data[2];
|
||||||
|
} else {
|
||||||
|
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
||||||
|
"for SOL parameter '%s'",
|
||||||
|
rsp->data_len,
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x80:
|
||||||
|
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported",
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
||||||
|
val2str(data[1], sol_parameter_vals),
|
||||||
|
val2str(rsp->ccode, completion_code_vals));
|
||||||
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -372,32 +373,33 @@ ipmi_get_sol_info(
|
|||||||
data[3] = 0x00; /* block selector */
|
data[3] = 0x00; /* block selector */
|
||||||
|
|
||||||
rsp = intf->sendrecv(intf, &req);
|
rsp = intf->sendrecv(intf, &req);
|
||||||
if (NULL != rsp) {
|
if (rsp == NULL) {
|
||||||
switch (rsp->ccode) {
|
|
||||||
case 0x00:
|
|
||||||
if (rsp->data_len == 3) {
|
|
||||||
params->retry_count = rsp->data[1];
|
|
||||||
params->retry_interval = rsp->data[2];
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
|
||||||
"for SOL parameter '%s'",
|
|
||||||
rsp->data_len,
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 0x80:
|
|
||||||
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported",
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
|
||||||
val2str(data[1], sol_parameter_vals),
|
|
||||||
val2str(rsp->ccode, completion_code_vals));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
||||||
val2str(data[1], sol_parameter_vals));
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (rsp->ccode) {
|
||||||
|
case 0x00:
|
||||||
|
if (rsp->data_len == 3) {
|
||||||
|
params->retry_count = rsp->data[1];
|
||||||
|
params->retry_interval = rsp->data[2];
|
||||||
|
} else {
|
||||||
|
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
||||||
|
"for SOL parameter '%s'",
|
||||||
|
rsp->data_len,
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x80:
|
||||||
|
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported",
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
||||||
|
val2str(data[1], sol_parameter_vals),
|
||||||
|
val2str(rsp->ccode, completion_code_vals));
|
||||||
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -405,36 +407,37 @@ ipmi_get_sol_info(
|
|||||||
*/
|
*/
|
||||||
memset(data, 0, sizeof(data));
|
memset(data, 0, sizeof(data));
|
||||||
data[0] = channel; /* channel number */
|
data[0] = channel; /* channel number */
|
||||||
data[1] = SOL_PARAMETER_SOL_NON_VOLATILE_BIT_RATE; /* parameter selector */
|
data[1] = SOL_PARAMETER_SOL_NON_VOLATILE_BIT_RATE; /* parameter selector */
|
||||||
data[2] = 0x00; /* set selector */
|
data[2] = 0x00; /* set selector */
|
||||||
data[3] = 0x00; /* block selector */
|
data[3] = 0x00; /* block selector */
|
||||||
|
|
||||||
rsp = intf->sendrecv(intf, &req);
|
rsp = intf->sendrecv(intf, &req);
|
||||||
if (NULL != rsp) {
|
if (rsp == NULL) {
|
||||||
switch (rsp->ccode) {
|
|
||||||
case 0x00:
|
|
||||||
if (rsp->data_len == 2) {
|
|
||||||
params->non_volatile_bit_rate = rsp->data[1] & 0x0F;
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
|
||||||
"for SOL parameter '%s'",
|
|
||||||
rsp->data_len,
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 0x80:
|
|
||||||
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported",
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
|
||||||
val2str(data[1], sol_parameter_vals),
|
|
||||||
val2str(rsp->ccode, completion_code_vals));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
||||||
val2str(data[1], sol_parameter_vals));
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (rsp->ccode) {
|
||||||
|
case 0x00:
|
||||||
|
if (rsp->data_len == 2) {
|
||||||
|
params->non_volatile_bit_rate = rsp->data[1] & 0x0F;
|
||||||
|
} else {
|
||||||
|
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
||||||
|
"for SOL parameter '%s'",
|
||||||
|
rsp->data_len,
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x80:
|
||||||
|
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported",
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
||||||
|
val2str(data[1], sol_parameter_vals),
|
||||||
|
val2str(rsp->ccode, completion_code_vals));
|
||||||
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -447,31 +450,32 @@ ipmi_get_sol_info(
|
|||||||
data[3] = 0x00; /* block selector */
|
data[3] = 0x00; /* block selector */
|
||||||
|
|
||||||
rsp = intf->sendrecv(intf, &req);
|
rsp = intf->sendrecv(intf, &req);
|
||||||
if (NULL != rsp) {
|
if (rsp == NULL) {
|
||||||
switch (rsp->ccode) {
|
|
||||||
case 0x00:
|
|
||||||
if (rsp->data_len == 2) {
|
|
||||||
params->volatile_bit_rate = rsp->data[1] & 0x0F;
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
|
||||||
"for SOL parameter '%s'",
|
|
||||||
rsp->data_len,
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 0x80:
|
|
||||||
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported",
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
|
||||||
val2str(data[1], sol_parameter_vals),
|
|
||||||
val2str(rsp->ccode, completion_code_vals));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
||||||
val2str(data[1], sol_parameter_vals));
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (rsp->ccode) {
|
||||||
|
case 0x00:
|
||||||
|
if (rsp->data_len == 2) {
|
||||||
|
params->volatile_bit_rate = rsp->data[1] & 0x0F;
|
||||||
|
} else {
|
||||||
|
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
||||||
|
"for SOL parameter '%s'",
|
||||||
|
rsp->data_len,
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x80:
|
||||||
|
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported",
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
||||||
|
val2str(data[1], sol_parameter_vals),
|
||||||
|
val2str(rsp->ccode, completion_code_vals));
|
||||||
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -484,32 +488,33 @@ ipmi_get_sol_info(
|
|||||||
data[3] = 0x00; /* block selector */
|
data[3] = 0x00; /* block selector */
|
||||||
|
|
||||||
rsp = intf->sendrecv(intf, &req);
|
rsp = intf->sendrecv(intf, &req);
|
||||||
if (NULL != rsp) {
|
if (rsp == NULL) {
|
||||||
switch (rsp->ccode) {
|
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
||||||
case 0x00:
|
val2str(data[1], sol_parameter_vals));
|
||||||
if (rsp->data_len == 2) {
|
return (-1);
|
||||||
params->payload_channel = rsp->data[1];
|
}
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
switch (rsp->ccode) {
|
||||||
"for SOL parameter '%s'",
|
case 0x00:
|
||||||
rsp->data_len,
|
if (rsp->data_len == 2) {
|
||||||
val2str(data[1], sol_parameter_vals));
|
params->payload_channel = rsp->data[1];
|
||||||
}
|
} else {
|
||||||
break;
|
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
||||||
case 0x80:
|
"for SOL parameter '%s'",
|
||||||
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported - defaulting to 0x%02x",
|
rsp->data_len,
|
||||||
val2str(data[1], sol_parameter_vals), channel);
|
val2str(data[1], sol_parameter_vals));
|
||||||
params->payload_channel = channel;
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
case 0x80:
|
||||||
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported - defaulting to 0x%02x",
|
||||||
|
val2str(data[1], sol_parameter_vals), channel);
|
||||||
|
params->payload_channel = channel;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
||||||
val2str(data[1], sol_parameter_vals),
|
val2str(data[1], sol_parameter_vals),
|
||||||
val2str(rsp->ccode, completion_code_vals));
|
val2str(rsp->ccode, completion_code_vals));
|
||||||
return -1;
|
return (-1);
|
||||||
}
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -522,36 +527,41 @@ ipmi_get_sol_info(
|
|||||||
data[3] = 0x00; /* block selector */
|
data[3] = 0x00; /* block selector */
|
||||||
|
|
||||||
rsp = intf->sendrecv(intf, &req);
|
rsp = intf->sendrecv(intf, &req);
|
||||||
if (NULL != rsp) {
|
if (rsp == NULL) {
|
||||||
switch (rsp->ccode) {
|
|
||||||
case 0x00:
|
|
||||||
if (rsp->data_len == 3) {
|
|
||||||
params->payload_port = (rsp->data[1]) | (rsp->data[2] << 8);
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
|
||||||
"for SOL parameter '%s'",
|
|
||||||
rsp->data_len,
|
|
||||||
val2str(data[1], sol_parameter_vals));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 0x80:
|
|
||||||
if( intf->session != NULL ){
|
|
||||||
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported - defaulting to %d", val2str(data[1], sol_parameter_vals), intf->session->port);
|
|
||||||
params->payload_port = intf->session->port;
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported - can't determine which payload port to use on NULL session" );
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
|
||||||
val2str(data[1], sol_parameter_vals),
|
|
||||||
val2str(rsp->ccode, completion_code_vals));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
lprintf(LOG_ERR, "Error: No response requesting SOL parameter '%s'",
|
||||||
val2str(data[1], sol_parameter_vals));
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (rsp->ccode) {
|
||||||
|
case 0x00:
|
||||||
|
if (rsp->data_len == 3) {
|
||||||
|
params->payload_port = (rsp->data[1]) | (rsp->data[2] << 8);
|
||||||
|
} else {
|
||||||
|
lprintf(LOG_ERR, "Error: Unexpected data length (%d) received "
|
||||||
|
"for SOL parameter '%s'",
|
||||||
|
rsp->data_len,
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x80:
|
||||||
|
if( intf->session != NULL ) {
|
||||||
|
lprintf(LOG_ERR, "Info: SOL parameter '%s' not supported - defaulting to %d",
|
||||||
|
val2str(data[1], sol_parameter_vals), intf->session->port);
|
||||||
|
params->payload_port = intf->session->port;
|
||||||
|
} else {
|
||||||
|
lprintf(LOG_ERR,
|
||||||
|
"Info: SOL parameter '%s' not supported - can't determine which "
|
||||||
|
"payload port to use on NULL session",
|
||||||
|
val2str(data[1], sol_parameter_vals));
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lprintf(LOG_ERR, "Error requesting SOL parameter '%s': %s",
|
||||||
|
val2str(data[1], sol_parameter_vals),
|
||||||
|
val2str(rsp->ccode, completion_code_vals));
|
||||||
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user