Jump to content
Калькуляторы

Looking Glass & Quagga

У кого-нть запустился LG вот этот: http://wiki.version6.net/LG с квагой?

С цисками норм, а с квагой не хочет. Конфиг что в кваге, что самого LG стандартный:

 

                <Router Name="zebra" OSType = "Zebra">
                        <URL>telnet://zebra@10.10.0.1</URL>
                </Router>

 

Причем looking glass логинится на сервер, а дальше висит. Может кто-то уже обошел эту проблему?

Share this post


Link to post
Share on other sites

В скрипте "lg.cgi" комментируешь строки (вернее, это одна строка):

 

$telnet->put(pack("C9",
                 255,              # TELNET_IAC
                 250,              # TELNET_SB
                 31, 0, 200, 0, 0, # TELOPT_NAWS
                 255,              # TELNET_IAC
                 240));            # TELNET_SE

 

Share this post


Link to post
Share on other sites

Я как чувствовал, что в этом подвох, но отвлекся на другой кусок кода).

 

Спасибо большое!

Share this post


Link to post
Share on other sites

Если её закомментировать, то будет работать только для quagga.

Чтобы работала и для quagga, и для cisco, нужно поменять цыфырки:

31, 0, 200, 0, 0, # TELOPT_NAWS -> 31, 0, 0, 0, 0, # TELOPT_NAWS

 

Теория:

Третье и пятое число - это размер терминала в ширину и в высоту.

Третье число - количество символов в строке.

Пятое - количество строк на экране.

 

Разгадка:

Скрипт LG не работал изза того, что quagga думал, что к нему подключился клиент с маленьким монитором.

И сервер вел себя стандартным образом, когда текст не помещается на экране.

Выдавал часть информации, писал строчку "--More--" и тупо ждал ввода символов.

Скрипт, естественно, никаких символов не вводил и тупо отваливался по timeout.

Если указать в третьем и пятом числе нули, то quagga поймет, что к нему подключились с офигенно большим монитором.

Соответственно, текст всегда будет выводиться сразу и полностью.

Edited by XoRe

Share this post


Link to post
Share on other sites

Еще неплохо добавить

 

$telnet->print("terminal length 0");

$telnet->getline; # read out command line

$telnet->getline; # read out command line

 

после $telnetcmd .= " | no-more" if ($ostypes{$FORM{router}} eq "junos");

 

А то без этого full view выхлоп зависает. Хотя и с этими опциями получение fw через web - неспееешный процесс, да и обрывается вывод всё равно :-(

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this