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.15-multiline.patch @ 220:5fc6acd937e1

dev-vcs/kallithea: version bump to 0.3.6 (security update), masking <0.3.6
author Daniel Neugebauer <dneuge@energiequant.de>
date Sat, 29 Dec 2018 16:31:18 +0100
parents c6adeffb54f5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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);