From f51b12f39c44d6d0a41b1201b2b1c62ccb1a5c73 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Apr 10 2018 05:19:35 +0000 Subject: import acpid-2.0.19-9.el7 --- diff --git a/SOURCES/acpid-2.0.19-kacpimon-dynamic-connections.patch b/SOURCES/acpid-2.0.19-kacpimon-dynamic-connections.patch new file mode 100644 index 0000000..b17dcbc --- /dev/null +++ b/SOURCES/acpid-2.0.19-kacpimon-dynamic-connections.patch @@ -0,0 +1,131 @@ +diff --git a/kacpimon/connection_list.c b/kacpimon/connection_list.c +index 9b0b0a8..f228186 100644 +--- a/kacpimon/connection_list.c ++++ b/kacpimon/connection_list.c +@@ -22,6 +22,7 @@ + + #include + #include ++#include + + #include "connection_list.h" + +@@ -30,9 +31,9 @@ + /*---------------------------------------------------------------*/ + /* private objects */ + +-#define MAX_CONNECTIONS 20 ++static int capacity = 0; + +-static struct connection connection_list[MAX_CONNECTIONS]; ++static struct connection *connection_list = NULL; + + static int nconnections = 0; + +@@ -51,9 +52,19 @@ add_connection(struct connection *p) + { + if (nconnections < 0) + return; +- if (nconnections >= MAX_CONNECTIONS) { +- printf("add_connection(): Too many connections.\n"); +- return; ++ ++ /* if the list is full, allocate more space */ ++ if (nconnections >= capacity) { ++ /* no more than 1024 */ ++ if (capacity > 1024) { ++ printf("add_connection(): Too many connections.\n"); ++ return; ++ } ++ ++ /* another 20 */ ++ capacity += 20; ++ connection_list = ++ realloc(connection_list, sizeof(struct connection) * capacity); + } + + if (nconnections == 0) +@@ -70,6 +81,30 @@ add_connection(struct connection *p) + + /*---------------------------------------------------------------*/ + ++void ++delete_all_connections(void) ++{ ++ int i = 0; ++ ++ /* For each connection */ ++ for (i = 0; i <= get_number_of_connections(); ++i) ++ { ++ struct connection *p; ++ ++ p = get_connection(i); ++ ++ /* If this connection is invalid, try the next. */ ++ if (p == 0) ++ continue; ++ ++ close(p -> fd); ++ } ++ free(connection_list); ++ connection_list = NULL; ++} ++ ++/*---------------------------------------------------------------*/ ++ + struct connection * + find_connection(int fd) + { +diff --git a/kacpimon/connection_list.h b/kacpimon/connection_list.h +index 1d037cf..a787637 100644 +--- a/kacpimon/connection_list.h ++++ b/kacpimon/connection_list.h +@@ -56,4 +56,7 @@ extern const fd_set *get_fdset(void); + /* get the highest fd that was added to the list */ + extern int get_highestfd(void); + ++/* delete all connections, closing the fds */ ++extern void delete_all_connections(void); ++ + #endif /* CONNECTION_LIST_H__ */ +diff --git a/kacpimon/kacpimon.c b/kacpimon/kacpimon.c +index 1ddb9aa..253d270 100644 +--- a/kacpimon/kacpimon.c ++++ b/kacpimon/kacpimon.c +@@ -164,27 +164,6 @@ static void monitor(void) + + // --------------------------------------------------------------- + +-static void close_all(void) +-{ +- int i = 0; +- +- /* For each connection */ +- for (i = 0; i <= get_number_of_connections(); ++i) +- { +- struct connection *p; +- +- p = get_connection(i); +- +- /* If this connection is invalid, try the next. */ +- if (p == 0) +- continue; +- +- close(p -> fd); +- } +-} +- +-// --------------------------------------------------------------- +- + int main(void) + { + printf("Kernel ACPI Event Monitor...\n"); +@@ -199,7 +178,7 @@ int main(void) + + printf("Closing files...\n"); + +- close_all(); ++ delete_all_connections(); + + printf("Goodbye\n"); + diff --git a/SPECS/acpid.spec b/SPECS/acpid.spec index ddd9b46..8513fe6 100644 --- a/SPECS/acpid.spec +++ b/SPECS/acpid.spec @@ -8,7 +8,7 @@ Summary: ACPI Event Daemon Name: acpid Version: 2.0.19 -Release: 8%{?dist} +Release: 9%{?dist} License: GPLv2+ Group: System Environment/Daemons Source: http://downloads.sourceforge.net/acpid2/%{name}-%{version}.tar.xz @@ -20,6 +20,8 @@ Source5: acpid.service Source6: acpid.sysconfig # backported from upstream Patch0: acpid-2.0.19-dynamic-connections.patch +# https://sourceforge.net/p/acpid2/tickets/14/ +Patch1: acpid-2.0.19-kacpimon-dynamic-connections.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: ia64 x86_64 %{ix86} aarch64 URL: http://sourceforge.net/projects/acpid2/ @@ -44,6 +46,7 @@ The acpid-sysvinit contains SysV initscript. %prep %setup -q %patch0 -p1 -b .dynamic-connections +%patch1 -p1 -b .kacpimon-dynamic-connections %build %configure @@ -121,6 +124,11 @@ done %changelog +* Thu Aug 31 2017 Jaroslav Škarvada - 2.0.19-9 +- Switched kacpimon to dynamic connections (increased max connections + from 20 to 1024) + Resolves: rhbz#1450980 + * Tue May 9 2017 Jaroslav Škarvada - 2.0.19-8 - Fixed conversion scriptlet Resolves: rhbz#1436320