Терминально |
[Sep. 26th, 2006|02:53 am] |
[ | Current Mood |
| | консольно-терминальное | ] | У товарища есть одна серьезная система АСУ для промышленных предприятий. Есть серьезная и здорово реализованная поддержка терминального ввода/вывода, причём интерфейс терминальный по структуре своей не отличается ни чем от графического. Работает это всё дело на постреляционной БД Cache' Intersystems.
Они шебуршат чо-то на заводе в Саранске, и выловился интересный баг с telnet-ом. На Linux машине сделан терминальный сервер, несколько десятков терминалов висят на нём с принтерами. Так вот этот сервер для каждого из физических портов, на котором висят терминалы, "ходит" telnet-ом на основной сервер БД. У сервера БД свой telnet-сервер, исходники к которому получить никак нельзя. Суть следующая - терминал с подключенным принтером требует наличия XON/XOFF, дабы приостанавливать работу в случае "пейпер джам", "буффер оверфлов" и др. Настраиваем физический serial порт терминального сервера с stty ixon ixoff , а telnet-клиент его снимает при подключении к серверу.
Вы скажете, а как-же TOGGLE-FLOW-CONTROL? Так вот, большинство telnet серверов на вопрос WILL LFLOW молчат, а на DO LFLOW посылают в далёкое эротическое путешествие. Зато сами всегда выставляют WILL и иногда даже принудительно передают в ходе согласования параметр IAC SB TOGGLE-FLOW-CONTROL OFF! Клиент, естественно делает tcsetattr с согласованными параметрами и снимает указанные настройки...
Пришлось настрогать патч и добавить опцию в GNU inetutils telnet --force-xonxoff. |
|
|