Репозитории ALT
S: | 2.8.0-alt2 |
5.1: | 2.0.5-alt4 |
4.1: | 2.0.5-alt3 |
4.0: | 2.0.5-alt2 |
3.0: | 2.0.2-alt1 |
Группа :: Система/Серверы
Пакет: nut
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: nut-2.6.0-upsd-listen.patch
Скачать
Скачать
--- 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) {