]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
ntp: count packets with invalid format
authorMiroslav Lichvar <mlichvar@redhat.com>
Mon, 19 Aug 2019 11:55:12 +0000 (13:55 +0200)
committerMiroslav Lichvar <mlichvar@redhat.com>
Thu, 5 Mar 2020 15:02:15 +0000 (16:02 +0100)
Include packets that cannot be parsed in the total RX count.

ntp_core.c
test/unit/ntp_core.c

index 21764f106ba6a953e9ca89ce1dc2614ba3f7ec4b..c300a25f164794b5b27b77f775d9ea8c0efee010 100644 (file)
@@ -1602,8 +1602,6 @@ process_response(NCR_Instance inst, NTP_Local_Address *local_addr,
 
   stats = SRC_GetSourcestats(inst->source);
 
-  inst->report.total_rx_count++;
-
   pkt_leap = NTP_LVM_TO_LEAP(message->lvm);
   pkt_version = NTP_LVM_TO_VERSION(message->lvm);
   pkt_refid = ntohl(message->reference_id);
@@ -2023,6 +2021,8 @@ NCR_ProcessRxKnown(NCR_Instance inst, NTP_Local_Address *local_addr,
   int proc_packet, proc_as_unknown;
   NTP_PacketInfo info;
 
+  inst->report.total_rx_count++;
+
   if (!parse_packet(message, length, &info))
     return 0;
 
index 014356af37971d198c2ab3d5bc35c14abab9b70f..7a70245ad402cb5241ad2bfc7764d78b974f32b6 100644 (file)
@@ -239,7 +239,7 @@ proc_response(NCR_Instance inst, int good, int valid, int updated_sync, int upda
   NTP_Packet *res;
   uint32_t prev_rx_count, prev_valid_count;
   struct timespec prev_rx_ts, prev_init_rx_ts;
-  int prev_open_socket, ret;
+  int ret;
 
   res = &res_buffer;
 
@@ -254,7 +254,6 @@ proc_response(NCR_Instance inst, int good, int valid, int updated_sync, int upda
   prev_valid_count = inst->report.total_valid_count;
   prev_rx_ts = inst->local_rx.ts;
   prev_init_rx_ts = inst->init_local_rx.ts;
-  prev_open_socket = inst->local_addr.sock_fd != INVALID_SOCK_FD;
 
   ret = NCR_ProcessRxKnown(inst, &local_addr, &local_ts, res, res_length);
 
@@ -263,10 +262,7 @@ proc_response(NCR_Instance inst, int good, int valid, int updated_sync, int upda
   else if (!good)
     TEST_CHECK(!ret);
 
-  if (prev_open_socket)
-    TEST_CHECK(prev_rx_count + 1 == inst->report.total_rx_count);
-  else
-    TEST_CHECK(prev_rx_count == inst->report.total_rx_count);
+  TEST_CHECK(prev_rx_count + 1 == inst->report.total_rx_count);
 
   if (valid)
     TEST_CHECK(prev_valid_count + 1 == inst->report.total_valid_count);