From de752b28decd26d804477f80a169ddc69d888158 Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Tue, 29 Sep 2020 14:59:35 +0200 Subject: [PATCH] nts: save server name in client dump file Save the NTS-KE server name and require it to match the name of the instance loading the file. --- nts_ntp_client.c | 11 +++++++---- test/simulation/139-nts | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/nts_ntp_client.c b/nts_ntp_client.c index 4294688..ecc401e 100644 --- a/nts_ntp_client.c +++ b/nts_ntp_client.c @@ -541,7 +541,7 @@ save_cookies(NNC_Instance inst) FILE *f; int i; - if (inst->num_cookies < 1 || !UTI_IsIPReal(&inst->nts_address.ip_addr)) + if (inst->num_cookies < 1 || !inst->name || !UTI_IsIPReal(&inst->nts_address.ip_addr)) return; dump_dir = CNF_GetNtsDumpDir(); @@ -558,9 +558,10 @@ save_cookies(NNC_Instance inst) context_time = inst->last_nke_success - SCH_GetLastEventMonoTime(); context_time += UTI_TimespecToDouble(&now); - if (fprintf(f, "%s%.1f\n%s %d\n%u %d ", - DUMP_IDENTIFIER, context_time, UTI_IPToString(&inst->ntp_address->ip_addr), - inst->ntp_address->port, inst->context_id, (int)inst->context.algorithm) < 0 || + if (fprintf(f, "%s%s\n%.1f\n%s %d\n%u %d ", + DUMP_IDENTIFIER, inst->name, context_time, + UTI_IPToString(&inst->ntp_address->ip_addr), inst->ntp_address->port, + inst->context_id, (int)inst->context.algorithm) < 0 || !UTI_BytesToHex(inst->context.s2c.key, inst->context.s2c.length, buf, sizeof (buf)) || fprintf(f, "%s ", buf) < 0 || !UTI_BytesToHex(inst->context.c2s.key, inst->context.c2s.length, buf, sizeof (buf)) || @@ -621,6 +622,8 @@ load_cookies(NNC_Instance inst) inst->siv = NULL; if (!fgets(line, sizeof (line), f) || strcmp(line, DUMP_IDENTIFIER) != 0 || + !fgets(line, sizeof (line), f) || UTI_SplitString(line, words, MAX_WORDS) != 1 || + !inst->name || strcmp(words[0], inst->name) != 0 || !fgets(line, sizeof (line), f) || UTI_SplitString(line, words, MAX_WORDS) != 1 || sscanf(words[0], "%lf", &context_time) != 1 || !fgets(line, sizeof (line), f) || UTI_SplitString(line, words, MAX_WORDS) != 2 || diff --git a/test/simulation/139-nts b/test/simulation/139-nts index 91c7f2b..74b8981 100755 --- a/test/simulation/139-nts +++ b/test/simulation/139-nts @@ -63,7 +63,7 @@ check_file_messages "20.*123\.1.* 111 111 1111" 99 103 measurements.log || test_ check_file_messages "20.*123\.1.* 111 001 0000" 0 0 measurements.log || test_fail check_file_messages " 2 1 .* 4460 " 350 390 log.packets || test_fail check_file_messages "." 6 6 ntskeys || test_fail -check_file_messages "." 11 12 192.168.123.1.nts || test_fail +check_file_messages "." 12 13 192.168.123.1.nts || test_fail rm -f tmp/measurements.log export CLKNETSIM_START_DATE=$(date -d 'Jan 1 00:00:00 UTC 2010 + 40000 sec' +'%s') @@ -83,7 +83,7 @@ check_file_messages "20.*123\.1.* 111 001 0000" 0 0 measurements.log || test_fai check_file_messages " 2 1 .* 4460 " 6 10 log.packets || test_fail check_file_messages "^9\.......e+03 2 1 .* 4460 " 6 10 log.packets || test_fail check_file_messages "." 6 6 ntskeys || test_fail -check_file_messages "." 11 12 192.168.123.1.nts || test_fail +check_file_messages "." 12 13 192.168.123.1.nts || test_fail rm -f tmp/measurements.log client_conf="