megacoffee.net Gentoo overlay - legacy mirror
We have moved to Git. This repository is only provided for compatibility with old installations. Learn how to migrate your installation here.
annotate net-analyzer/nrpe/files/nrpe-2.14-multiline.patch @ 54:90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
author | Daniel Neugebauer <dneuge@energiequant.de> |
---|---|
date | Mon, 17 Mar 2014 16:09:30 +0100 |
parents | |
children |
rev | line source |
---|---|
54
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
1 Add support for large output |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
2 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
3 http://opsview-blog.opsera.com/dotorg/2008/08/enhancing-nrpe.htmlIndex: nrpe-2.14/include/common.h |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
4 =================================================================== |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
5 Index: nrpe-2.14/include/common.h |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
6 =================================================================== |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
7 --- nrpe-2.14.orig/include/common.h |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
8 +++ nrpe-2.14/include/common.h |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
9 @@ -41,7 +41,7 @@ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
10 #define DEFAULT_SOCKET_TIMEOUT 10 /* timeout after 10 seconds */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
11 #define DEFAULT_CONNECTION_TIMEOUT 300 /* timeout if daemon is waiting for connection more than this time */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
12 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
13 -#define MAX_INPUT_BUFFER 2048 /* max size of most buffers we use */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
14 +#define MAX_INPUT_BUFFER 16384 /* max size of most buffers we use */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
15 #define MAX_FILENAME_LENGTH 256 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
16 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
17 #define MAX_HOST_ADDRESS_LENGTH 256 /* max size of a host address */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
18 @@ -55,12 +55,14 @@ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
19 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
20 #define QUERY_PACKET 1 /* id code for a packet containing a query */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
21 #define RESPONSE_PACKET 2 /* id code for a packet containing a response */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
22 +#define RESPONSE_PACKET_WITH_MORE 3 /* id code for a packet containing a response, with more data to follow */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
23 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
24 #define NRPE_PACKET_VERSION_3 3 /* packet version identifier */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
25 #define NRPE_PACKET_VERSION_2 2 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
26 #define NRPE_PACKET_VERSION_1 1 /* older packet version identifiers (no longer supported) */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
27 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
28 #define MAX_PACKETBUFFER_LENGTH 1024 /* max amount of data we'll send in one query/response */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
29 + /* WARNING - do not change this as older clients/servers will not work */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
30 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
31 typedef struct packet_struct{ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
32 int16_t packet_version; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
33 Index: nrpe-2.14/src/check_nrpe.c |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
34 =================================================================== |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
35 --- nrpe-2.14.orig/src/check_nrpe.c |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
36 +++ nrpe-2.14/src/check_nrpe.c |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
37 @@ -221,6 +221,11 @@ int main(int argc, char **argv){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
38 return STATE_UNKNOWN; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
39 } |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
40 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
41 + /* Altinity patch: Allow multiple packets to be received */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
42 + /* Indentation not corrected to allow simpler patching */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
43 + /* START MULTI_PACKET LOOP */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
44 + do { |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
45 + |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
46 /* wait for the response packet */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
47 bytes_to_recv=sizeof(receive_packet); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
48 if(use_ssl==FALSE) |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
49 @@ -233,31 +238,24 @@ int main(int argc, char **argv){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
50 /* reset timeout */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
51 alarm(0); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
52 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
53 - /* close the connection */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
54 -#ifdef HAVE_SSL |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
55 - if(use_ssl==TRUE){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
56 - SSL_shutdown(ssl); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
57 - SSL_free(ssl); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
58 - SSL_CTX_free(ctx); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
59 - } |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
60 -#endif |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
61 - graceful_close(sd,1000); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
62 - |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
63 /* recv() error */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
64 if(rc<0){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
65 printf("CHECK_NRPE: Error receiving data from daemon.\n"); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
66 + graceful_close(sd,1000); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
67 return STATE_UNKNOWN; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
68 } |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
69 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
70 /* server disconnected */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
71 else if(rc==0){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
72 printf("CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.\n"); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
73 + graceful_close(sd,1000); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
74 return STATE_UNKNOWN; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
75 } |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
76 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
77 /* receive underflow */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
78 else if(bytes_to_recv<sizeof(receive_packet)){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
79 printf("CHECK_NRPE: Receive underflow - only %d bytes received (%d expected).\n",bytes_to_recv,sizeof(receive_packet)); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
80 + graceful_close(sd,1000); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
81 return STATE_UNKNOWN; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
82 } |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
83 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
84 @@ -271,21 +269,21 @@ int main(int argc, char **argv){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
85 calculated_crc32=calculate_crc32((char *)&receive_packet,sizeof(receive_packet)); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
86 if(packet_crc32!=calculated_crc32){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
87 printf("CHECK_NRPE: Response packet had invalid CRC32.\n"); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
88 - close(sd); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
89 + graceful_close(sd,1000); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
90 return STATE_UNKNOWN; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
91 } |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
92 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
93 /* check packet version */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
94 if(ntohs(receive_packet.packet_version)!=NRPE_PACKET_VERSION_2){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
95 printf("CHECK_NRPE: Invalid packet version received from server.\n"); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
96 - close(sd); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
97 + graceful_close(sd,1000); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
98 return STATE_UNKNOWN; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
99 } |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
100 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
101 /* check packet type */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
102 - if(ntohs(receive_packet.packet_type)!=RESPONSE_PACKET){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
103 + if(ntohs(receive_packet.packet_type)!=RESPONSE_PACKET && ntohs(receive_packet.packet_type)!=RESPONSE_PACKET_WITH_MORE){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
104 printf("CHECK_NRPE: Invalid packet type received from server.\n"); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
105 - close(sd); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
106 + graceful_close(sd,1000); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
107 return STATE_UNKNOWN; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
108 } |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
109 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
110 @@ -297,8 +295,18 @@ int main(int argc, char **argv){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
111 if(!strcmp(receive_packet.buffer,"")) |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
112 printf("CHECK_NRPE: No output returned from daemon.\n"); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
113 else |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
114 - printf("%s\n",receive_packet.buffer); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
115 - } |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
116 + printf("%s",receive_packet.buffer); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
117 + |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
118 + } while (ntohs(receive_packet.packet_type)==RESPONSE_PACKET_WITH_MORE); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
119 + /* END MULTI_PACKET LOOP */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
120 + |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
121 + /* Finish output with newline */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
122 + printf("\n"); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
123 + |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
124 + /* close the connection */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
125 + graceful_close(sd,1000); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
126 + |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
127 + } |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
128 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
129 /* reset the alarm */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
130 else |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
131 @@ -434,6 +442,14 @@ int graceful_close(int sd, int timeout){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
132 struct timeval tv; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
133 char buf[1000]; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
134 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
135 +#ifdef HAVE_SSL |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
136 + if(use_ssl==TRUE){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
137 + SSL_shutdown(ssl); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
138 + SSL_free(ssl); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
139 + SSL_CTX_free(ctx); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
140 + } |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
141 +#endif |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
142 + |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
143 /* send FIN packet */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
144 shutdown(sd,SHUT_WR); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
145 for(;;){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
146 Index: nrpe-2.14/src/nrpe.c |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
147 =================================================================== |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
148 --- nrpe-2.14.orig/src/nrpe.c |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
149 +++ nrpe-2.14/src/nrpe.c |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
150 @@ -1056,6 +1056,8 @@ void handle_connection(int sock){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
151 char processed_command[MAX_INPUT_BUFFER]; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
152 int result=STATE_OK; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
153 int early_timeout=FALSE; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
154 + int bytes_copied=0; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
155 + char *pbuffer=&buffer[0]; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
156 int rc; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
157 int x; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
158 #ifdef DEBUG |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
159 @@ -1272,6 +1274,14 @@ void handle_connection(int sock){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
160 if(buffer[strlen(buffer)-1]=='\n') |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
161 buffer[strlen(buffer)-1]='\x0'; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
162 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
163 + /* Altinity patch to allow multi packet responses */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
164 + /* Loop not indented to allow easier patching */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
165 + /* START MULTI_PACKET LOOP */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
166 + do { |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
167 + |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
168 + if(debug==TRUE) |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
169 + syslog(LOG_DEBUG,"Sending response - bytes left: %d", strlen(pbuffer)); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
170 + |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
171 /* clear the response packet buffer */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
172 bzero(&send_packet,sizeof(send_packet)); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
173 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
174 @@ -1280,11 +1290,17 @@ void handle_connection(int sock){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
175 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
176 /* initialize response packet data */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
177 send_packet.packet_version=(int16_t)htons(NRPE_PACKET_VERSION_2); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
178 - send_packet.packet_type=(int16_t)htons(RESPONSE_PACKET); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
179 send_packet.result_code=(int16_t)htons(result); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
180 - strncpy(&send_packet.buffer[0],buffer,MAX_PACKETBUFFER_LENGTH); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
181 + strncpy(&send_packet.buffer[0],pbuffer,MAX_PACKETBUFFER_LENGTH); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
182 send_packet.buffer[MAX_PACKETBUFFER_LENGTH-1]='\x0'; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
183 - |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
184 + |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
185 + bytes_copied = strlen(&send_packet.buffer[0]); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
186 + pbuffer = pbuffer+bytes_copied; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
187 + if(strlen(pbuffer)>0) |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
188 + send_packet.packet_type=(int16_t)htons(RESPONSE_PACKET_WITH_MORE); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
189 + else |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
190 + send_packet.packet_type=(int16_t)htons(RESPONSE_PACKET); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
191 + |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
192 /* calculate the crc 32 value of the packet */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
193 send_packet.crc32_value=(u_int32_t)0L; |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
194 calculated_crc32=calculate_crc32((char *)&send_packet,sizeof(send_packet)); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
195 @@ -1303,6 +1319,9 @@ void handle_connection(int sock){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
196 SSL_write(ssl,&send_packet,bytes_to_send); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
197 #endif |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
198 |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
199 + } while (strlen(pbuffer) > 0); |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
200 + /* END MULTI_PACKET LOOP */ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
201 + |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
202 #ifdef HAVE_SSL |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
203 if(ssl){ |
90a7a9dbfafb
importing net-analyzer/nrpe-2.14 from official portage tree
Daniel Neugebauer <dneuge@energiequant.de>
parents:
diff
changeset
|
204 complete_SSL_shutdown( ssl); |