From ab18a0e335f65aa1ccea61a0a82bcf3260779558 Mon Sep 17 00:00:00 2001 From: Dmitry Frolov Date: Tue, 28 Aug 2007 09:44:31 +0000 Subject: [PATCH] Added --disable-intf-open-dual-bridge configure option to disable dual bridge support in open interface. This extension is not compatible with FreeBSD OpenIPMI implementation (and with mainline OpenIPMI too, as far as I can tell). --- ipmitool/ChangeLog | 2 ++ ipmitool/configure.in | 9 +++++++++ ipmitool/src/plugins/open/open.c | 2 ++ ipmitool/src/plugins/open/open.h | 2 ++ 4 files changed, 15 insertions(+) diff --git a/ipmitool/ChangeLog b/ipmitool/ChangeLog index 67bd76d..cc56a33 100644 --- a/ipmitool/ChangeLog +++ b/ipmitool/ChangeLog @@ -4,6 +4,8 @@ version 1.8.10 "isol setup" command. * Fix bug in ipmi_lan_recv_packet() in lan and lanplus interfaces. * Fix bug in "chassis poh" command. + * Added configure option to disable dual bridge support in open + interface to help compiling on FreeBSD version 1.8.9 released 2007-03-06 * Added initial AMC ekey query operation support diff --git a/ipmitool/configure.in b/ipmitool/configure.in index ff6ddc0..d8e1981 100644 --- a/ipmitool/configure.in +++ b/ipmitool/configure.in @@ -410,6 +410,15 @@ AC_ARG_ENABLE([file-security], AC_DEFINE(ENABLE_FILE_SECURITY, [1], [Define to 1 for extra file security.]) fi], []) +dnl Enable OpenIPMI dual bridge extension +AC_ARG_ENABLE([intf-open-dual-bridge], + [AC_HELP_STRING([--enable-intf-open-dual-bridge], + [enable OpenIPMI interface dual bridge support [default=yes]])]) +if test "x$enable_intf_open_dual_bridge" != "xno"; then + AC_DEFINE(ENABLE_INTF_OPEN_DUAL_BRIDGE, [1], + [Define to 1 to enable OpenIPMI interface dual bridge support]) +fi + dnl Generate files for build AC_CONFIG_FILES([Makefile doc/Makefile diff --git a/ipmitool/src/plugins/open/open.c b/ipmitool/src/plugins/open/open.c index d0ef6fd..5f11736 100644 --- a/ipmitool/src/plugins/open/open.c +++ b/ipmitool/src/plugins/open/open.c @@ -228,12 +228,14 @@ ipmi_openipmi_send_cmd(struct ipmi_intf * intf, struct ipmi_rq * req) ipmb_addr.lun = req->msg.lun; lprintf(LOG_DEBUG, "Sending request to " "IPMB target @ 0x%x", intf->target_addr); +#ifdef ENABLE_INTF_OPEN_DUAL_BRIDGE if(intf->transit_addr != 0 && intf->transit_addr != intf->my_addr) { ipmb_addr.transit_slave_addr = intf->transit_addr; lprintf(LOG_DEBUG, "Sending through transit " "IPMB target @ 0x%x", intf->transit_addr); } +#endif _req.addr = (unsigned char *) &ipmb_addr; _req.addr_len = sizeof(ipmb_addr); } else { diff --git a/ipmitool/src/plugins/open/open.h b/ipmitool/src/plugins/open/open.h index 22c8d30..55e3794 100644 --- a/ipmitool/src/plugins/open/open.h +++ b/ipmitool/src/plugins/open/open.h @@ -89,8 +89,10 @@ struct ipmi_ipmb_addr { short channel; unsigned char slave_addr; unsigned char lun; +#ifdef ENABLE_INTF_OPEN_DUAL_BRIDGE short transit_channel; unsigned char transit_slave_addr; +#endif }; #define IPMI_IOC_MAGIC 'i'