* [sisyphus] I: nut-2.6.0, please test/help @ 2011-02-19 21:54 Michael Shigorin 2011-02-20 9:45 ` Yura Kalinichenko 0 siblings, 1 reply; 4+ messages in thread From: Michael Shigorin @ 2011-02-19 21:54 UTC (permalink / raw) To: sisyphus Здравствуйте. Пилю тут урывками свежий nut, предлагаю заинтересованным очередной полуфабрикат на изучение сквозь прицел напильника. Из обнаруженного: - в 2.6.0 теперь сами делают initgroups(): server/upsd.c::main() около chdir() `-> common/common.c::become_user() => пришлось изобразить заполнение /var/lib/nut/etc/group в %pre пакета nut-server - без указания опции "-4" upsd/upsdrvctl не стартуют при отсутствии ipv6, поскольку надо там аж 127.0.0.1 -- воткнуто по умолчанию в /etc/sysconfig/upsd, спросил апстрим Поскольку домашний UPS, похоже, помер как минимум батарейкой, то с тестированием у меня сейчас туго. В общем, оно здесь: http://fly.osdn.org.ua/~mike/RPM/SRPMS/nut-2.6.0-alt1.src.rpm -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [sisyphus] I: nut-2.6.0, please test/help 2011-02-19 21:54 [sisyphus] I: nut-2.6.0, please test/help Michael Shigorin @ 2011-02-20 9:45 ` Yura Kalinichenko 2011-02-20 12:48 ` Sergey Vlasov 0 siblings, 1 reply; 4+ messages in thread From: Yura Kalinichenko @ 2011-02-20 9:45 UTC (permalink / raw) To: shigorin, ALT Linux Sisyphus discussions Michael Shigorin пишет: > Здравствуйте. > Пилю тут урывками свежий nut, Аналогично. Что радует - оно уже таки нормально конфигурится под ALT >=4. > - без указания опции "-4" upsd/upsdrvctl не стартуют при > отсутствии ipv6, поскольку надо там аж 127.0.0.1 -- > воткнуто по умолчанию в /etc/sysconfig/upsd, спросил апстрим Я посмотрел как оно было сделано в 2.2.2 и повторил, вряд ли правильно - но "чтоб работало". По крайней мере upsd поднялся. diff -U 2 -r nut-2.6.0.orig/server/upsd.c nut-2.6.0/server/upsd.c --- nut-2.6.0.orig/server/upsd.c 2010-12-24 15:24:12 +0200 +++ nut-2.6.0/server/upsd.c 2011-02-12 12:58:33 +0200 @@ -546,10 +546,11 @@ /* default behaviour if no LISTEN addres has been specified */ if (!firstaddr) { - if (opt_af != AF_INET) { - listen_add("::1", string_const(PORT)); - } - if (opt_af != AF_INET6) { + if (opt_af == AF_INET6) { + listen_add("::1", string_const(PORT)); + } else if (opt_af == AF_INET) { listen_add("127.0.0.1", string_const(PORT)); + } else { + listen_add("0.0.0.0", string_const(PORT)); } } -- SY, Yura Kalinichenko ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [sisyphus] I: nut-2.6.0, please test/help 2011-02-20 9:45 ` Yura Kalinichenko @ 2011-02-20 12:48 ` Sergey Vlasov 2011-02-20 19:24 ` Yura Kalinichenko 0 siblings, 1 reply; 4+ messages in thread From: Sergey Vlasov @ 2011-02-20 12:48 UTC (permalink / raw) To: sisyphus [-- Attachment #1: Type: text/plain, Size: 2648 bytes --] On Sun, Feb 20, 2011 at 11:45:34AM +0200, Yura Kalinichenko wrote: > Michael Shigorin пишет: > > Здравствуйте. > > Пилю тут урывками свежий nut, > Аналогично. Что радует - оно уже таки нормально конфигурится под ALT >=4. > > - без указания опции "-4" upsd/upsdrvctl не стартуют при > > отсутствии ipv6, поскольку надо там аж 127.0.0.1 -- > > воткнуто по умолчанию в /etc/sysconfig/upsd, спросил апстрим > Я посмотрел как оно было сделано в 2.2.2 и повторил, вряд ли правильно - > но "чтоб работало". По крайней мере upsd поднялся. > > diff -U 2 -r nut-2.6.0.orig/server/upsd.c nut-2.6.0/server/upsd.c > --- nut-2.6.0.orig/server/upsd.c 2010-12-24 15:24:12 +0200 > +++ nut-2.6.0/server/upsd.c 2011-02-12 12:58:33 +0200 > @@ -546,10 +546,11 @@ > /* default behaviour if no LISTEN addres has been specified */ > if (!firstaddr) { > - if (opt_af != AF_INET) { > - listen_add("::1", string_const(PORT)); > - } > > - if (opt_af != AF_INET6) { > + if (opt_af == AF_INET6) { > + listen_add("::1", string_const(PORT)); > + } else if (opt_af == AF_INET) { > listen_add("127.0.0.1", string_const(PORT)); > + } else { > + listen_add("0.0.0.0", string_const(PORT)); > } > } Такой вариант явно никуда не годится - по умолчанию пропадает не только поддержка IPv6, но и привязка к localhost. Вместо этого, вероятно, надо для случая opt_af == AF_UNSPEC (опции -4 или -6 не заданы явно) перед выполнением listen_add("::1", string_const(PORT)) проверять возможность создания сокета AF_INET6. (Патч не тестировался даже gcc.) --- nut-2.6.0/server/upsd.c.alt-ipv6-optional 2010-12-24 16:24:12.000000000 +0300 +++ nut-2.6.0/server/upsd.c 2011-02-20 15:44:01.508000003 +0300 @@ -539,6 +539,19 @@ static void client_readline(ctype_t *cli return; } +static int ipv6_available(void) +{ + int sock_fd; + + if ((sock_fd = socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP)) < 0) { + upsdebug_with_errno(3, "ipv6_available: socket"); + return 0; + } + + close(sock_fd); + return 1; +} + void server_load(void) { stype_t *server; @@ -546,7 +559,9 @@ void server_load(void) /* default behaviour if no LISTEN addres has been specified */ if (!firstaddr) { if (opt_af != AF_INET) { - listen_add("::1", string_const(PORT)); + if (opt_af == AF_INET6 || ipv6_available()) { + listen_add("::1", string_const(PORT)); + } } if (opt_af != AF_INET6) { [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [sisyphus] I: nut-2.6.0, please test/help 2011-02-20 12:48 ` Sergey Vlasov @ 2011-02-20 19:24 ` Yura Kalinichenko 0 siblings, 0 replies; 4+ messages in thread From: Yura Kalinichenko @ 2011-02-20 19:24 UTC (permalink / raw) To: ALT Linux Sisyphus discussions Sergey Vlasov пишет: > Такой вариант явно никуда не годится Да я и не претендую. Сделал, в общем-то, без понимания сути - лишь бы завелось в моих условиях. Ваш патч, вероятно, правильный, и, главное - рабочий. Проверил, все OK. Его бы в upstream. -- SY, Yura Kalinichenko ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-02-20 19:24 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-02-19 21:54 [sisyphus] I: nut-2.6.0, please test/help Michael Shigorin 2011-02-20 9:45 ` Yura Kalinichenko 2011-02-20 12:48 ` Sergey Vlasov 2011-02-20 19:24 ` Yura Kalinichenko
ALT Linux Sisyphus discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \ sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru public-inbox-index sisyphus Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sisyphus AGPL code for this site: git clone https://public-inbox.org/public-inbox.git