DTR Flow Control
lawson_whitney at juno.com
lawson_whitney at juno.com
Sat Mar 2 22:42:47 CST 2002
On Thu, 28 Feb 2002, Michael Cardenas wrote:
> The parts of the source I'm using are not very different from yours.
>
> I picked up the latest source and tried the app and it still has the same
> behavior. It can talk to the modem enough to get it to connect to the ppp
> server, but it cannot communicate over the network.
>
> I've attached a trace using my app with the latest source. The application
> seems to be stuck waiting for data and using ClearCommError to check the
> number of bytes received. It calls GetOverlappedResult along with
> GetLastError to check when the pending io operation has completed.
>
> Maybe there's something wrong with the way overlapped io is implemented when
> it interacts with a serial port. The documentation calls for the user to
> manually set the file pointer when using overlappedio, which doesn't seem
> like it would work on a serial port. The set_file_pointer function in
> server.c doesn't check for serial ports, but I'm not familiar enough with
> serial communications under linux to know if it matters. I tried to disable
> set_file_pointer for serial ports, but this didn't seem to have any effect.
>
That doesn't make much sense to me. I can't see why a comm port should
be lseekable, if that is what you mean. I don't much trust Microsoft
doco either. The app doesn't seem to be doing set_file_pointer on the
modem either.
> michael
I don't know about that yet, but it seems to me that GetCommState is
incorrectly creating lpdcb with fParity - if that is indeed what it is
and the structure and names are correct, and then the dumb app is just
using it. Could you try it this helps?
diff -ur was/dlls/kernel/comm.c is/dlls/kernel/comm.c
--- was/dlls/kernel/comm.c Fri Mar 1 15:19:45 2002
+++ is/dlls/kernel/comm.c Sat Mar 2 23:22:09 2002
@@ -1235,19 +1235,17 @@
default:
ERR("unknown size %x \n",port.c_cflag & CSIZE);
}
-
- if(port.c_iflag & INPCK)
- lpdcb->fParity = TRUE;
- else
- lpdcb->fParity = FALSE;
+
#ifdef CMSPAR
switch (port.c_cflag & (PARENB | PARODD | CMSPAR))
#else
switch (port.c_cflag & (PARENB | PARODD))
#endif
{
+ lpdcb->fParity = TRUE;
case 0:
lpdcb->Parity = NOPARITY;
+ lpdcb->fParity = FALSE;
break;
case PARENB:
lpdcb->Parity = EVENPARITY;
________________________________________________________________
GET INTERNET ACCESS FROM JUNO!
Juno offers FREE or PREMIUM Internet access for less!
Join Juno today! For your FREE software, visit:
http://dl.www.juno.com/get/web/.
More information about the wine-devel
mailing list