From 3595933d221f0ba836917debc0776b8723972ec9 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Tue, 11 Aug 2015 17:40:50 +0300
Subject: [PATCH 1/3] Patch with fixes provided by Debian.

This patch is taken from
ftp://ftp.debian.org/debian/pool/main/a/apmd/apmd_3.2.2-15.debian.tar.xz

Upstream-Status: Inappropriate [upstream is dead]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>

---
 Makefile |  2 +-
 apm.c    |  3 ++-
 apm.h    |  9 +++++++++
 apmd.c   | 15 ++++++++-------
 4 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/Makefile b/Makefile
index bf346d9..92fc0fd 100644
--- a/Makefile
+++ b/Makefile
@@ -43,7 +43,7 @@ DESTDIR=
 
 CC=gcc
 CFLAGS=-O -g
-XTRACFLAGS=-Wall -pipe -I. -I/usr/src/linux/include \
+XTRACFLAGS=-Wall -pipe -I. -I/usr/src/linux/include -I/usr/X11R6/include \
 		-I/usr/src/linux-2.2/include -I /usr/src/linux-2.0/include \
 		-DVERSION=\"$(VERSION)\" \
 		-DDEFAULT_PROXY_NAME=\"$(PROXY_DIR)/apmd_proxy\"
diff --git a/apm.c b/apm.c
index b21c057..0359b1c 100644
--- a/apm.c
+++ b/apm.c
@@ -219,12 +219,13 @@ int main(int argc, char **argv)
 		}
 	}
 													    
-
+#if 0
     if (!(i.apm_flags & APM_32_BIT_SUPPORT))
     {
 	fprintf(stderr, "32-bit APM interface not supported\n");
 	exit(1);
     }
+#endif
 
     if (verbose && (i.apm_flags & 0x10))
 	printf("APM BIOS Power Management is currently disabled\n");
diff --git a/apm.h b/apm.h
index fb24dfd..824cc06 100644
--- a/apm.h
+++ b/apm.h
@@ -20,6 +20,13 @@
  * $Id: apm.h,v 1.7 1999/07/05 22:31:11 apenwarr Exp $
  * 
  */
+#ifndef _APM_H
+#define _APM_H 1
+
+#ifndef __KERNEL_STRICT_NAMES
+#define __KERNEL_STRICT_NAMES
+#endif
+
 #include <linux/apm_bios.h>
 #include <sys/types.h>
 
@@ -93,3 +100,5 @@ extern int apm_reject(int fd);
 #else
 #define apm_reject(fd)   (-EINVAL)
 #endif
+
+#endif
diff --git a/apmd.c b/apmd.c
index 49ed3a1..560f536 100644
--- a/apmd.c
+++ b/apmd.c
@@ -343,7 +343,7 @@ static int call_proxy(apm_event_t event)
 		/* parent */
 		int status, retval;
 		ssize_t len;
-		time_t time_limit;
+		time_t countdown;
 
 		if (pid < 0) {
 			/* Couldn't fork */
@@ -356,8 +356,9 @@ static int call_proxy(apm_event_t event)
 		/* Capture the child's output, if any, but only until it terminates */
 		close(fds[1]);
 		fcntl(fds[0], F_SETFL, O_RDONLY|O_NONBLOCK);
-		time_limit = time(0) + proxy_timeout;
+		countdown = proxy_timeout;
 		do {
+			countdown -= 1;
 			while ((len = read(fds[0], line, sizeof(line)-1)) > 0) {
 				line[len] = 0;
 				APMD_SYSLOG(LOG_INFO, "+ %s", line);
@@ -372,16 +373,16 @@ static int call_proxy(apm_event_t event)
 				goto proxy_done;
 			}
 				
-			sleep(1);
+			while (sleep(1) > 0) ;
 		} while (
-			(time(0) < time_limit)
+			(countdown >= 0)
 			|| (proxy_timeout < 0)
 		);
 
 		APMD_SYSLOG(LOG_NOTICE, "Proxy has been running more than %d seconds; killing it", proxy_timeout);
 
 		kill(pid, SIGTERM);
-		time_limit = time(0) + 5;
+		countdown = 5;
 		do {
 			retval = waitpid(pid, &status, WNOHANG);
 			if (retval == pid)
@@ -392,9 +393,9 @@ static int call_proxy(apm_event_t event)
 				goto proxy_done;
 			}
 
-			sleep(1);
+			while (sleep(1) > 0) ;
 
-		} while (time(0) < time_limit);
+		} while (countdown >= 0);
 
 		kill(pid, SIGKILL);
 		status = __W_EXITCODE(0, SIGKILL);
-- 
2.1.4

