Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37536209
en ru br
Репозитории 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
www.altlinux.org/Changes

Группа :: Система/Серверы
Пакет: 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) {
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin