We’re using a PortServer II to service directly connected serial lines (no modems) to Linux systems using RealPort. Some software on the Linux systems issues hangups on exit via setting the baud rate to 0 using a tcsetattr call. The problem is that the directly connected line is then unresponsive for many many minutes to software that checks line status. For example, using the statserial command locks up on checking the port that had the hangup issued.
One of the examples is using minicom to communicate over a directly connect line. If the user exits without reset (Q), it’s fine, the port can be queried with statserial. If the user exits minicom with eXit and reset (X), the port will no longer respond to statserial calls for a very long time.
Although there’s no modem to “hangup”, why should issuing a hangup cause the port to be unresponsive? Is there some setting that we’re missing here or anything else we can do?
Linux version is Mandrake 9.2. The remote ends are using mgetty (-r for direct connection) to handle login. Here’s the ditty-rp output when connected.
onstr \033[5i offstr \033[4i term ansi
maxcps 100 maxchar 50 bufsize 100
-forcedcd -altpin -fastbaud (9600)
-rtspace -dtrpace -ctspace -dsrpace -dcdpace
DTR+ RTS+ CTS+ CD- DSR- RI-
startc = 0x0 stopc = 0x0
-aixon astartc = 0x0 astopc = 0x0
speed 9600 baud; line = 0;
intr = ; quit = ; erase = ; kill = ; eof = ;
start = ; stop = ; susp = ; rprnt = ;
werase = ; lnext = ; flush = ; min = 1; time = 5;
ignbrk -brkint -icrnl -imaxbel
-opost -onlcr
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
and here’s the ditty-rp after “hangup”.
onstr \033[5i offstr \033[4i term ansi
maxcps 100 maxchar 50 bufsize 100
-forcedcd -altpin -fastbaud (0)
-rtspace -dtrpace -ctspace -dsrpace -dcdpace
DTR- RTS- CTS+ CD- DSR- RI-
startc = 0x0 stopc = 0x0
-aixon astartc = 0x0 astopc = 0x0
speed 0 baud; line = 0;
intr = ; quit = ; erase = ; kill = ; eof = ;
start = ; stop = ; susp = ; rprnt = ;
werase = ; lnext = ; flush = ; min = 0; time = 0;
-cread
-brkint -icrnl -imaxbel
-opost -onlcr
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
Any help is greatly appreciated.