From e61c332295045786a83ce7fcb830cbbcecb85c65 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 23 Oct 2016 18:38:56 +0200 Subject: [PATCH] contact: Avoid unnecessary nation updates Make setcont() update the nation only when it actually changes the contact value. For added benefit, map all non-zero values to one when option LOSE_CONTACT is disabled. This saves I/O, in particular xdump bandwidth. Signed-off-by: Markus Armbruster --- src/lib/subs/rej.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/subs/rej.c b/src/lib/subs/rej.c index de11e817..bf8882d1 100644 --- a/src/lib/subs/rej.c +++ b/src/lib/subs/rej.c @@ -123,9 +123,12 @@ setcont(natid us, natid them, int contact) if (CANT_HAPPEN(contact > 255)) contact = 255; - if (np->nat_contact[them] < contact) + if (!opt_LOSE_CONTACT) + contact = !!contact; + if (np->nat_contact[them] < contact) { np->nat_contact[them] = contact; - putnat(np); + putnat(np); + } } void