From e02ed2ca2ced3060161186ef947b66b08c06d694 Mon Sep 17 00:00:00 2001 From: Petter Reinholdtsen Date: Thu, 30 Jan 2014 18:17:45 +0000 Subject: [PATCH] Change serial plugin to only try to disable the IUCLC serial line flag on platforms supporting it. Fixes build problem on Hurd and FreeBSD. --- ipmitool/src/plugins/serial/serial_basic.c | 8 +++++++- ipmitool/src/plugins/serial/serial_terminal.c | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ipmitool/src/plugins/serial/serial_basic.c b/ipmitool/src/plugins/serial/serial_basic.c index 55681ab..4b8f112 100644 --- a/ipmitool/src/plugins/serial/serial_basic.c +++ b/ipmitool/src/plugins/serial/serial_basic.c @@ -266,8 +266,14 @@ serial_bm_open(struct ipmi_intf * intf) /* no flow control */ ti.c_cflag &= ~CRTSCTS; - ti.c_iflag &= ~(IGNBRK | IGNCR | INLCR | ICRNL | IUCLC | INPCK | ISTRIP + ti.c_iflag &= ~(IGNBRK | IGNCR | INLCR | ICRNL | INPCK | ISTRIP | IXON | IXOFF | IXANY); +#ifdef IUCLC + /* Only disable uppercase-to-lowercase mapping on input for + platforms supporting the flag. */ + ti.c_iflag &= ~(IUCLC) +#endif + ti.c_oflag &= ~(OPOST); ti.c_lflag &= ~(ICANON | ISIG | ECHO | ECHONL | NOFLSH); diff --git a/ipmitool/src/plugins/serial/serial_terminal.c b/ipmitool/src/plugins/serial/serial_terminal.c index 10ed942..27413c8 100644 --- a/ipmitool/src/plugins/serial/serial_terminal.c +++ b/ipmitool/src/plugins/serial/serial_terminal.c @@ -211,8 +211,13 @@ ipmi_serial_term_open(struct ipmi_intf * intf) /* no flow control */ ti.c_cflag &= ~CRTSCTS; - ti.c_iflag &= ~(IGNBRK | IGNCR | INLCR | ICRNL | IUCLC | INPCK | ISTRIP + ti.c_iflag &= ~(IGNBRK | IGNCR | INLCR | ICRNL | INPCK | ISTRIP | IXON | IXOFF | IXANY); +#ifdef IUCLC + /* Only disable uppercase-to-lowercase mapping on input for + platforms supporting the flag. */ + ti.c_iflag &= ~(IUCLC) +#endif ti.c_oflag &= ~(OPOST); ti.c_lflag &= ~(ICANON | ISIG | ECHO | ECHONL | NOFLSH);