summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-admin/conky/files/conky-1.9.0-apcupsd.patch')
-rw-r--r--app-admin/conky/files/conky-1.9.0-apcupsd.patch106
1 files changed, 0 insertions, 106 deletions
diff --git a/app-admin/conky/files/conky-1.9.0-apcupsd.patch b/app-admin/conky/files/conky-1.9.0-apcupsd.patch
deleted file mode 100644
index 6b942d32c4c9..000000000000
--- a/app-admin/conky/files/conky-1.9.0-apcupsd.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-Description: Fix broken apcupsd support in Conky 1.8.1
- Revert apcupsd-related code to Conky 1.8.0 in order to fix broken apcupsd
- support. This is a workaround until upstream properly addresses this issue.
-From: Brian Derr <bderrly@gmail.com>
-Forwarded: https://sourceforge.net/support/tracker.php?aid=3083859
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/897495
-Last-Update: 2011-12-02
-
---- a/src/apcupsd.c
-+++ b/src/apcupsd.c
-@@ -154,7 +154,7 @@
- //
- // Conky update function for apcupsd data
- //
--int update_apcupsd(void) {
-+void update_apcupsd(void) {
-
- int i;
- APCUPSD_S apc;
-@@ -164,41 +164,44 @@
- memcpy(apc.items[i], "N/A", 4); // including \0
-
- do {
-- struct addrinfo hints;
-- struct addrinfo *ai, *rp;
-- int res;
-+ struct hostent* he = 0;
-+ struct sockaddr_in addr;
- short sz = 0;
-- char portbuf[8];
-+#ifdef HAVE_GETHOSTBYNAME_R
-+ struct hostent he_mem;
-+ int he_errno;
-+ char hostbuff[2048];
-+#endif
- //
- // connect to apcupsd daemon
- //
-- memset(&hints, 0, sizeof(struct addrinfo));
-- hints.ai_family = AF_UNSPEC;
-- hints.ai_socktype = SOCK_STREAM;
-- hints.ai_flags = 0;
-- hints.ai_protocol = 0;
-- snprintf(portbuf, 8, "%d", info.apcupsd.port);
-- res = getaddrinfo(info.apcupsd.host, portbuf, &hints, &ai);
-- if (res != 0) {
-- NORM_ERR("APCUPSD getaddrinfo: %s", gai_strerror(res));
-+ sock = socket(AF_INET, SOCK_STREAM, 0);
-+ if (sock < 0) {
-+ perror("socket");
- break;
- }
-- for (rp = ai; rp != NULL; rp = rp->ai_next) {
-- sock = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol);
-- if (sock == -1) {
-- continue;
-- }
-- if (connect(sock, rp->ai_addr, rp->ai_addrlen) != -1) {
-- break;
-- }
-- close(sock);
-+#ifdef HAVE_GETHOSTBYNAME_R
-+ if (gethostbyname_r(info.apcupsd.host, &he_mem, hostbuff, sizeof(hostbuff), &he, &he_errno) || !he ) {
-+ NORM_ERR("APCUPSD gethostbyname_r: %s", hstrerror(h_errno));
-+ break;
-+ }
-+#else /* HAVE_GETHOSTBYNAME_R */
-+ he = gethostbyname(info.apcupsd.host);
-+ if (!he) {
-+ herror("gethostbyname");
-+ break;
- }
-- freeaddrinfo(ai);
-- if (rp == NULL) {
-+#endif /* HAVE_GETHOSTBYNAME_R */
-+
-+ memset(&addr, 0, sizeof(addr));
-+ addr.sin_family = AF_INET;
-+ addr.sin_port = info.apcupsd.port;
-+ memcpy(&addr.sin_addr, he->h_addr, he->h_length);
-+ if (connect(sock, (struct sockaddr*)&addr, sizeof(struct sockaddr)) < 0) {
- // no error reporting, the daemon is probably not running
- break;
- }
--
-+
- //
- // send status request - "status" - 6B
- //
-@@ -222,5 +225,5 @@
- // "atomically" copy the data into working set
- //
- memcpy(info.apcupsd.items, apc.items, sizeof(info.apcupsd.items));
-- return 0;
-+ return;
- }
---- a/src/apcupsd.h
-+++ b/src/apcupsd.h
-@@ -49,6 +49,6 @@
- } APCUPSD_S, *PAPCUPSD_S;
-
- /* Service routine for the conky main thread */
--int update_apcupsd(void);
-+void update_apcupsd(void);
-
- #endif /*APCUPSD_H_*/