if (!GetCommState(port->hdl, &data->dcb))
return SP_ERR_FAIL;
#else
+ int controlbits;
+
if (tcgetattr(port->fd, &data->term) < 0)
return SP_ERR_FAIL;
+
+ if (ioctl(port->fd, TIOCMGET, &controlbits) < 0)
+ return SP_ERR_FAIL;
+
+ if (data->term.c_cflag & CRTSCTS) {
+ data->rts = SP_RTS_FLOW_CONTROL;
+ data->cts = SP_CTS_FLOW_CONTROL;
+ } else {
+ data->rts = (controlbits & TIOCM_RTS) ? SP_RTS_ON : SP_RTS_OFF;
+ data->cts = SP_CTS_IGNORE;
+ }
+
+ data->dtr = (controlbits & TIOCM_DTR) ? SP_DTR_ON : SP_DTR_OFF;
+ data->dsr = SP_DSR_IGNORE;
#endif
return SP_OK;
}