From: <est...@us...> - 2011-11-10 23:51:56
|
Revision: 1829 http://nagios.svn.sourceforge.net/nagios/?rev=1829&view=rev Author: estanley375 Date: 2011-11-10 23:51:50 +0000 (Thu, 10 Nov 2011) Log Message: ----------- Added patch to allow packets arriving with future time stamp (Daniel Wittenberg) Modified Paths: -------------- nsca/trunk/Changelog nsca/trunk/src/nsca.c Modified: nsca/trunk/Changelog =================================================================== --- nsca/trunk/Changelog 2011-11-05 15:10:16 UTC (rev 1828) +++ nsca/trunk/Changelog 2011-11-10 23:51:50 UTC (rev 1829) @@ -2,6 +2,11 @@ NSCA Changelog ************** +?.? - ??/??/???? +---------------- +- Applied patch to allow packets arriving with a future time stamp (Daniel Wittenberg) + + 2.9 - 11/04/2011 ---------------- - Add config directive to submit directly to checkresults directory (Mike Lindsey) Modified: nsca/trunk/src/nsca.c =================================================================== --- nsca/trunk/src/nsca.c 2011-11-05 15:10:16 UTC (rev 1828) +++ nsca/trunk/src/nsca.c 2011-11-10 23:51:50 UTC (rev 1829) @@ -1146,40 +1146,29 @@ do_exit(STATE_OK); } - /* check the timestamp in the packet */ - packet_time=(time_t)ntohl(receive_packet.timestamp); - time(¤t_time); - if(packet_time>current_time){ - syslog(LOG_ERR,"Dropping packet with future timestamp."); - /*return;*/ + /* host name */ + strncpy(host_name,receive_packet.host_name,sizeof(host_name)-1); + host_name[sizeof(host_name)-1]='\0'; + + packet_age=(unsigned long)(current_time-packet_time); + if(debug==TRUE) + syslog(LOG_ERR,"Time difference in packet: %lu seconds for host %s", packet_age, host_name); + if((max_packet_age>0 && (packet_age>max_packet_age) && (packet_age>=0)) || + ((max_packet_age>0) && (packet_age<(0-max_packet_age)) && (packet_age < 0)) + ){ + syslog(LOG_ERR,"Dropping packet with stale timestamp for %s - packet was %lu seconds old.",host_name,packet_age); close(sock); if(mode==SINGLE_PROCESS_DAEMON) return; else do_exit(STATE_OK); - } - else{ - packet_age=(unsigned long)(current_time-packet_time); - if(max_packet_age>0 && (packet_age>max_packet_age)){ - syslog(LOG_ERR,"Dropping packet with stale timestamp - packet was %lu seconds old.",packet_age); - /*return;*/ - close(sock); - if(mode==SINGLE_PROCESS_DAEMON) - return; - else - do_exit(STATE_OK); - } - } + } /**** GET THE SERVICE CHECK INFORMATION ****/ /* plugin return code */ return_code=ntohs(receive_packet.return_code); - /* host name */ - strncpy(host_name,receive_packet.host_name,sizeof(host_name)-1); - host_name[sizeof(host_name)-1]='\0'; - /* service description */ strncpy(svc_description,receive_packet.svc_description,sizeof(svc_description)-1); svc_description[sizeof(svc_description)-1]='\0'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |