-запускаем программу -подключаемся к jabber-серверу -ставим статус "отключен" -меняем сетевые настройки, в том числе и адрес ДНС-сервера(например, с ноутбуком из офиса приехали домой) -ставим статус "доступен"... gajim пытается подключиться, потом выдаёт сообщение "не найден узел <имя ждаббер-сервера>. В tcpdump видно, что gajim пытается подключиться к DNS-серверу по старому адресу, т.е. адрес DNS запоминается во время старта и далее не обновляется до следующего рестарта.
Принято. Как раз недавно на эту тему исправляли pidgin; он теперь просто перечитывает resolv.conf перед каждым коннектом. Ну и тут сделаем что-нибудь похожее.
Современный gajim, когда ему нужно что-нибудь отрезолвить, запускает nslookup. Так что бага странная. Точно gajim лезет в старый DNS?
rt@banzay-book ~ $ rpm -q gajim gajim-0.11.4-alt1.1.qa1 rt@banzay-book ~ $ cat /etc/resolv.conf nameserver 212.119.96.33 search home nameserver 212.119.97.5 Вот лог tcpdump. первая группа строк - пинги к www.ru, потом gajim пытается соединиться с jabber и обращается к DNS-серверу(192.168.13.1), который остался у него от предыдущего сетевого профиля, а после нормально подключаемся к imap-серверу при помощи правильного DNS. rt@banzay-book ~ $ sudo tcpdump -i ppp2 -n tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ppp2, link-type LINUX_SLL (Linux cooked), capture size 96 bytes 20:06:08.563109 IP 92.36.22.103.35727 > 212.119.96.33.domain: 10768+ A? www.ru. (24) 20:06:09.378323 IP 212.119.96.33.domain > 92.36.22.103.35727: 10768 1/2/3 A 194.87.0.50 (140) 20:06:09.378922 IP 92.36.22.103 > 194.87.0.50: ICMP echo request, id 5947, seq 1, length 64 20:06:09.516987 IP 194.87.0.50 > 92.36.22.103: ICMP echo reply, id 5947, seq 1, length 64 20:06:09.518433 IP 92.36.22.103.54622 > 212.119.96.33.domain: 16250+ PTR? 50.0.87.194.in-addr.arpa. (42) 20:06:09.649658 IP 212.119.96.33.domain > 92.36.22.103.54622: 16250 1/3/4 (200) 20:06:10.379060 IP 92.36.22.103 > 194.87.0.50: ICMP echo request, id 5947, seq 2, length 64 20:06:10.515339 IP 194.87.0.50 > 92.36.22.103: ICMP echo reply, id 5947, seq 2, length 64 20:06:19.607196 IP 92.36.22.103.34511 > 192.168.13.1.domain: 49851+ AAAA? jabber.ru. (27) 20:06:24.607744 IP 92.36.22.103.34511 > 192.168.13.1.domain: 49851+ AAAA? jabber.ru. (27) 20:06:29.607948 IP 92.36.22.103.41000 > 192.168.13.1.domain: 42099+ AAAA? jabber.ru.home. (32) 20:06:34.608054 IP 92.36.22.103.41000 > 192.168.13.1.domain: 42099+ AAAA? jabber.ru.home. (32) 20:06:39.608362 IP 92.36.22.103.45563 > 192.168.13.1.domain: 1972+ A? jabber.ru. (27) 20:06:44.608569 IP 92.36.22.103.45563 > 192.168.13.1.domain: 1972+ A? jabber.ru. (27) 20:06:49.608850 IP 92.36.22.103.56304 > 192.168.13.1.domain: 42905+ A? jabber.ru.home. (32) 20:06:54.609031 IP 92.36.22.103.56304 > 192.168.13.1.domain: 42905+ A? jabber.ru.home. (32) 20:07:23.798084 IP 92.36.22.103.49610 > 212.119.96.33.domain: 58860+ AAAA? imap.aspirinka.net. (36) 20:07:24.874517 IP 212.119.96.33.domain > 92.36.22.103.49610: 58860 0/1/0 (78) 20:07:24.875406 IP 92.36.22.103.56004 > 212.119.96.33.domain: 10807+ AAAA? imap.aspirinka.net.home. (41) 20:07:25.024086 IP 212.119.96.33.domain > 92.36.22.103.56004: 10807 NXDomain 0/1/0 (116) 20:07:25.024425 IP 92.36.22.103.36316 > 212.119.96.33.domain: 5954+ A? imap.aspirinka.net. (36) 20:07:25.206561 IP 212.119.96.33.domain > 92.36.22.103.36316: 5954 1/2/0 A 212.158.162.151 (87) Если перезапустить gajim, то соединение пройдёт успешно. Порылся в ~/gajim/config, но не нашёл настройки, из-за которой эта проблема может быть моей локальной
Вот это репорт. Вот это я называю багрепорт. После такого стыдно немедленно не починить багу. Значит, так. Эту багу на gajim вешали давно: http://trac.gajim.org/ticket/2859 Её закрыли с той мотивацией, что на самом деле корень зла в glibc, который не перечитывает resolv.conf. Трудно не согласиться. В связи с этим я пошёл вешать FR на glibc с просьбой приложить дебиановский патч local-dynamic-resolvconf.diff. Пока суд да дело (пока не вышел новый релиз glibc), gajim можно похакать. Хак сейчас приложу.
Created attachment 2707 [details] Temporary hack to call res_init(3) before a connection in gajim.
хак работает, спасибо! (и ведь вроде лазил по гаджимову траку, но не нашел этой ошибки. спасибо, ещё раз)
В Сизифе новый релиз glibc, который должен устранить эту проблему.
Раз не работало, а теперь работает - значит, fixed. Хоть починка и не в gajim.
(In reply to comment #8) > Раз не работало, а теперь работает - значит, fixed. Почему это важно? (На какие события в будущем может в принципе повлиять такая замена resolution?)
На разгребание старых багов, скажем.