Ticket #4672 (closed defect: fixed)
Serial Port still not functioning correctly => Fixed in SVN
|Reported by:||parakleta||Owned by:|
Currently when I use a serial port through a Windows Guest, on a Solaris Host, as soon as the device I am connecting to sends a newline, an infinite series of newlines is bounced back and forth between the Host and the remote device, with no intervention on the part of the Guest.
This can be resolved as a work-around by the command
stty -echonl < /dev/cua0
after the connection is established. This is ok for hyperterminal, but when using a serial programmer I cannot reliably change the setting quickly enough to prevent the serial programmer from reporting an error.
This is all caused by an error on line 359 of DrvHostSerial.cpp which was still not fixed by the changes on line 362 (in relation to bug #3120).
358 /* set serial port to raw input */ 359 termiosSetup->c_lflag = ~(ICANON | ECHO | ECHOE | ISIG); 360 #ifdef RT_OS_SOLARIS 361 /* turn off other extended special characters in line mode */ 362 termiosSetup->c_lflag &= ~(IEXTEN); 363 #endif
Instead of turning off a handful of local modes and turning on all the rest, the correct behaviour should be to turn off all local modes. Since the host should be passing through an unaltered stream of bytes there is no reason for it to intervene in any way with local modes.
I propose the following patch
@@ -358,364 +358,360 @@ /* set serial port to raw input */ - termiosSetup->c_lflag = ~(ICANON | ECHO | ECHOE | ISIG); -#ifdef RT_OS_SOLARIS - /* turn off other extended special characters in line mode */ - termiosSetup->c_lflag &= ~(IEXTEN); -#endif + termiosSetup->c_lflag = 0;
- Summary changed from Serial Port still not functioning correctly in Solaris Host (and likely all posix hosts) to Serial Port still not functioning correctly => Fixed in SVN