]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[master] Fix a bug in perfdhcp in elapsed time calculation.
authorMarcin Siodelski <marcin@isc.org>
Thu, 23 Jan 2014 08:19:35 +0000 (09:19 +0100)
committerMarcin Siodelski <marcin@isc.org>
Thu, 23 Jan 2014 08:19:35 +0000 (09:19 +0100)
This fix was okayed on jabber. It solves the problem in elapsed time
calculation between two DHCP packets. If the timestamp for both packets
is equal, the elapsed time is now 0. Previously, an exception was thrown.

tests/tools/perfdhcp/test_control.cc
tests/tools/perfdhcp/test_control.h

index 3751e2f0e39b6eb4cae3a73d13e105734c313e1f..ab56bc3773096abe6cfa40e2ba0a168a190528bc 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2012-2013 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2012-2014 Internet Systems Consortium, Inc. ("ISC")
 //
 // Permission to use, copy, modify, and/or distribute this software for any
 // purpose with or without fee is hereby granted, provided that the above
@@ -564,11 +564,8 @@ TestControl::getElapsedTime(const T& pkt1, const T& pkt2) {
         isc_throw(InvalidOperation, "packet timestamp not set");;
     }
     time_period elapsed_period(pkt1_time, pkt2_time);
-    if (elapsed_period.is_null()) {
-        isc_throw(InvalidOperation, "unable to calculate time elapsed"
-                  " between packets");
-    }
-    return(elapsed_period.length().total_milliseconds());
+    return (elapsed_period.is_null() ? 0 :
+            elapsed_period.length().total_milliseconds());
 }
 
 int
index 5a7ef48d1ae457f68a576d9d47c9b01a8747a012..a0746a0ee0b2e3de5f2c072b4311a861cf211248 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2012-2013 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2012-2014 Internet Systems Consortium, Inc. ("ISC")
 //
 // Permission to use, copy, modify, and/or distribute this software for any
 // purpose with or without fee is hereby granted, provided that the above
@@ -943,6 +943,11 @@ protected:
 
     /// \brief Calculate elapsed time between two packets.
     ///
+    /// This function calculates the time elapsed between two packets. If
+    /// the timestamp of the pkt2 is greater than timestamp of the pkt1,
+    /// the positive value is returned. If the pkt2 timestamp is equal or
+    /// less than pkt1 timestamp, 0 is returned.
+    ///
     /// \tparam T Pkt4Ptr or Pkt6Ptr class.
     /// \param pkt1 first packet.
     /// \param pkt2 second packet.