4
0
Эх сурвалжийг харах

Make client socket non-blocking & close on exec.

Also log which version packet we've received.
Doug Nazar 1 жил өмнө
parent
commit
bf4afc8bc6
1 өөрчлөгдсөн 7 нэмэгдсэн , 0 устгасан
  1. 7 0
      src/nrpe.c

+ 7 - 0
src/nrpe.c

@@ -1372,6 +1372,9 @@ void wait_for_connections(void)
 				break;			/* else handle the error later */
 			}
 
+			/* ensure socket is non-blocking & close on exec */
+			fcntl(new_sd, F_SETFD, fcntl(new_sd, F_GETFD) | FD_CLOEXEC);
+			fcntl(new_sd, F_SETFL, fcntl(new_sd, F_GETFL) | O_NONBLOCK);
 
 			rc = wait_conn_fork(new_sd);
 			if (rc == TRUE)
@@ -2056,6 +2059,8 @@ int read_packet(int sock, void *ssl_ptr, v2_packet * v2_pkt, v3_packet ** v3_pkt
 			logit(LOG_ERR, "Error: (use_ssl == false): Request packet version was invalid!");
 			return -1;
 		}
+		if (debug)
+			logit(LOG_DEBUG, "Received v%i packet", packet_ver);
 
 		if (packet_ver == NRPE_PACKET_VERSION_2) {
 			buffer_size = sizeof(v2_packet) - common_size;
@@ -2120,6 +2125,8 @@ int read_packet(int sock, void *ssl_ptr, v2_packet * v2_pkt, v3_packet ** v3_pkt
 			logit(LOG_ERR, "Error: (use_ssl == true): Request packet version was invalid!");
 			return -1;
 		}
+		if (debug)
+			logit(LOG_DEBUG, "Received v%i packet", packet_ver);
 
 		if (packet_ver == NRPE_PACKET_VERSION_2) {
 			buffer_size = sizeof(v2_packet) - common_size;