Все гады

|
Вчера обнаружилась странность: GPRS-ный сеанс живет ровно 10 минут после начала.
Хмм, подумал я, наверное это косоглазые чего-то начудили. Заглянув в /etc/ppp/peers/gprs, я обнаружил там две строчки:
lcp-echo-interval 60
lcp-echo-failure 10
и совпадение это меня озадачило.
Я немедленно поменял 10 на 5 и сеанс стал жить ровно 5 минут.

Мысленно извинившись перед корейскими братьями, я включил debug у pppd и стал внимательно читать бубнеж, образовавщийся в логах:
sent [LCP EchoReq id=0x1 magic=0x1c24ff60]
rcvd [LCP EchoRep id=0x1 magic=0x1c24ff60]
sent [LCP EchoReq id=0x2 magic=0x1c24ff60]
rcvd [LCP EchoRep id=0x2 magic=0x1c24ff60]

Таааак. Понятненько. У еcho reply тот же magic number, что и у echo request, pppd воспринимает это как loopback (интересно, а почему он продолжает жить? я бы на его месте сразу бы завершал вызов), игнорирует этот echo reply и так далее пока патроны не иссякли не кончились lcp-echo-failure.

Ну и какого хрена, спрашивается?
Ведь английским по экрану в RFC1661, раздел 5.8:
"Until the Magic-Number Configuration Option has been successfully negotiated, the Magic-Number MUST be transmitted as zero. See the Magic-Number Configuration Option for further explanation."
А никаких попыток to negotiate Magic-Number Configuration Option не было и в помине.

Понятно, что лечится это все словом nomagic в конфиге pppd, но все равно обидно.

Итак, сволотой объявляются обе стороны:
1) слюниксовый pppd за несоответствие RFC и наглое пихание своего magic number'а куда не просят
2) LG'шный телефон за несоответствие тому же RFC. Ну не умеешь генерить собственный magic, ну и хрен с тобой. Но брать magic, который приехал в echo request и, не покривив мордой, ретранслировать его же обратно, это да, это надо додуматься.

Всех убью, один останусь.

This entry was originally posted in my livejournal

0 TrackBacks

Listed below are links to blogs that reference this entry: Все гады.

TrackBack URL for this entry: http://net-geek.org/cgi-bin/mt/mt-tb.cgi/37

Comments

Pages

Archives

Sign In