diff --git a/src/comio/comio_nix.c b/src/comio/comio_nix.c index 449761264011ff3424a912cfcf6e7321f09b54c6..e5204898e85dfc76d0278db8fa1a5ef04a1fa2f9 100644 --- a/src/comio/comio_nix.c +++ b/src/comio/comio_nix.c @@ -150,12 +150,26 @@ int comGetModemStatus(COM_HANDLE handle) BOOL comRaiseDTR(COM_HANDLE handle) { - return(ioctl(handle, TIOCSDTR)==0); + int status; + + if(ioctl(handle, TIOCMGET, &status)==-1) + return FALSE; + status |= TIOCM_DTR; + if(ioctl(handle, TIOCMSET, &status)==-1) + return FALSE; + return TRUE; } BOOL comLowerDTR(COM_HANDLE handle) { - return(ioctl(handle, TIOCCDTR)==0); + int status; + + if(ioctl(handle, TIOCMGET, &status)==-1) + return FALSE; + status &= ~TIOCM_DTR; + if(ioctl(handle, TIOCMSET, &status)==-1) + return FALSE; + return TRUE; } BOOL comWriteByte(COM_HANDLE handle, BYTE ch)