summaryrefslogtreecommitdiff
path: root/net-analyzer/nrpe
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /net-analyzer/nrpe
reinit the tree, so we can have metadata
Diffstat (limited to 'net-analyzer/nrpe')
-rw-r--r--net-analyzer/nrpe/Manifest16
-rw-r--r--net-analyzer/nrpe/files/nrpe-2.14-multiline.patch204
-rw-r--r--net-analyzer/nrpe/files/nrpe-2.15-autoconf-header.patch24
-rw-r--r--net-analyzer/nrpe/files/nrpe-2.15-metachar-security-fix.patch26
-rw-r--r--net-analyzer/nrpe/files/nrpe-2.15-no-ssl.patch39
-rw-r--r--net-analyzer/nrpe/files/nrpe-2.15-tcpd-et-al.patch50
-rw-r--r--net-analyzer/nrpe/files/nrpe-3.2.0.init16
-rw-r--r--net-analyzer/nrpe/files/nrpe.init49
-rw-r--r--net-analyzer/nrpe/files/nrpe.service11
-rw-r--r--net-analyzer/nrpe/files/nrpe.xinetd.211
-rw-r--r--net-analyzer/nrpe/metadata.xml25
-rw-r--r--net-analyzer/nrpe/nrpe-2.15-r3.ebuild136
-rw-r--r--net-analyzer/nrpe/nrpe-3.2.1.ebuild74
13 files changed, 681 insertions, 0 deletions
diff --git a/net-analyzer/nrpe/Manifest b/net-analyzer/nrpe/Manifest
new file mode 100644
index 000000000000..741729567b15
--- /dev/null
+++ b/net-analyzer/nrpe/Manifest
@@ -0,0 +1,16 @@
+AUX nrpe-2.14-multiline.patch 6806 SHA256 0e980f84044ddc955ad0f2086caf7102cc115193971bb21ec819bed45af5713a SHA512 09c0cc6a4610d674b0ed0da8cdc96f3653f98b54fc98802c33a1cc0b09755d3d0d6afd7fe6b25e1713e6b27af2ba1fa5063988691bc3b5364fa0bfd137d54546 WHIRLPOOL 02e237b3fcacf51e7fd61c25d661e91ff6a3aeb99a6e6ebe752e52f3407b7c8b8f0317693922fa20c48111b7c7eb1803aaa66fc97b8c7c0c8bcf7e066b762199
+AUX nrpe-2.15-autoconf-header.patch 898 SHA256 f1d4c9707413c709d2fd3d0bd8f91a0a94c212e50884fe0f7e9043b02c12606e SHA512 aa7aa0cb57c1b9826a980f9e093f8c8219e0b02dd1e8ba27e74a0a39e746d723e280a93d18d4e069743d14937e0c7159336bb6f406671450fc6a0bb90f902fb2 WHIRLPOOL 1e844bd9e7ccc58988dbde401f900195fb3537ffa6f1bb797d21c8eafe1d73c0103d0ae88b1ff857dc1153956548e45da936516392f863bd317ad5b9b04f7b23
+AUX nrpe-2.15-metachar-security-fix.patch 1165 SHA256 3ddca467693e0eda30eceaf4d772c4b8bb5caa53f34e2600468ccfe211e7fdde SHA512 cba997f4433dd38c95a3e2166f091b53ac6f618f25944dc69bb9ae5864a74a1136667c557881a498ce6aa16e91b367c416a5935e20e348f94f140fdc09692b29 WHIRLPOOL 1b6ecdf764d165139722342eeb3da891f61f384aafcf4a252c62347cb98e39d123cd1572e052afa3e739f0f8d507337dc309282887941e4a1d8179cf1f01fe5f
+AUX nrpe-2.15-no-ssl.patch 967 SHA256 5565f2bbff0aa1b29a399f8a233c2ca58658a0c015a47a65ea43b738c7b4f678 SHA512 17163aa22fd9e03ca00679756413c9ac2051b2d66c894b3ec6dc6bad468d2835c95481eab915b40ccc37e7063e1a2b382af7ed47a5c2ea6d1aa94286a95c44ce WHIRLPOOL d1c398762efe3c837288099d90acbf7ff349ff359940020cbbdc9d9ec4a53f1d65f5b11902c1528e7e0d197d7e5594ede31849572205baf01c885ff2b32e1e41
+AUX nrpe-2.15-tcpd-et-al.patch 2651 SHA256 51717c199bba70dc6b2361fc576dd43604cd3fa072ca5440ee30f0878e3eb521 SHA512 d4c2b38f05b9ac19702ff81d0f07cabed9f98a309e0e4d287bd9784b0aa6ee50ff8b6aee0f4d5541cb10120d463b470d23a6d4a4a2627166d6cf1b07fb5d61de WHIRLPOOL ee2f751582325474718bb34ee80979b6b8667603b7e55d8797d4f5ad2d76c6f18150d902d320b93d42b53b15b1040fbbd6b7d7169422f8e9fc02b01d807e7889
+AUX nrpe-3.2.0.init 415 SHA256 dab32a8f0135734230b17694a0f037688812ef9bac6f892a40db706ee2183de3 SHA512 77f1f265c78de4c806788b7cf40aeb08b533b617bafbee9b487afa6625ae4b5d9be8f46179084d3338ed4edcbb90422aa520ad6daef503758fd9e9b7bdf04ed7 WHIRLPOOL 929240448ff812857b501a9104373a63eac5cf17861a7f8e136c6d450d88120dcb216275303f425bb2f7ba2dd29aec768f2143d43e2dec336b2796037cc44054
+AUX nrpe.init 1152 SHA256 8b2f3cc378dd4aa9378fdda1179f08bdc0eec2bb1d1989c0e84e0dd82a54b8d4 SHA512 19f470407d63b2949535acd6e5849afbea44f82a5773f9110f8b025c380c0626a0a733ead417b1ce293741168acea5a885c2e9f94fb1c0b3e38a06e0eae4ddca WHIRLPOOL 0530564567fff3f15b032938a5359929b8c8dd139c9b39d0a73f1bb8b4de7fe744e6fae0f48e92549e2d646a0af606cab3a24368419b9ba447d6ba21e6ff89c9
+AUX nrpe.service 242 SHA256 20ecfad6b5e9010de3e2b80e3e6eb035ceb54febe0745f75874ca4db29252107 SHA512 ffd67467cc4f5ccdf73e0860d1355a8cc3e528d0c67f2054b0ad76c02a43f9c5a8964a3f6df6f91eaa8e15c3c9596259aa964ad69aa2da60678d68fa892b2346 WHIRLPOOL 652a701aa8739a3bfd8cea23e051eed63a69c45cb80d1a2edd4c1105e14dadbe6181b54e7383e9d53a94da625c15c96af83a75406338a018a1bb1337242df58e
+AUX nrpe.xinetd.2 245 SHA256 9b58e79ec14f538a2750875a49fdbc153c5919b2b97cdc9380ae9d11dbf65c28 SHA512 d687cb2a5babfd28a97d3a5f1ac665758341ecc37fdd0193dbf0df4cba68c88aa24776a33a706989843fa5356b2e3e995662a823ceb2b86ba8f846f8c47e18fb WHIRLPOOL 60a96b00f18dd3305794f81288ed781b19b471e1838243970672762682d56e34ff4d325a62a77178d229ff67b9b39c9a9da7ef0dd78b8fbdb541b2e983d4f9d4
+DIST nrpe-2.15.tar.gz 419695 SHA256 66383b7d367de25ba031d37762d83e2b55de010c573009c6f58270b137131072 SHA512 03ce9774b5112d03235dc9da075770d89d1bcc5ffa5faf221ff7ea8ec5c92ded1e1ae9222581a87cf53736d190ac047e1acce7edc2f31f26c432d786cdef0e73 WHIRLPOOL f97ad7431138fd96588bb4e9d13404a0425bbdb8582c7c472cb20621bb77a9e9ecdeed88b9247ea20815da33c5b123368a540c5a0a058921e59367c2ce2a2b10
+DIST nrpe-3.2.1.tar.gz 518015 SHA256 8ad2d1846ab9011fdd2942b8fc0c99dfad9a97e57f4a3e6e394a4ead99c0f1f0 SHA512 ec6ff42a00bd97ed80010a82e26dc35fd419f2feda65820cda0108068173c1ae44eee698833a50fd2079429a6f5eb1321c4f06b09c6708bc5fbe48f176389856 WHIRLPOOL b6d14d57dd40b69f7bd6b0c125a3b839741b4265868f3f2bf02523b67954d1580a50f5b8bafc7210320f04964ff2f6727448c59f826cc85ed313bd4483218687
+EBUILD nrpe-2.15-r3.ebuild 3946 SHA256 ec1cd79c3ad70dc0c25389fcd7bdb8ef4f4a9af465c938c7ca7ffa860fbeb21b SHA512 bd85540c064f550072e1bd53928cbc5c2965a43f9a7847d2caf4f7cfcee681f7d6d0235d8dc9c4940b0d2bf44bb065cba1df0552af61a1aa7558bb2fa1bf99e4 WHIRLPOOL b2cc20d825376e4645d0f6d6559d757c36d918d1c0a19a571045602ad1443f9c22c059dd44eb86552e0f2c6fbe507664e9b3a23f9b389dfea86a6c50439b3f04
+EBUILD nrpe-3.2.1.ebuild 1873 SHA256 818be0302263f942fb4bf1604b70853d67c18b2449a559f9596267719047be24 SHA512 cf17db5aa952fb6743629fa05c0d226c2f04affecd676034c5f44f81478c430794dbd263dfc4868a6921148301b64ac1ef852ad839e85288c964004009086967 WHIRLPOOL 1e711f78113d70684f2829ae2311b475ccae7d02eb66ce6cf0e42f461f222ff785ac46cdb577b94353af20e1a40fe88f8903155e2464aa73038a81eebe7044c9
+MISC ChangeLog 3802 SHA256 ed4b2b1eba96a627270fe37c90b96e05997ea1b0ebe22d8eba713ad6121a7f79 SHA512 df13ed3437cdd214dd8afa22a808f8ffa3dcebec9ae92e66da8fac0ae76f6ef74eff9653a389893a11ca5f7fcea2ca46aaf7052a62e6cdf6205de164d26011bf WHIRLPOOL d6b5cc1d6f4e6ca982fcc77b42f5555657403703492cf252fcabd46b4ecb1299ee4ec08c69ca3789bc94fb0ca6f78b2d4f616aa79a60c9becefb49345cf76d7a
+MISC ChangeLog-2015 17034 SHA256 085b8586cf040ea9dd26313e9303ef50298842fa38e3cb1db9bc4c39a0190aa7 SHA512 1b516ea9b1d7152bd12f59c103a6cef3f4496ec2d11fc72334bf38c57607b0daa5f79e6f2103c1446948edcc184f1a2838c0fcd1e24d689d2afec7a6517fa9f0 WHIRLPOOL 42d1dcf322e984435cb7c5348da3322ad777056ed0bba4d46f441870d6a7df8cef0ebefd96250beec5905bbf3a77cb8094b322ee4ffdf84ac1032d13fb91c4d3
+MISC metadata.xml 882 SHA256 b3ba558950cf617ce770577a50cbb1200531dd344187fafae255b2ba8e7a6454 SHA512 2bbdd6bb5d0802985b242b8c058c749eca1adfb102820e2c587699622299936df90ee1ff43445df8686e1dd1648d0131bee40639ddfad3e26e9877c0c61dc40e WHIRLPOOL 5b605c1e4a1c325c9279f000799e1cf5290a7ad542679d949a12fec76f7ca28a277efde08d9920a68058d7a345185e8627cc62a67c41a9f47f69a05d939f2480
diff --git a/net-analyzer/nrpe/files/nrpe-2.14-multiline.patch b/net-analyzer/nrpe/files/nrpe-2.14-multiline.patch
new file mode 100644
index 000000000000..3af2ef95baba
--- /dev/null
+++ b/net-analyzer/nrpe/files/nrpe-2.14-multiline.patch
@@ -0,0 +1,204 @@
+Add support for large output
+
+http://opsview-blog.opsera.com/dotorg/2008/08/enhancing-nrpe.htmlIndex: nrpe-2.14/include/common.h
+===================================================================
+Index: nrpe-2.14/include/common.h
+===================================================================
+--- nrpe-2.14.orig/include/common.h
++++ nrpe-2.14/include/common.h
+@@ -41,7 +41,7 @@
+ #define DEFAULT_SOCKET_TIMEOUT 10 /* timeout after 10 seconds */
+ #define DEFAULT_CONNECTION_TIMEOUT 300 /* timeout if daemon is waiting for connection more than this time */
+
+-#define MAX_INPUT_BUFFER 2048 /* max size of most buffers we use */
++#define MAX_INPUT_BUFFER 16384 /* max size of most buffers we use */
+ #define MAX_FILENAME_LENGTH 256
+
+ #define MAX_HOST_ADDRESS_LENGTH 256 /* max size of a host address */
+@@ -55,12 +55,14 @@
+
+ #define QUERY_PACKET 1 /* id code for a packet containing a query */
+ #define RESPONSE_PACKET 2 /* id code for a packet containing a response */
++#define RESPONSE_PACKET_WITH_MORE 3 /* id code for a packet containing a response, with more data to follow */
+
+ #define NRPE_PACKET_VERSION_3 3 /* packet version identifier */
+ #define NRPE_PACKET_VERSION_2 2
+ #define NRPE_PACKET_VERSION_1 1 /* older packet version identifiers (no longer supported) */
+
+ #define MAX_PACKETBUFFER_LENGTH 1024 /* max amount of data we'll send in one query/response */
++ /* WARNING - do not change this as older clients/servers will not work */
+
+ typedef struct packet_struct{
+ int16_t packet_version;
+Index: nrpe-2.14/src/check_nrpe.c
+===================================================================
+--- nrpe-2.14.orig/src/check_nrpe.c
++++ nrpe-2.14/src/check_nrpe.c
+@@ -221,6 +221,11 @@ int main(int argc, char **argv){
+ return STATE_UNKNOWN;
+ }
+
++ /* Altinity patch: Allow multiple packets to be received */
++ /* Indentation not corrected to allow simpler patching */
++ /* START MULTI_PACKET LOOP */
++ do {
++
+ /* wait for the response packet */
+ bytes_to_recv=sizeof(receive_packet);
+ if(use_ssl==FALSE)
+@@ -233,31 +238,24 @@ int main(int argc, char **argv){
+ /* reset timeout */
+ alarm(0);
+
+- /* close the connection */
+-#ifdef HAVE_SSL
+- if(use_ssl==TRUE){
+- SSL_shutdown(ssl);
+- SSL_free(ssl);
+- SSL_CTX_free(ctx);
+- }
+-#endif
+- graceful_close(sd,1000);
+-
+ /* recv() error */
+ if(rc<0){
+ printf("CHECK_NRPE: Error receiving data from daemon.\n");
++ graceful_close(sd,1000);
+ return STATE_UNKNOWN;
+ }
+
+ /* server disconnected */
+ else if(rc==0){
+ printf("CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.\n");
++ graceful_close(sd,1000);
+ return STATE_UNKNOWN;
+ }
+
+ /* receive underflow */
+ else if(bytes_to_recv<sizeof(receive_packet)){
+ printf("CHECK_NRPE: Receive underflow - only %d bytes received (%d expected).\n",bytes_to_recv,sizeof(receive_packet));
++ graceful_close(sd,1000);
+ return STATE_UNKNOWN;
+ }
+
+@@ -271,21 +269,21 @@ int main(int argc, char **argv){
+ calculated_crc32=calculate_crc32((char *)&receive_packet,sizeof(receive_packet));
+ if(packet_crc32!=calculated_crc32){
+ printf("CHECK_NRPE: Response packet had invalid CRC32.\n");
+- close(sd);
++ graceful_close(sd,1000);
+ return STATE_UNKNOWN;
+ }
+
+ /* check packet version */
+ if(ntohs(receive_packet.packet_version)!=NRPE_PACKET_VERSION_2){
+ printf("CHECK_NRPE: Invalid packet version received from server.\n");
+- close(sd);
++ graceful_close(sd,1000);
+ return STATE_UNKNOWN;
+ }
+
+ /* check packet type */
+- if(ntohs(receive_packet.packet_type)!=RESPONSE_PACKET){
++ if(ntohs(receive_packet.packet_type)!=RESPONSE_PACKET && ntohs(receive_packet.packet_type)!=RESPONSE_PACKET_WITH_MORE){
+ printf("CHECK_NRPE: Invalid packet type received from server.\n");
+- close(sd);
++ graceful_close(sd,1000);
+ return STATE_UNKNOWN;
+ }
+
+@@ -297,8 +295,18 @@ int main(int argc, char **argv){
+ if(!strcmp(receive_packet.buffer,""))
+ printf("CHECK_NRPE: No output returned from daemon.\n");
+ else
+- printf("%s\n",receive_packet.buffer);
+- }
++ printf("%s",receive_packet.buffer);
++
++ } while (ntohs(receive_packet.packet_type)==RESPONSE_PACKET_WITH_MORE);
++ /* END MULTI_PACKET LOOP */
++
++ /* Finish output with newline */
++ printf("\n");
++
++ /* close the connection */
++ graceful_close(sd,1000);
++
++ }
+
+ /* reset the alarm */
+ else
+@@ -434,6 +442,14 @@ int graceful_close(int sd, int timeout){
+ struct timeval tv;
+ char buf[1000];
+
++#ifdef HAVE_SSL
++ if(use_ssl==TRUE){
++ SSL_shutdown(ssl);
++ SSL_free(ssl);
++ SSL_CTX_free(ctx);
++ }
++#endif
++
+ /* send FIN packet */
+ shutdown(sd,SHUT_WR);
+ for(;;){
+Index: nrpe-2.14/src/nrpe.c
+===================================================================
+--- nrpe-2.14.orig/src/nrpe.c
++++ nrpe-2.14/src/nrpe.c
+@@ -1056,6 +1056,8 @@ void handle_connection(int sock){
+ char processed_command[MAX_INPUT_BUFFER];
+ int result=STATE_OK;
+ int early_timeout=FALSE;
++ int bytes_copied=0;
++ char *pbuffer=&buffer[0];
+ int rc;
+ int x;
+ #ifdef DEBUG
+@@ -1272,6 +1274,14 @@ void handle_connection(int sock){
+ if(buffer[strlen(buffer)-1]=='\n')
+ buffer[strlen(buffer)-1]='\x0';
+
++ /* Altinity patch to allow multi packet responses */
++ /* Loop not indented to allow easier patching */
++ /* START MULTI_PACKET LOOP */
++ do {
++
++ if(debug==TRUE)
++ syslog(LOG_DEBUG,"Sending response - bytes left: %d", strlen(pbuffer));
++
+ /* clear the response packet buffer */
+ bzero(&send_packet,sizeof(send_packet));
+
+@@ -1280,11 +1290,17 @@ void handle_connection(int sock){
+
+ /* initialize response packet data */
+ send_packet.packet_version=(int16_t)htons(NRPE_PACKET_VERSION_2);
+- send_packet.packet_type=(int16_t)htons(RESPONSE_PACKET);
+ send_packet.result_code=(int16_t)htons(result);
+- strncpy(&send_packet.buffer[0],buffer,MAX_PACKETBUFFER_LENGTH);
++ strncpy(&send_packet.buffer[0],pbuffer,MAX_PACKETBUFFER_LENGTH);
+ send_packet.buffer[MAX_PACKETBUFFER_LENGTH-1]='\x0';
+-
++
++ bytes_copied = strlen(&send_packet.buffer[0]);
++ pbuffer = pbuffer+bytes_copied;
++ if(strlen(pbuffer)>0)
++ send_packet.packet_type=(int16_t)htons(RESPONSE_PACKET_WITH_MORE);
++ else
++ send_packet.packet_type=(int16_t)htons(RESPONSE_PACKET);
++
+ /* calculate the crc 32 value of the packet */
+ send_packet.crc32_value=(u_int32_t)0L;
+ calculated_crc32=calculate_crc32((char *)&send_packet,sizeof(send_packet));
+@@ -1303,6 +1319,9 @@ void handle_connection(int sock){
+ SSL_write(ssl,&send_packet,bytes_to_send);
+ #endif
+
++ } while (strlen(pbuffer) > 0);
++ /* END MULTI_PACKET LOOP */
++
+ #ifdef HAVE_SSL
+ if(ssl){
+ complete_SSL_shutdown( ssl);
diff --git a/net-analyzer/nrpe/files/nrpe-2.15-autoconf-header.patch b/net-analyzer/nrpe/files/nrpe-2.15-autoconf-header.patch
new file mode 100644
index 000000000000..81078c449713
--- /dev/null
+++ b/net-analyzer/nrpe/files/nrpe-2.15-autoconf-header.patch
@@ -0,0 +1,24 @@
+diff -Nuar --exclude '*.orig' nrpe-2.15.orig/configure.in nrpe-2.15/configure.in
+--- nrpe-2.15.orig/configure.in 2013-09-06 08:27:13.000000000 -0700
++++ nrpe-2.15/configure.in 2014-04-19 09:32:52.251766643 -0700
+@@ -6,7 +6,8 @@
+
+ AC_INIT([nrpe],[2.15],[nagios-users@lists.sourceforge.net],[nrpe],[http://www.nagios.org])
+ AC_CONFIG_SRCDIR([src/nrpe.c])
+-AC_CONFIG_HEADERS([include/config.h])
++AC_CONFIG_HEADERS([include/autoconf.h])
+ AC_CONFIG_FILES([Makefile
++ include/config.h
+ subst
+ src/Makefile
+diff -Nuar --exclude '*.orig' nrpe-2.15.orig/include/config.h.in nrpe-2.15/include/config.h.in
+--- nrpe-2.15.orig/include/config.h.in 2013-09-06 08:27:13.000000000 -0700
++++ nrpe-2.15/include/config.h.in 2014-04-19 09:33:07.620035056 -0700
+@@ -26,6 +26,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include "autoconf.h"
+
+
+ #define DEFAULT_SERVER_PORT @nrpe_port@ /* default port to use */
diff --git a/net-analyzer/nrpe/files/nrpe-2.15-metachar-security-fix.patch b/net-analyzer/nrpe/files/nrpe-2.15-metachar-security-fix.patch
new file mode 100644
index 000000000000..c42f8bfdec00
--- /dev/null
+++ b/net-analyzer/nrpe/files/nrpe-2.15-metachar-security-fix.patch
@@ -0,0 +1,26 @@
+Disallow all control characters in argument handling.
+
+This closes a security hole that allowed passing commands via the argument
+handling, if a newline was used to seperate the argument from the rest of the
+command.
+
+X-URL: http://www.exploit-db.com/exploits/32925/
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+
+--
+I didn't find any patches from upstream NRPE, so I wrote this quick one.
+If somebody else has a valid use for control characters in NRPE arguments, then
+this could be relaxed slightly.
+
+diff -Nuar --exclude '*.orig' nrpe-2.15.orig/src/nrpe.c nrpe-2.15/src/nrpe.c
+--- nrpe-2.15.orig/src/nrpe.c 2014-04-19 09:37:16.022373910 -0700
++++ nrpe-2.15/src/nrpe.c 2014-04-19 09:46:53.237458939 -0700
+@@ -53,7 +53,7 @@
+
+ #define DEFAULT_COMMAND_TIMEOUT 60 /* default timeout for execution of plugins */
+ #define MAXFD 64
+-#define NASTY_METACHARS "|`&><'\"\\[]{};"
++#define NASTY_METACHARS "|`&><'\"\\[]{};\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x7f"
+ #define howmany(x,y) (((x)+((y)-1))/(y))
+ #define MAX_LISTEN_SOCKS 16
+
diff --git a/net-analyzer/nrpe/files/nrpe-2.15-no-ssl.patch b/net-analyzer/nrpe/files/nrpe-2.15-no-ssl.patch
new file mode 100644
index 000000000000..3b3fc135455f
--- /dev/null
+++ b/net-analyzer/nrpe/files/nrpe-2.15-no-ssl.patch
@@ -0,0 +1,39 @@
+Without this patch, you can't build nrpe without SSL support. It was
+originally submitted on the Nagios forums by user Matthew L. Daniel:
+
+ https://support.nagios.com/forum/viewtopic.php?t=27027
+
+It was merged into the upstream github repo (NagiosEnterprises/nrpe)
+in commit 3736fdeeac11a.
+
+
+diff --git a/src/nrpe.c b/src/nrpe.c
+index 4bc849b..1e55ab4 100644
+--- a/src/nrpe.c
++++ b/src/nrpe.c
+@@ -102,7 +102,9 @@ int use_src=FALSE; /* Define parameter for SRC option */
+ int listen_queue_size=DEFAULT_LISTEN_QUEUE_SIZE;
+
+
++#ifdef HAVE_SSL
+ void complete_SSL_shutdown( SSL *);
++#endif
+
+
+ int main(int argc, char **argv){
+@@ -1815,6 +1817,7 @@ int remove_pid_file(void){
+ return OK;
+ }
+
++#ifdef HAVE_SSL
+ void complete_SSL_shutdown( SSL *ssl) {
+
+ /*
+@@ -1835,6 +1838,7 @@ void complete_SSL_shutdown( SSL *ssl) {
+ if( SSL_shutdown( ssl)) break;
+ }
+ }
++#endif/*HAVE_SSL*/
+
+ /* bail if daemon is running as root */
+ int check_privileges(void){
diff --git a/net-analyzer/nrpe/files/nrpe-2.15-tcpd-et-al.patch b/net-analyzer/nrpe/files/nrpe-2.15-tcpd-et-al.patch
new file mode 100644
index 000000000000..b8a0811b831c
--- /dev/null
+++ b/net-analyzer/nrpe/files/nrpe-2.15-tcpd-et-al.patch
@@ -0,0 +1,50 @@
+diff -Nuar --exclude '*.orig' nrpe-2.15.orig/configure.in nrpe-2.15/configure.in
+--- nrpe-2.15.orig/configure.in 2013-09-06 08:27:13.000000000 -0700
++++ nrpe-2.15/configure.in 2014-04-19 09:20:50.406150828 -0700
+@@ -45,7 +45,7 @@
+ AC_HEADER_STDC
+ AC_HEADER_TIME
+ AC_HEADER_SYS_WAIT
+-AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h getopt.h grp.h inttypes.h netdb.h pwd.h signal.h stdint.h strings.h string.h syslog.h tcpd.h unistd.h arpa/inet.h netinet/in.h socket.h sys/types.h sys/time.h sys/resource.h sys/wait.h sys/socket.h sys/stat.h)
++AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h getopt.h grp.h inttypes.h netdb.h pwd.h signal.h stdint.h strings.h string.h syslog.h unistd.h arpa/inet.h netinet/in.h socket.h sys/types.h sys/time.h sys/resource.h sys/wait.h sys/socket.h sys/stat.h)
+
+ dnl Checks for typedefs, structures, and compiler characteristics.
+ AC_C_CONST
+@@ -164,11 +164,20 @@
+ AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
+ AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
+ AC_SUBST(SOCKETLIBS)
+-AC_CHECK_LIB(wrap,main,[
+- LIBWRAPLIBS="$LIBWRAPLIBS -lwrap"
++
++AC_ARG_ENABLE([tcp-wrapper],
++ AS_HELP_STRING([--disable-tcp-wrapper], [Disable building with TCP wrappers. *** DISABLING IS A SECURITY RISK! *** Read the SECURITY file before using this option! @<:@default=enable@:>@]))
++
++LIBWRAPLIBS=""
++AS_IF([test "x$enable_tcp_wrapper" != "xno"], [
++ AC_CHECK_LIB([wrap],[hosts_access],[
++ LIBWRAPLIBS="$LIBWRAPLIBS -lwrap"
+ AC_DEFINE(HAVE_LIBWRAP,[1],[Have the TCP wrappers library])
+- ])
++ AC_DEFINE(HAVE_TCPD_H,[1],[Have the TCP wrappers library])
++ ])
++])
+ AC_SUBST(LIBWRAPLIBS)
++
+ AC_CHECK_FUNCS(strdup strstr strtoul initgroups closesocket)
+
+ dnl socklen_t check - from curl
+@@ -440,8 +449,11 @@
+ AC_SUBST(TARGET_PLATFORM)
+
+ AC_ARG_ENABLE([command-args],
+- AS_HELP_STRING([--enable-command-args],[allows clients to specify command arguments. *** THIS IS A SECURITY RISK! *** Read the SECURITY file before using this option!]),
+- AC_DEFINE_UNQUOTED(ENABLE_COMMAND_ARGUMENTS,[1],[Enable command-line arguments]))
++ AS_HELP_STRING([--enable-command-args],[allows clients to specify command arguments. *** THIS IS A SECURITY RISK! *** Read the SECURITY file before using this option!]))
++
++AS_IF([test "x$enable_command_args" = "xyes"], [
++ AC_DEFINE(ENABLE_COMMAND_ARGUMENTS,[1],[Enable command-line arguments])
++])
+
+ AC_ARG_ENABLE([bash-command-substitution],
+ AS_HELP_STRING([--enable-bash-command-substitution],[allows clients to pass bash command substitutions of the form $(command). *** THIS IS A HIGH SECURITY RISK! *** Read the SECURITY file before using this option!]),
diff --git a/net-analyzer/nrpe/files/nrpe-3.2.0.init b/net-analyzer/nrpe/files/nrpe-3.2.0.init
new file mode 100644
index 000000000000..acf8b549ee78
--- /dev/null
+++ b/net-analyzer/nrpe/files/nrpe-3.2.0.init
@@ -0,0 +1,16 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+: ${CFGFILE:=/etc/nagios/nrpe.cfg}
+
+extra_started_commands="reload"
+command="/usr/bin/${SVCNAME}"
+command_args="-c ${CFGFILE} --daemon"
+pidfile=/run/nrpe.pid
+
+reload() {
+ ebegin "Reloading ${SVCNAME}"
+ start-stop-daemon --exec $command --pidfile $pidfile --signal HUP
+ eend $?
+}
diff --git a/net-analyzer/nrpe/files/nrpe.init b/net-analyzer/nrpe/files/nrpe.init
new file mode 100644
index 000000000000..bb7e34ef22e7
--- /dev/null
+++ b/net-analyzer/nrpe/files/nrpe.init
@@ -0,0 +1,49 @@
+#!/sbin/openrc-run
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+: ${CFGFILE:=/etc/nagios/nrpe.cfg}
+
+get_config() {
+ [ -f ${CFGFILE} ] || return 1
+
+ sed -n -e 's:^[ \t]*'$1'=\([^#]\+\).*:\1:p' \
+ ${CFGFILE}
+}
+
+extra_started_commands="reload"
+
+command=/usr/libexec/${SVCNAME}
+command_args="-c ${CFGFILE} --daemon"
+pidfile=$(get_config pid_file)
+
+depend() {
+ config ${CFGFILE}
+}
+
+reload() {
+ ebegin "Reloading ${SVCNAME}"
+ kill -1 `cat ${pidfile}`
+ eend $?
+}
+
+start()
+{
+ mkdir -p $(dirname $pidfile)
+ local _background=
+ ebegin "Starting ${name:-$RC_SVCNAME}"
+ eval start-stop-daemon --start \
+ --exec $command \
+ ${procname:+--name} $procname \
+ ${pidfile:+--pidfile} $pidfile \
+ $_background $start_stop_daemon_args \
+ -- $command_args
+ if eend $? "Failed to start $RC_SVCNAME"; then
+ service_set_value "command" "${command}"
+ [ -n "${pidfile}" ] && service_set_value "pidfile" "${pidfile}"
+ [ -n "${procname}" ] && service_set_value "procname" "${procname}"
+ return 0
+ fi
+ return 1
+}
+
diff --git a/net-analyzer/nrpe/files/nrpe.service b/net-analyzer/nrpe/files/nrpe.service
new file mode 100644
index 000000000000..f6546d703cd4
--- /dev/null
+++ b/net-analyzer/nrpe/files/nrpe.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Daemon to answer plugin requests from Nagios on remote hosts
+After=network.target
+Requires=network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/libexec/nrpe -c /etc/nagios/nrpe.cfg -d
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/nrpe/files/nrpe.xinetd.2 b/net-analyzer/nrpe/files/nrpe.xinetd.2
new file mode 100644
index 000000000000..dd0331a88149
--- /dev/null
+++ b/net-analyzer/nrpe/files/nrpe.xinetd.2
@@ -0,0 +1,11 @@
+service nrpe {
+ socket_type = stream
+ protocol = tcp
+ wait = no
+ user = nagios
+ group = nagios
+ server = /usr/libexec/nrpe
+ server_args = -c /etc/nagios/nrpe.cfg --inetd
+# only_from = 127.0.0.1
+ disabled = yes
+}
diff --git a/net-analyzer/nrpe/metadata.xml b/net-analyzer/nrpe/metadata.xml
new file mode 100644
index 000000000000..e47fd6fd83c9
--- /dev/null
+++ b/net-analyzer/nrpe/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <longdescription>
+ A daemon for allowing Nagios to connect directly to servers and
+ execute commands defined in a centralized configuration file.
+ </longdescription>
+ <use>
+ <flag name="command-args">
+ Build support for specifying the command-line arguments from the
+ Nagios/Icinga master. Make sure you understand the implications
+ of this flag as it can be a security risk.
+ </flag>
+ <flag name="minimal">
+ Only build the check plugins for Nagios/Icinga, and not the daemon.
+ </flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">nagios</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-analyzer/nrpe/nrpe-2.15-r3.ebuild b/net-analyzer/nrpe/nrpe-2.15-r3.ebuild
new file mode 100644
index 000000000000..90481423d1fe
--- /dev/null
+++ b/net-analyzer/nrpe/nrpe-2.15-r3.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils systemd toolchain-funcs multilib user autotools
+
+DESCRIPTION="Nagios Remote Plugin Executor"
+HOMEPAGE="http://www.nagios.org/"
+SRC_URI="mirror://sourceforge/nagios/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ppc ppc64 sparc x86"
+IUSE="command-args minimal selinux ssl tcpd"
+
+DEPEND="ssl? ( dev-libs/openssl:0 )
+ !minimal? ( tcpd? ( sys-apps/tcp-wrappers ) )"
+RDEPEND="${DEPEND}
+ !minimal? (
+ || ( net-analyzer/nagios-plugins net-analyzer/monitoring-plugins )
+ )
+ selinux? ( sec-policy/selinux-nagios )"
+
+pkg_setup() {
+ enewgroup nagios
+ enewuser nagios -1 /bin/bash /dev/null nagios
+
+ elog "If you plan to use \"nrpe_check_control\" then you may want to specify"
+ elog "different command and services files. You can override the defaults"
+ elog "through the \"NAGIOS_COMMAND_FILE\" and \"NAGIOS_SERVICES_FILE\" environment variables."
+ elog "NAGIOS_COMMAND_FILE=${NAGIOS_COMMAND_FILE:-/var/rw/nagios.cmd}"
+ elog "NAGIOS_SERVICES_FILE=${NAGIOS_SERVICES_FILE:-/etc/services.cfg}"
+}
+
+src_prepare() {
+ # Add support for large output,
+ # http://opsview-blog.opsera.com/dotorg/2008/08/enhancing-nrpe.html
+ epatch "${FILESDIR}"/${PN}-2.14-multiline.patch
+
+ # fix configure, among others #326367, #397603
+ epatch "${FILESDIR}"/${PN}-2.15-tcpd-et-al.patch
+
+ # otherwise autoconf will overwrite the custom include/config.h.in
+ epatch "${FILESDIR}"/${PN}-2.15-autoconf-header.patch
+
+ # improve handling of metachars for security
+ epatch "${FILESDIR}"/${PN}-2.15-metachar-security-fix.patch
+
+ # Fix build with USE="-ssl".
+ epatch "${FILESDIR}"/${PN}-2.15-no-ssl.patch
+
+ sed -i -e '/define \(COMMAND\|SERVICES\)_FILE/d' \
+ contrib/nrpe_check_control.c || die
+
+ # change the default location of the pid file
+ sed -i -e '/pid_file/s:/var/run:/run:' sample-config/nrpe.cfg.in || die
+
+ # fix TFU handling of autoheader
+ sed -i -e '/#undef/d' include/config.h.in || die
+
+ eautoreconf
+}
+
+src_configure() {
+ local myconf
+ if use minimal; then
+ myconf="--disable-tcp-wrapper --disable-command-args"
+ else
+ myconf="$(use_enable tcpd tcp-wrapper) $(use_enable command-args)"
+ fi
+
+ econf \
+ --libexecdir=/usr/$(get_libdir)/nagios/plugins \
+ --localstatedir=/var/nagios \
+ --sysconfdir=/etc/nagios \
+ --with-nrpe-user=nagios \
+ --with-nrpe-group=nagios \
+ $(use_enable ssl) \
+ ${myconf}
+}
+
+src_compile() {
+ emake -C src check_nrpe $(use minimal || echo nrpe)
+
+ # Add nifty nrpe check tool
+ $(tc-getCC) ${CPPFLAGS} ${CFLAGS} \
+ -DCOMMAND_FILE=\"${NAGIOS_COMMAND_FILE:-/var/rw/nagios.cmd}\" \
+ -DSERVICES_FILE=\"${NAGIOS_SERVICES_FILE:-/etc/services.cfg}\" \
+ ${LDFLAGS} -o nrpe_check_control contrib/nrpe_check_control.c || die
+}
+
+src_install() {
+ dodoc LEGAL Changelog README SECURITY \
+ contrib/README.nrpe_check_control \
+ $(use ssl && echo README.SSL)
+
+ exeinto /usr/$(get_libdir)/nagios/plugins
+ doexe src/check_nrpe nrpe_check_control
+
+ use minimal && return 0
+
+ ## NON-MINIMAL INSTALL FOLLOWS ##
+
+ insinto /etc/nagios
+ newins sample-config/nrpe.cfg nrpe.cfg
+ fowners root:nagios /etc/nagios/nrpe.cfg
+ fperms 0640 /etc/nagios/nrpe.cfg
+
+ exeinto /usr/libexec
+ doexe src/nrpe
+
+ newinitd "${FILESDIR}"/nrpe.init nrpe
+ systemd_dounit "${FILESDIR}/${PN}.service"
+
+ insinto /etc/xinetd.d/
+ newins "${FILESDIR}/nrpe.xinetd.2" nrpe
+
+ if use tcpd; then
+ sed -i -e '/^reload()/, /^}/ d' -e '/extra_started_commands/s:reload::' \
+ "${D}"/etc/init.d/nrpe
+ fi
+}
+
+pkg_postinst() {
+ elog "If you are using the nrpe daemon, remember to edit"
+ elog "the config file /etc/nagios/nrpe.cfg"
+
+ if use command-args ; then
+ ewarn ""
+ ewarn "You have enabled command-args for NRPE. This enables"
+ ewarn "the ability for clients to supply arguments to commands"
+ ewarn "which should be run. "
+ ewarn "THIS IS CONSIDERED A SECURITY RISK!"
+ ewarn "Please read /usr/share/doc/${PF}/SECURITY.bz2 for more info"
+ fi
+}
diff --git a/net-analyzer/nrpe/nrpe-3.2.1.ebuild b/net-analyzer/nrpe/nrpe-3.2.1.ebuild
new file mode 100644
index 000000000000..fabe5f984cae
--- /dev/null
+++ b/net-analyzer/nrpe/nrpe-3.2.1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit systemd user
+
+DESCRIPTION="Nagios Remote Plugin Executor"
+HOMEPAGE="https://github.com/NagiosEnterprises/nrpe"
+SRC_URI="${HOMEPAGE}/releases/download/${P}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
+IUSE="command-args selinux ssl"
+
+DEPEND="sys-apps/tcp-wrappers
+ ssl? ( dev-libs/openssl:0 )"
+RDEPEND="${DEPEND}
+ || ( net-analyzer/nagios-plugins net-analyzer/monitoring-plugins )
+ selinux? ( sec-policy/selinux-nagios )"
+
+pkg_setup() {
+ enewgroup nagios
+ enewuser nagios -1 /bin/bash /var/nagios/home nagios
+}
+
+src_configure() {
+ econf \
+ --libexecdir=/usr/$(get_libdir)/nagios/plugins \
+ --localstatedir=/var/nagios \
+ --sysconfdir=/etc/nagios \
+ --with-nrpe-user=nagios \
+ --with-nrpe-group=nagios \
+ --with-piddir=/run \
+ $(use_enable command-args) \
+ $(use_enable ssl)
+}
+
+src_compile() {
+ emake all
+}
+
+src_install() {
+ default
+
+ dodoc CHANGELOG.md SECURITY.md
+ insinto /etc/nagios
+ newins sample-config/nrpe.cfg nrpe.cfg
+ fowners root:nagios /etc/nagios/nrpe.cfg
+ fperms 0640 /etc/nagios/nrpe.cfg
+
+ newinitd "startup/openrc-init" nrpe
+ newconfd "startup/openrc-conf" nrpe
+ systemd_newunit "startup/default-service" "${PN}.service"
+
+ insinto /etc/xinetd.d/
+ newins "${FILESDIR}/nrpe.xinetd.2" nrpe
+
+ rm "${D}/usr/bin/nrpe-uninstall" || die 'failed to remove uninstall tool'
+}
+
+pkg_postinst(){
+ elog 'Some users have reported incompatibilities between nrpe-2.x and'
+ elog 'nrpe-3.x. We recommend that you use the same major version for'
+ elog 'both your server and clients.'
+
+ if use command-args ; then
+ ewarn ''
+ ewarn 'You have enabled command-args for NRPE. That lets clients'
+ ewarn 'supply arguments to the commands that are run, and IS A'
+ ewarn 'SECURITY RISK!'
+ ewarn''
+ fi
+}