diff options
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.patch | 106 |
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_*/ |