Будни Севера - Терминально [entries|archive|friends|userinfo]
gastritka

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

Терминально [Sep. 26th, 2006|02:53 am]
Previous Entry Add to Memories Tell A Friend Next Entry
[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.
LinkLeave a comment