* fhandler_serial.cc (fhandler_serial::open): Avoid extraneous setting of res.
* termios.cc (tcsetattr): Correctly record errno after tcsetattr call. * fhandler_serial.cc (fhandler_serial::tcsetattr): Add error-checking so that if any Win32 SetComm*() calls fail, errno gets set to EINVAL and tcsetattr() returns -1. Catch invalid bitrates, mostly. If baud rate setting is B0, just drop DTR and leave Win32 DCB bitrate as-is since 0 is not a valid Win32 setting. (fhandler_serial::tcgetattr): If DTR is low, populate the bitrate as B0, otherwise get it from the DCB.
This commit is contained in:
@@ -144,8 +144,7 @@ tcsetattr (int fd, int a, const struct termios *t)
|
||||
case bg_ok:
|
||||
if (cfd.isopen ())
|
||||
res = cfd->tcsetattr (a, t);
|
||||
else
|
||||
e = get_errno ();
|
||||
e = get_errno ();
|
||||
break;
|
||||
case bg_signalled:
|
||||
if (thisframe.call_signal_handler ())
|
||||
|
Reference in New Issue
Block a user