summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Mankovich <jmank@hp.com>2014-02-10 06:05:49 -0700
committerJim Mankovich <jmank@hp.com>2014-02-10 06:05:49 -0700
commit8d44c55feb1c9f10abda312fd117baeea7947a50 (patch)
tree8ad19ad36e4f5d1ae646d90582777687e5a5cd56
parentc18ec02f3304ce2a889a50e378f07a4168af3884 (diff)
downloadipmitool-8d44c55feb1c9f10abda312fd117baeea7947a50.tar.gz
Properly handle plugin non-zero target adddress with -t specification Bug 292
-rw-r--r--lib/ipmi_main.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/ipmi_main.c b/lib/ipmi_main.c
index 3d0a3b8..e7c84e2 100644
--- a/lib/ipmi_main.c
+++ b/lib/ipmi_main.c
@@ -925,24 +925,26 @@ ipmi_main(int argc, char ** argv,
}
/* If bridging addresses are specified, handle them */
- if (transit_addr > 0 || target_addr > 0) {
+ if (target_addr > 0) {
+ ipmi_main_intf->target_addr = target_addr;
+ ipmi_main_intf->target_lun = target_lun ;
+ ipmi_main_intf->target_channel = target_channel ;
+ }
+ if (transit_addr > 0) {
/* sanity check, transit makes no sense without a target */
if ((transit_addr != 0 || transit_channel != 0) &&
- target_addr == 0) {
+ ipmi_main_intf->target_addr == 0) {
lprintf(LOG_ERR,
"Transit address/channel %#x/%#x ignored. "
"Target address must be specified!",
transit_addr, transit_channel);
goto out_free;
}
- ipmi_main_intf->target_addr = target_addr;
- ipmi_main_intf->target_lun = target_lun ;
- ipmi_main_intf->target_channel = target_channel ;
ipmi_main_intf->transit_addr = transit_addr;
ipmi_main_intf->transit_channel = transit_channel;
-
-
+ }
+ if (ipmi_main_intf->target_addr > 0) {
/* must be admin level to do this over lan */
ipmi_intf_session_set_privlvl(ipmi_main_intf, IPMI_SESSION_PRIV_ADMIN);
/* Get the ipmb address of the targeted entity */