Don't use RTSCTS if Str handshake is enabled.

Use appropriate Unix timeout values in SetCommTimeouts.
This commit is contained in:
Dominik Strasser 2001-04-20 18:15:20 +00:00 committed by Alexandre Julliard
parent 81da4bbbbb
commit cbdeb9646b
1 changed files with 20 additions and 3 deletions

View File

@ -2387,7 +2387,6 @@ BOOL WINAPI SetCommState(
} }
#ifdef CRTSCTS #ifdef CRTSCTS
if ( lpdcb->fOutxCtsFlow || if ( lpdcb->fOutxCtsFlow ||
lpdcb->fDtrControl == DTR_CONTROL_ENABLE||
lpdcb->fRtsControl == RTS_CONTROL_ENABLE lpdcb->fRtsControl == RTS_CONTROL_ENABLE
) )
{ {
@ -2395,7 +2394,7 @@ BOOL WINAPI SetCommState(
TRACE("CRTSCTS\n"); TRACE("CRTSCTS\n");
} }
if (lpdcb->fDtrControl == DTR_CONTROL_DISABLE) if (lpdcb->fDtrControl == DTR_CONTROL_ENABLE)
{ {
port.c_cflag &= ~CRTSCTS; port.c_cflag &= ~CRTSCTS;
TRACE("~CRTSCTS\n"); TRACE("~CRTSCTS\n");
@ -2749,8 +2748,26 @@ BOOL WINAPI SetCommTimeouts(
FIXME("tcgetattr on fd %d failed!\n",fd); FIXME("tcgetattr on fd %d failed!\n",fd);
return FALSE; return FALSE;
} }
/* VTIME is in 1/10 seconds */ /* VTIME is in 1/10 seconds */
tios.c_cc[VTIME]= (lptimeouts->ReadIntervalTimeout+99)/100; {
unsigned int ux_timeout;
if(lptimeouts->ReadIntervalTimeout == 0) /* 0 means no timeout */
{
ux_timeout = 0;
}
else
{
ux_timeout = (lptimeouts->ReadIntervalTimeout+99)/100;
if(ux_timeout == 0)
{
ux_timeout = 1; /* must be at least some timeout */
}
}
tios.c_cc[VTIME] = ux_timeout;
}
if (-1==tcsetattr(fd,0,&tios)) { if (-1==tcsetattr(fd,0,&tios)) {
FIXME("tcsetattr on fd %d failed!\n",fd); FIXME("tcsetattr on fd %d failed!\n",fd);
return FALSE; return FALSE;