diff --git a/CHANGES b/CHANGES index ef7500e755..491beea5f0 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +3134. [bug] Improve the accuracy of dnssec-signzone's signing + statistics. [RT #16030] + --- 9.8.1b3 released --- 3133. [bug] Change #3114 was incomplete. [RT #24577] diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c index 0e97e307bc..5fb58e8e71 100644 --- a/bin/dnssec/dnssec-signzone.c +++ b/bin/dnssec/dnssec-signzone.c @@ -29,7 +29,7 @@ * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dnssec-signzone.c,v 1.262.110.7 2011/05/07 00:24:41 each Exp $ */ +/* $Id: dnssec-signzone.c,v 1.262.110.8 2011/07/19 04:45:49 marka Exp $ */ /*! \file */ @@ -3345,28 +3345,36 @@ removetempfile(void) { } static void -print_stats(isc_time_t *timer_start, isc_time_t *timer_finish) { - isc_uint64_t runtime_us; /* Runtime in microseconds */ - isc_uint64_t runtime_ms; /* Runtime in milliseconds */ +print_stats(isc_time_t *timer_start, isc_time_t *timer_finish, + isc_time_t *sign_start, isc_time_t *sign_finish) +{ + isc_uint64_t time_us; /* Time in microseconds */ + isc_uint64_t time_ms; /* Time in milliseconds */ isc_uint64_t sig_ms; /* Signatures per millisecond */ - runtime_us = isc_time_microdiff(timer_finish, timer_start); - printf("Signatures generated: %10d\n", nsigned); printf("Signatures retained: %10d\n", nretained); printf("Signatures dropped: %10d\n", ndropped); printf("Signatures successfully verified: %10d\n", nverified); printf("Signatures unsuccessfully verified: %10d\n", nverifyfailed); - runtime_ms = runtime_us / 1000; - printf("Runtime in seconds: %7u.%03u\n", - (unsigned int) (runtime_ms / 1000), - (unsigned int) (runtime_ms % 1000)); - if (runtime_us > 0) { - sig_ms = ((isc_uint64_t)nsigned * 1000000000) / runtime_us; + + time_us = isc_time_microdiff(sign_finish, sign_start); + time_ms = time_us / 1000; + printf("Signing time in seconds: %7u.%03u\n", + (unsigned int) (time_ms / 1000), + (unsigned int) (time_ms % 1000)); + if (time_us > 0) { + sig_ms = ((isc_uint64_t)nsigned * 1000000000) / time_us; printf("Signatures per second: %7u.%03u\n", (unsigned int) sig_ms / 1000, (unsigned int) sig_ms % 1000); } + + time_us = isc_time_microdiff(timer_finish, timer_start); + time_ms = time_us / 1000; + printf("Runtime in seconds: %7u.%03u\n", + (unsigned int) (time_ms / 1000), + (unsigned int) (time_ms % 1000)); } int @@ -3380,6 +3388,7 @@ main(int argc, char *argv[]) { int ndskeys = 0; char *endp; isc_time_t timer_start, timer_finish; + isc_time_t sign_start, sign_finish; dns_dnsseckey_t *key; isc_result_t result; isc_log_t *log = NULL; @@ -3920,6 +3929,7 @@ main(int argc, char *argv[]) { RUNTIME_CHECK(isc_mutex_init(&statslock) == ISC_R_SUCCESS); presign(); + TIME_NOW(&sign_start); signapex(); if (!finished) { /* @@ -3944,6 +3954,7 @@ main(int argc, char *argv[]) { isc_taskmgr_destroy(&taskmgr); isc_mem_put(mctx, tasks, ntasks * sizeof(isc_task_t *)); postsign(); + TIME_NOW(&sign_finish); verifyzone(); if (outputformat != dns_masterformat_text) { @@ -3997,7 +4008,8 @@ main(int argc, char *argv[]) { if (printstats) { TIME_NOW(&timer_finish); - print_stats(&timer_start, &timer_finish); + print_stats(&timer_start, &timer_finish, + &sign_start, &sign_finish); } return (0);