[Nagiosplug-checkins] CVS: nagiosplug/plugins check_nwstat.c,1.13,1.14 netutils.c,1.16,1.17 netutils.h,1.8,1.9

Karl DeBisschop kdebisschop at users.sourceforge.net
Sat Feb 28 20:21:47 CET 2004


Update of /cvsroot/nagiosplug/nagiosplug/plugins
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9187/plugins

Modified Files:
	check_nwstat.c netutils.c netutils.h 
Log Message:
was making up to 34 separate tcp connections - now we open one and reuse

Index: check_nwstat.c
===================================================================
RCS file: /cvsroot/nagiosplug/nagiosplug/plugins/check_nwstat.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -r1.13 -r1.14
*** check_nwstat.c	22 Aug 2003 06:22:38 -0000	1.13
--- check_nwstat.c	29 Feb 2004 04:09:34 -0000	1.14
***************
*** 87,90 ****
--- 87,91 ----
  main(int argc, char **argv) {
  	int result;
+ 	int sd;
  	char *send_buffer=NULL;
  	char recv_buffer[MAX_INPUT_BUFFER];
***************
*** 130,138 ****
  	/* set socket timeout */
  	alarm(socket_timeout);
! 	
  	/* get OS version string */
  	if (check_netware_version==TRUE) {
  		send_buffer = strdup ("S19\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 131,142 ----
  	/* set socket timeout */
  	alarm(socket_timeout);
! 
! 	/* open connection */
! 	my_tcp_connect (server_address, server_port, &sd);
! 
  	/* get OS version string */
  	if (check_netware_version==TRUE) {
  		send_buffer = strdup ("S19\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 163,172 ****
  
  		asprintf (&send_buffer,"UTIL%s\r\n",temp_buffer);
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
  		utilization=strtoul(recv_buffer,NULL,10);
  		send_buffer = strdup ("UPTIME\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 167,176 ----
  
  		asprintf (&send_buffer,"UTIL%s\r\n",temp_buffer);
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
  		utilization=strtoul(recv_buffer,NULL,10);
  		send_buffer = strdup ("UPTIME\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 190,194 ****
  
  		send_buffer = strdup ("CONNECT\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 194,198 ----
  
  		send_buffer = strdup ("CONNECT\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 209,213 ****
  
  		send_buffer = strdup ("S1\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 213,217 ----
  
  		send_buffer = strdup ("S1\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 228,232 ****
  
  		send_buffer = strdup ("S2\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 232,236 ----
  
  		send_buffer = strdup ("S2\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 247,251 ****
  
  		send_buffer = strdup ("S3\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 251,255 ----
  
  		send_buffer = strdup ("S3\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 266,270 ****
  
  		send_buffer = strdup ("S5\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 270,274 ----
  
  		send_buffer = strdup ("S5\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 286,290 ****
  
  		asprintf (&send_buffer,"VKF%s\r\n",volume_name);
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 290,294 ----
  
  		asprintf (&send_buffer,"VKF%s\r\n",volume_name);
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 310,314 ****
  
  		asprintf (&send_buffer,"VKF%s\r\n",volume_name);
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 314,318 ----
  
  		asprintf (&send_buffer,"VKF%s\r\n",volume_name);
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 324,328 ****
  
  			asprintf (&send_buffer,"VKS%s\r\n",volume_name);
! 			result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  			if (result!=STATE_OK)
  				return result;
--- 328,332 ----
  
  			asprintf (&send_buffer,"VKS%s\r\n",volume_name);
! 			result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  			if (result!=STATE_OK)
  				return result;
***************
*** 343,347 ****
  
  		send_buffer = strdup ("S11\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 347,351 ----
  
  		send_buffer = strdup ("S11\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 352,356 ****
   
  		send_buffer = strdup ("S13\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		temp_buffer=strtok(recv_buffer,"\r\n");
   
--- 356,360 ----
   
  		send_buffer = strdup ("S13\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		temp_buffer=strtok(recv_buffer,"\r\n");
   
***************
*** 361,365 ****
  
  		send_buffer = strdup ("S12\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 365,369 ----
  
  		send_buffer = strdup ("S12\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 375,379 ****
   
  		asprintf (&send_buffer,"S15\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 379,383 ----
   
  		asprintf (&send_buffer,"S15\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 382,386 ****
  
  		asprintf (&send_buffer,"S16\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 386,390 ----
  
  		asprintf (&send_buffer,"S16\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 411,415 ****
  		else
  			asprintf (&send_buffer,"S9.%d\r\n",sap_number);
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 415,419 ----
  		else
  			asprintf (&send_buffer,"S9.%d\r\n",sap_number);
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 431,435 ****
  
  		asprintf (&send_buffer,"VKP%s\r\n",volume_name);
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 435,439 ----
  
  		asprintf (&send_buffer,"VKP%s\r\n",volume_name);
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 451,455 ****
  
  		asprintf (&send_buffer,"VKP%s\r\n",volume_name);
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 455,459 ----
  
  		asprintf (&send_buffer,"VKP%s\r\n",volume_name);
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 465,469 ****
  
  			asprintf (&send_buffer,"VKS%s\r\n",volume_name);
! 			result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  			if (result!=STATE_OK)
  				return result;
--- 469,473 ----
  
  			asprintf (&send_buffer,"VKS%s\r\n",volume_name);
! 			result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  			if (result!=STATE_OK)
  				return result;
***************
*** 484,488 ****
  
  		asprintf (&send_buffer,"VKNP%s\r\n",volume_name);
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 488,492 ----
  
  		asprintf (&send_buffer,"VKNP%s\r\n",volume_name);
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 504,508 ****
  
  		asprintf (&send_buffer,"VKNP%s\r\n",volume_name);
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 508,512 ----
  
  		asprintf (&send_buffer,"VKNP%s\r\n",volume_name);
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 518,522 ****
  
  			asprintf (&send_buffer,"VKS%s\r\n",volume_name);
! 			result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  			if (result!=STATE_OK)
  				return result;
--- 522,526 ----
  
  			asprintf (&send_buffer,"VKS%s\r\n",volume_name);
! 			result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  			if (result!=STATE_OK)
  				return result;
***************
*** 537,541 ****
  
  		asprintf (&send_buffer,"S18\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 541,545 ----
  
  		asprintf (&send_buffer,"S18\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 554,558 ****
  
  		asprintf (&send_buffer,"S17\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 558,562 ----
  
  		asprintf (&send_buffer,"S17\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 571,575 ****
  
  		asprintf (&send_buffer,"S20\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 575,579 ----
  
  		asprintf (&send_buffer,"S20\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 578,582 ****
   
  		asprintf (&send_buffer,"S21\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 582,586 ----
   
  		asprintf (&send_buffer,"S21\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 598,602 ****
  
  		asprintf (&send_buffer,"S22\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 602,606 ----
  
  		asprintf (&send_buffer,"S22\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 616,620 ****
  
  		send_buffer = strdup ("S4\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 620,624 ----
  
  		send_buffer = strdup ("S4\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 632,636 ****
  
  		send_buffer = strdup ("S6\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 636,640 ----
  
  		send_buffer = strdup ("S6\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 647,651 ****
  
  		send_buffer = strdup ("S7\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 651,655 ----
  
  		send_buffer = strdup ("S7\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 660,664 ****
  	} else if (vars_to_check==DSVER) {
  		asprintf (&send_buffer,"S13\r\n");
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 664,668 ----
  	} else if (vars_to_check==DSVER) {
  		asprintf (&send_buffer,"S13\r\n");
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 669,673 ****
  
  	} else if (vars_to_check==UPTIME) {
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  	 		return result;
--- 673,677 ----
  
  	} else if (vars_to_check==UPTIME) {
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  	 		return result;
***************
*** 679,683 ****
  	} else if (vars_to_check==NLM) {
  		asprintf (&send_buffer,"S24:%s\r\n",nlm_name);
! 		result=process_tcp_request(server_address,server_port,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
--- 683,687 ----
  	} else if (vars_to_check==NLM) {
  		asprintf (&send_buffer,"S24:%s\r\n",nlm_name);
! 		result=send_tcp_request(sd,send_buffer,recv_buffer,sizeof(recv_buffer));
  		if (result!=STATE_OK)
  			return result;
***************
*** 698,701 ****
--- 702,707 ----
  	}
  
+ 	close (sd);
+ 
  	/* reset timeout */
  	alarm(0);

Index: netutils.c
===================================================================
RCS file: /cvsroot/nagiosplug/nagiosplug/plugins/netutils.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -r1.16 -r1.17
*** netutils.c	20 Feb 2004 05:22:05 -0000	1.16
--- netutils.c	29 Feb 2004 04:09:34 -0000	1.17
***************
*** 169,177 ****
  {
  	int result;
- 	int send_result;
- 	int recv_result;
  	int sd;
- 	struct timeval tv;
- 	fd_set readfds;
  
  	result = STATE_OK;
--- 169,173 ----
***************
*** 181,219 ****
  		return STATE_CRITICAL;
  
! 	send_result = send (sd, send_buffer, strlen (send_buffer), 0);
! 	if (send_result<0 || (size_t)send_result!=strlen(send_buffer)) {
! 		printf ("send() failed\n");
! 		result = STATE_WARNING;
! 	}
! 
! 	/* wait up to the number of seconds for socket timeout minus one 
! 	   for data from the host */
! 	tv.tv_sec = socket_timeout - 1;
! 	tv.tv_usec = 0;
! 	FD_ZERO (&readfds);
! 	FD_SET (sd, &readfds);
! 	select (sd + 1, &readfds, NULL, NULL, &tv);
! 
! 	/* make sure some data has arrived */
! 	if (!FD_ISSET (sd, &readfds)) {
! 		strcpy (recv_buffer, "");
! 		printf ("No data was received from host!\n");
! 		result = STATE_WARNING;
! 	}
! 
! 	else {
! 		recv_result = recv (sd, recv_buffer, (size_t)recv_size - 1, 0);
! 		if (recv_result == -1) {
! 			strcpy (recv_buffer, "");
! 			if (proto != IPPROTO_TCP)
! 				printf ("recv() failed\n");
! 			result = STATE_WARNING;
! 		}
! 		else
! 			recv_buffer[recv_result] = 0;
! 
! 		/* die returned string */
! 		recv_buffer[recv_size - 1] = 0;
! 	}
  
  	close (sd);
--- 177,181 ----
  		return STATE_CRITICAL;
  
! 	result = send_request (sd, proto, send_buffer, recv_buffer, recv_size);
  
  	close (sd);
***************
*** 316,319 ****
--- 278,344 ----
  }
  
+ 
+ int
+ send_tcp_request (int sd, const char *send_buffer, char *recv_buffer, int recv_size)
+ {
+ 	return send_request (sd, IPPROTO_TCP, send_buffer, recv_buffer, recv_size);
+ }
+ 
+ 
+ int
+ send_udp_request (int sd, const char *send_buffer, char *recv_buffer, int recv_size)
+ {
+ 	return send_request (sd, IPPROTO_UDP, send_buffer, recv_buffer, recv_size);
+ }
+ 
+ 
+ int
+ send_request (int sd, int proto, const char *send_buffer, char *recv_buffer, int recv_size)
+ {
+ 	int result;
+ 	int send_result;
+ 	int recv_result;
+ 	struct timeval tv;
+ 	fd_set readfds;
+ 
+ 	send_result = send (sd, send_buffer, strlen (send_buffer), 0);
+ 	if (send_result<0 || (size_t)send_result!=strlen(send_buffer)) {
+ 		printf ("send() failed\n");
+ 		result = STATE_WARNING;
+ 	}
+ 
+ 	/* wait up to the number of seconds for socket timeout minus one 
+ 	   for data from the host */
+ 	tv.tv_sec = socket_timeout - 1;
+ 	tv.tv_usec = 0;
+ 	FD_ZERO (&readfds);
+ 	FD_SET (sd, &readfds);
+ 	select (sd + 1, &readfds, NULL, NULL, &tv);
+ 
+ 	/* make sure some data has arrived */
+ 	if (!FD_ISSET (sd, &readfds)) {
+ 		strcpy (recv_buffer, "");
+ 		printf ("No data was received from host!\n");
+ 		result = STATE_WARNING;
+ 	}
+ 
+ 	else {
+ 		recv_result = recv (sd, recv_buffer, (size_t)recv_size - 1, 0);
+ 		if (recv_result == -1) {
+ 			strcpy (recv_buffer, "");
+ 			if (proto != IPPROTO_TCP)
+ 				printf ("recv() failed\n");
+ 			result = STATE_WARNING;
+ 		}
+ 		else
+ 			recv_buffer[recv_result] = 0;
+ 
+ 		/* die returned string */
+ 		recv_buffer[recv_size - 1] = 0;
+ 	}
+ 	return result;
+ }
+ 
+ 
  int
  is_host (const char *address)

Index: netutils.h
===================================================================
RCS file: /cvsroot/nagiosplug/nagiosplug/plugins/netutils.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** netutils.h	5 Dec 2003 16:42:38 -0000	1.8
--- netutils.h	29 Feb 2004 04:09:34 -0000	1.9
***************
*** 49,52 ****
--- 49,56 ----
  int my_udp_connect (const char *address, int port, int *sd);
  
+ int send_tcp_request (int sd, const char *send_buffer, char *recv_buffer, int recv_size);
+ int send_udp_request (int sd, const char *send_buffer, char *recv_buffer, int recv_size);
+ int send_request (int sd, int proto, const char *send_buffer, char *recv_buffer, int recv_size);
+ 
  int is_host (const char *);
  int is_addr (const char *);





More information about the Commits mailing list