Tom Brus : ntdll: Serial/COM code misinterpreted XON/XOFF direction.

Alexandre Julliard julliard at winehq.org
Mon Oct 29 08:34:57 CDT 2007


Module: wine
Branch: master
Commit: fa4304f06eebc98af35c03569c4bc28f9d881d4c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=fa4304f06eebc98af35c03569c4bc28f9d881d4c

Author: Tom Brus <tombrus at gmail.com>
Date:   Sun Oct 28 21:24:40 2007 +0100

ntdll: Serial/COM code misinterpreted XON/XOFF direction.

---

 dlls/ntdll/serial.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/dlls/ntdll/serial.c b/dlls/ntdll/serial.c
index bd6f9ca..be398a5 100644
--- a/dlls/ntdll/serial.c
+++ b/dlls/ntdll/serial.c
@@ -227,9 +227,9 @@ static NTSTATUS get_hand_flow(int fd, SERIAL_HANDFLOW* shf)
 #endif
             shf->ControlHandShake |= SERIAL_RTS_CONTROL;
     }
-    if (port.c_iflag & IXON)
-        shf->FlowReplace |= SERIAL_AUTO_RECEIVE;
     if (port.c_iflag & IXOFF)
+        shf->FlowReplace |= SERIAL_AUTO_RECEIVE;
+    if (port.c_iflag & IXON)
         shf->FlowReplace |= SERIAL_AUTO_TRANSMIT;
 
     shf->XonLimit = 10;
@@ -611,13 +611,13 @@ static NTSTATUS set_handflow(int fd, const SERIAL_HANDFLOW* shf)
 #endif
 
     if (shf->FlowReplace & SERIAL_AUTO_RECEIVE)
-        port.c_iflag |= IXON;
-    else
-        port.c_iflag &= ~IXON;
-    if (shf->FlowReplace & SERIAL_AUTO_TRANSMIT)
         port.c_iflag |= IXOFF;
     else
         port.c_iflag &= ~IXOFF;
+    if (shf->FlowReplace & SERIAL_AUTO_TRANSMIT)
+        port.c_iflag |= IXON;
+    else
+        port.c_iflag &= ~IXON;
     if (tcsetattr(fd, TCSANOW, &port) == -1)
     {
         ERR("tcsetattr error '%s'\n", strerror(errno));




More information about the wine-cvs mailing list