- Fix ineffective setting of RNG modem bit when line with DTR isn't available
- Fix logic clearing modem signal bits
- Add API to set/clear modem control behavior fo a specific line.
- return -2 status from tmxr_poll_conn when RNG has been enabled
Also:
- Enhance SHOW MUX to support "SHOW MUX <dev>"
- Fix potential null pointer dereference with unusual ATTACH combinations
- Allow BPS factor to change without specifying an explicit speed.
- Provide consistent behavior for connected OR BUFFERED lines
BUFFERED lines can be used with MUX EXPECT/SEND scripting
without an active connection.
- Fix SHOW MUX to display useful info for BUFFERED lines.
The goal of the logic in _tmxr_activate_delay() is to properly schedule the next
poll activity considering input and/or output data rates that may be in effect.
We need to make sure that one more poll is scheduled after output data has
been sent since simulation logic may have deferred queuing output data for
other reasons and handles its reactivation in the same context that it polls for
output.
The uninitialized case would never occur since the routing containing that
code would never be called when the conditions that would leave the variable
uninitialized.
When the console is connected to a serial port or telnet sessions enable
speed setting, the bits being output are now paced a the desired speed.
Multi-line mux I/O is also correctly rate limited on all lines.
This should address the problems described in #545
If a telnet session sends options just prior to closing a session, the response
traffic might get dropped which isn't a problem, but we need to make sure
that we stop referencing the now invalid line structure after that happens.
- Don't count stalls as drops since they can be retried
- Count stalls, which probably are rare on network connections but can
happen more frequently on serial port connections.
Avoid Windows specific serial I/O behaviors which might not always have
hardware state reported to user level code. The TMXR layer code already
paces mux output so that reasonable behavior is observed.
- EXPECT HALTAFTER=nnn
--> sets "nnn" as the global/default value
- EXPECT "some string"
--> uses the "nnn" global/default value
- EXPECT HALTAFTER=ttt "some string"
--> uses the "ttt" temporary value for this EXPECT only
and:
- SEND AFTER=nnn
--> sets "nnn" as the global/default value
- SEND "some string"
--> uses the "nnn" global/default value
- SEND AFTER=ttt "some string"
--> uses the "ttt" temporary value for this SEND only
(and similarly for the SEND DELAY value).